0x02 Reverse Engineer/0x01. CodeEngn(18)
-
[CodeEngn Basic 13] Find the Answer feat. C#
문제 : Find the Answer 바이너리 실행 : [그림 1] 비밀번호를 입력하는 프로그램 틀리면 계속 반복하는 프로그램 (부르트포싱이 가능한가?) [그림 2] 틀린 비밀번호 바이너리를 뜯어보아요. C# 프로그램이다..!! C#은 디컴파일러가 따로 존재한다. [STAThread]private static void Main(string[] args){ string plainText = ""; string cipherText = "BnCxGiN4aJDE+qUe2yIm8Q=="; string passPhrase = "^F79ejk56$\x00a3"; string saltValue = "DHj47&*)$h"; string hashAlgorithm = "MD5"; int passwordIterations =..
2017.08.20 -
[CodeEngn Basic 12] Can you replace?
문제 : You will see a success message after finding the key. If you would want the Key itself to replace the success message in the MessageBox, open up a Hex Editor and overwrite the key value in the offset range 0x???? ~ 0x????. Q : find the key value and the offset range and write the solution in this format : key???????? (first ???? for the start and the next 4 ?s for the end). 바이너리 실행 : [그림 1]..
2017.08.20 -
[CodeEngn Basic 11] Do you know StolenBytes?
문제 : Find the OEP + Find the StolenByte 바이너리 실행: 아까 본 파일..? [그림 1] 키 파일 체크하세요. [그림 2] 파일을 찾을 수가 없다. 또 UPX이다. 문제의 오류인가... 같은 문제라서 크랙을 해보기로 하자. 00401025 68 B9204000 push 11.004020B9 ; ASCII "abex.l2c"0040102A E8 5E000000 call 11.0040108D ; jmp to kernel32.CreateFileA abex.l2c라는 걸 생성하라고 한다. [그림 3] 파일 생성 재 시작 후 GetFileSize의 반환 값이 0x12가 되어야 한다. 0x12 => 18 (dec) 18자리 aaaaaaaaaaaaaaaaaa [그림 4] 조건에 맞게세팅..
2017.08.20 -
[CodeEngn Basic 10] Do you know ASPACK?
문제 : After finding the OEP, FIND the OPCODE of the branch instruction going to the "goodboy routine" The solution shoule be in this format : OEP+OPCODE 바이너리 실행: [그림 1] 네임과 시리얼 값을 찾아내야 하는 바이너리 [그림 2] Aspack ASPACK은 esp의 주소에 hardware bp를 걸면 된다. 그 후 JNZ를 만나게 되는데 점프를 진행하게 되면 DB 어쩌고 막 되어있는게 있는데 이게 분석되어 지지 않은 바이너리라는 의미.이것을 Analysis를 이용해서 풀어주면 push ebp의 주소가 oep가 되는 기막힌 언패킹. OEP : 00445834 주의깊게 봐야할 문구 0..
2017.08.20 -
[CodeEngn Basic 9] Do you know StolenBytes?
문제 : Find the StolenByte 바이너리 실행 : [그림 1] 키 파일을 체크하라는 구문이 있다. [그림 2] 파일을 찾을 수 없다고 한다. 지 맘대로 ... 프로그램을 뜯어보자. 또 UPX다 .. 으휴 여기서 바이트 값들을 잃어버렸다..... MessageBoxA함수는 보이는데 파라미터 값들은 노출되어 있지 않다. [그림 3] 파라미터 어디갔니? 여기에 숨어있었다. [그림 4] popad 바로 밑에 데이터가 떨어져 있다. 0040736E 6A 00 push 0x000407370 68 00204000 push 09.00402000 ; ASCII "abex' 3rd crackme"00407375 68 12204000 push 09.00402012 ; ASCII "Click OK to check..
2017.08.20 -
[CodeEngn Basic 8] Do you know OEP feat. UPX
문제 : Find the OEP 바이너리 실행: [그림 1] 오잉 왠 계산기가 ..!! 구조를 알아보고 싶다.. 얘도 UPX.. UPX가 많이 쓰이나보다. [그림 2] UPX OEP : 01012475 초 간단한 풀이가 완성되었다...
2017.08.20