본문 바로가기

Reversing24

[Reversing.kr] (Reversing) AutoHotkey1 풀이 exe 바이너리 하나와 readme.txt 를 준다. DecryptoKey 와 EXE's Key 를 unhash 하라고 한다. 네? 32bit 바이너리고, UPX 로 패킹되어있다한다. 일단 upx unpacker 으로 언패킹은 했다. 실행했더니 이렇게 뜬다. 혹시 몰라서 다시 패킹 해봤더니 똑같이 뜬다 ;; 아마 CRC값을 체크하는 것같다. 언패킹한 뒤, IDA 에서 'EXE corrupted' 문자열을 확인해보자. sub_4508C7 함수에서 체크한 다음, 어딘가에 있는 SCRIPT 를 실행시켜 주는 것같다. ahk.exe 파일의 CRC값 0x10 바이트를 비교하는 것을 볼 수 있다. 야호 패킹된 정상파일을 x96dbg 로 디버깅해보자. EntryPoint 에서 멈추는데, pushad 로 레지스터를 다.. 2021. 2. 18.
[Reversing.kr] (Reversing) x64 Lotto 풀이 실행해보면, L O T T O 를 출력하고, 숫자를 입력하라한다. 그리고는 화면이 cls 된다. 편하게 디컴파일해 정적분석을 해보자. 1 2 3 4 5 do { wprintf(L"\n\t\tL O T T O\t\t\n\n"); wprintf(L"Input the number: "); wscanf_s(L"%d %d %d %d %d %d", &v13, &v14, &v15, &v16, &v17, &v18); wsystem(L"cls"); Sleep(0x1F4u); Colored by Color Scripter cs 숫자 6개를 입력받고, cls 한 뒤, 0.5초 쉰다. 1 2 3 do *(&v18 + ++v1) = rand() % 100; while ( v1 = 24 ) goto LABEL_9; } v2 = .. 2021. 2. 7.
[Reversing.kr] (Revering) SimpleVM 풀이 ELF32 파일이다. 아이다로 열면 entry point 에러가 난다. gdb 로 열면 이상한곳에 와있다. 실행시키면 Access Denied 가 출력되고 끝난다. strace 로 확인한 결과이다. getuid32() 함수를 호출해 uid 를 가져온 뒤, Access Denied 가 출력되는걸 보면, root 로 실행해야한다는 합리적의심이 가능하다! sudo strace ./SimpleVM getuid32() 결과가 0이고, Input 이라고 출력되는 것을 볼 수 있다. helloworld! 을 입력했더니 Wrong 이라 뜬다. 패킹된 것같은데 프로세스를 덤프해서 정적분석해보자. procdump 리눅스버전을 쓸 수도 있고, gcore 으로 간단하게 할 수 있다. 터미널 2개를 띄우자 (터미널1, 터미널2.. 2021. 2. 1.
[Reversing.kr] (Reversing) HateIntel 풀이 mach-o 파일이다. 맥북이 없어서 실행시키지는 못하겠고, ghidra 로 정적분석을 해야겠다. ㅜㅜ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 undefined4 FUN_00002224(void) { char acStack100 [80]; undefined4 local_14; size_t local_10; int local_c; local_14 = 4; __symbol_stub4::_printf("Input key : "); __symbol_stub4::_scanf("%s",acStack100); local_10 = __symbol_stub4::_strlen(acStack100); FUN_0000232c(acStack100,l.. 2021. 2. 1.