160 - 39 damn
生活随笔
收集整理的這篇文章主要介紹了
160 - 39 damn
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
環境
Windows xp sp3
工具
1.exeinfo PE
2.ollydbg
查殼
OD加載就知道有殼了,可以esp定律直接脫掉
exeinfoPE查殼:
測試
點擊LOCKED圖片會彈出消息框,Register注冊按鈕無法點擊!
猜測Register按鈕會在輸入正確的name和key變成可以注冊。
OD載入,傳統的字符串查找。
能找到”check”
上面是每段代碼的執行順序,具體是通過判斷401000到4013B2范圍內的值有無發生改變,有的話就會使得程序加載的圖片不同,隨便找個不影響的地方改。
00401035 20 db 20 ; CHAR ' '改為:
00401035 21 db 21 ; CHAR '!'就可以了:
接下來是Register按鈕。
對GetDigItemTextA下斷點可以來到這里:
跟進去:
004012F4 |. 8B0D 89234000 mov ecx,dword ptr ds:[0x402389] ; name的長度 004012FA |. 85C9 test ecx,ecx ; 為空就返回0 004012FC |. 74 71 je XCracked.0040136F 004012FE |. 49 dec ecx 004012FF |. 8BF1 mov esi,ecx 00401301 |. BF 53234000 mov edi,Cracked.00402353 ; ASCII " " 00401306 |. BB 4E4D4144 mov ebx,0x44414D4E 0040130B |. 33D2 xor edx,edx 0040130D |. 8BCA mov ecx,edx 0040130F |> 33C0 /xor eax,eax 00401311 |. 8A040F |mov al,byte ptr ds:[edi+ecx] 00401314 |. 03D0 |add edx,eax 00401316 |. D1CB |ror ebx,1 00401318 |. D3CB |ror ebx,cl 0040131A |. 33DA |xor ebx,edx 0040131C |. 3BCE |cmp ecx,esi 0040131E |. 74 03 |je XCracked.00401323 00401320 |. 41 |inc ecx 00401321 |.^ EB EC \jmp XCracked.0040130F 00401323 |> 81CB 10101010 or ebx,0x10101010 00401329 |. 87DA xchg edx,ebx 0040132B |. BF 21234000 mov edi,Cracked.00402321 ; ASCII " " 00401330 |. 8B0D 8D234000 mov ecx,dword ptr ds:[0x40238D] 00401336 |. 83F9 08 cmp ecx,0x8 ; key要8位 00401339 |. 75 34 jnz XCracked.0040136F 0040133B |. 33C9 xor ecx,ecx 0040133D |> 33C0 /xor eax,eax 0040133F |. C1C2 08 |rol edx,0x8 00401342 |. 8AC2 |mov al,dl 00401344 |. 8AD8 |mov bl,al 00401346 |. 24 0F |and al,0xF 00401348 |. C0EB 04 |shr bl,0x4 0040134B |. 80E3 0F |and bl,0xF 0040134E |. 3C 0A |cmp al,0xA 00401350 |. 1C 69 |sbb al,0x69 00401352 |. 2F |das 00401353 |. 38444F 01 |cmp byte ptr ds:[edi+ecx*2+0x1],al 00401357 |. 75 16 |jnz XCracked.0040136F ; 如果跳了就返回0 00401359 |. 8AC3 |mov al,bl 0040135B |. 3C 0A |cmp al,0xA 0040135D |. 1C 69 |sbb al,0x69 0040135F |. 2F |das 00401360 |. 38044F |cmp byte ptr ds:[edi+ecx*2],al 00401363 |. 75 0A |jnz XCracked.0040136F ; 如果跳了就返回0 00401365 |. 41 |inc ecx 00401366 |. 83F9 04 |cmp ecx,0x4 00401369 |.^ 75 D2 \jnz XCracked.0040133D 0040136B |. 33C0 xor eax,eax 0040136D |. 40 inc eax ; 使得返回值為1 0040136E |. C3 retn 0040136F |> 33C0 xor eax,eax 00401371 \. C3 retn動態跟蹤一下就知道,每次跳出循環的判斷都是與輸入的key里不同位置的字符比較,所以可以動態跟蹤完這個第二個循環就可以得知key了。
至于注冊機的話可以直接照抄算法。把比較的代碼去掉就好了。
要注意das指令的作用。
當CF==1 或 AF==1 都會改變eax的值
總結
以上是生活随笔為你收集整理的160 - 39 damn的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱马仕包多少钱啊?
- 下一篇: 160 - 40 DaNiEl-RJ.1