main함수에 F5를 눌러 분석 해 본다.
분기문 분석을 위해 sub_140001000를 열어본다.
연산식을 복사해놓고 여기서도 분기문 분석을 위해 byte_140003000을 열어본다.
값들을 이용해 C언어로 코드를 짠다.
#include <stdio.h>
int main() {
unsigned char byte_140003000[] = {
0x49, 0x60, 0x67, 0x74, 0x63, 0x67, 0x42, 0x66,
0x80, 0x78, 0x69, 0x69, 0x7B, 0x99, 0x6D, 0x88,
0x68, 0x94, 0x9F, 0x8D, 0x4D, 0xA5, 0x9D
};
unsigned char result[24];
for (int i = 0; i < 0x18; i++) {
result[i] = byte_140003000[i] - (i*2) ^ i;
}
printf("data: ");
for (int i = 0; i < 24; i++) {
printf("%02c ", result[i]);
}
printf("\n");
return 0;
}
띄어쓰기 제거해주고 플래그 입력해주면 익스 성공
'Layer7 > WriteUp' 카테고리의 다른 글
어셈블리어로 별찍기 (0) | 2024.06.26 |
---|---|
[Dreamhack]Simple-Crack-Me Writeup (0) | 2024.06.24 |
[Dreamhack]rev-basic-2 WriteUp (0) | 2024.06.19 |
[Dreamhack]rev-basic-1 WriteUp (0) | 2024.06.19 |
x86, x64 Calling Convention(함수 호출 규약) 차이점 정리 (0) | 2024.06.17 |