본문 바로가기

Wargame Write-Up/Reversing.kr16

[Reversing.kr] CSHARP 풀이 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 26 27 28 29 30 31 32 33 34 private static void MetMetMet(string sss) { byte[] bytes = Encoding.ASCII.GetBytes(Convert.ToBase64String(Encoding.ASCII.GetBytes(sss))); AssemblyName assemblyName = new AssemblyName("DynamicAssembly"); TypeBuilder typeBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderA.. 2021. 3. 20.
[Reversing.kr] (Reversing) AutoHotKey2 풀이 ReadMe 파일부터 확장자가 없다. 알맞게 실행되게 수정하라한다. 아무것도 안했는데 EXE corrupted 가 뜬다. DIE 로 열어보면, UPX 패킹되어있다고 한다. upx.exe -d 으로 간편하게 언팩한 다음 열어보자. (아이다로) CRC 체크하는 부분이다. 언패킹한 파일 0x448265 쯤에 bp 걸어서, 플래그 조작해 점프 이렇게 뜬다. 언패킹해서 실행하면 오류가 뜬다는 것을 까먹었다. 문제파일을 다시 다운받고 실행해보자 패킹된 후 , EXE currupt 가 출력되는 조건문 함수를 디버깅하면 이곳에서 걸린다. v23 != v11 ^0xAAAAAAAA 이어서 LABEL_25 (0 이 아닌값을 리턴) 으로 가서 currpt 가 걸린다. checksum 값을 계산한 값과 ebp-0x10 에 있는.. 2021. 2. 28.
[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.