2018. 1. 5. 03:11ㆍ0x02 Reverse Engineer/0x02. Reversing.kr
gui기반 프로그램이라 getDigTextA 부분에 bp를 걸고 글자 수 부터 확인 하였음
004010A2 |. 6A 14 push 0x14 ; /Count = 14 (20.)
004010A4 |. 894424 15 mov dword ptr [esp+0x15],eax ; |
004010A8 |. 51 push ecx ; |Buffer
004010A9 |. 894424 1D mov dword ptr [esp+0x1D],eax ; |
004010AD |. 68 E8030000 push 0x3E8 ; |ControlID = 3E8 (1000.)
004010B2 |. 66:894424 25 mov word ptr [esp+0x25],ax ; |
004010B7 |. 55 push ebp ; |hWnd
004010B8 |. C64424 18 00 mov byte ptr [esp+0x18],0x0 ; |
004010BD |. 884424 2B mov byte ptr [esp+0x2B],al ; |
004010C1 |. FF15 C8504000 call near dword ptr [<&USER32.GetDlgItemTextA>>; \GetDlgItemTextA
004010C7 |. 83F8 08 cmp eax,0x8 ; 8글자
8글자 임을 알 수 있었음.
004010D0 |. BF 30604000 mov edi,CRC.00406030 ; edi레지스터에 무슨 설명이 들어옴
004010D5 |. 83C9 FF or ecx,0xFFFFFFFF ; FFFF FFFF
004010FD |> /8A5404 0C /mov dl,byte ptr [esp+eax+0xC] ; 내가 입력한 값을 한 바이트씩 읽어옴
00401101 |. |40 |inc eax
00401102 |. |8811 |mov byte ptr [ecx],dl
00401104 |. |83C1 10 |add ecx,0x10 ; 16바이트 뒤에 값에 입력한 값 덮어씀
00401107 |. |83F8 08 |cmp eax,0x8
0040110A |.^\7C F1 \jl short CRC.004010FD
전체 큰 그림 :
1차적으로 한번 리버싱해본결과
8자리 이며
hello ~~막 어쩌고 이런거에
0x0 - 0x16 이런식으로 add 0x16을 해서 a를 다 추가하고
esi가 0x100이 될 때 까지 반복한뒤에
eax는 0x5F696F6C
EDX는 0X676F5F67이 되게 되면 CORRECT
세부 분석
코드 짜기 위해 분석했다. 제발 한번에 되었으면 좋겠다.
'0x02 Reverse Engineer > 0x02. Reversing.kr' 카테고리의 다른 글
multiplicative 혼자 못풀었음 (0) | 2018.01.07 |
---|---|
Position (0) | 2018.01.05 |
PEpasswd (0) | 2017.12.01 |
RansomWare (0) | 2017.07.28 |
MusicPlayer (0) | 2017.07.28 |