PYG 5.4 Cracker 小组 课外练习12
要求1)爆破
2)追码
3)内存注册机
4)算法分析(选做)
练习的目的只在于巩固学习成果.
希望大家积极相互交流相.互讨论.
++++++++++++++++++++++++
提示:
这个练手的东东是在工具包的内在练习了,原来没加壳。
这次加壳提升为练习,附件也打包了那个加壳软件,Enjoy!
[ 本帖最后由 野猫III 于 2006-5-23 11:59 编辑 ]
我是前天才注册进来学习的新手!!
刚下回来脱掉壳了!用peid v0.94查是这个Borland Delphi 4.0 - 5.0我还没学会怎么去具体的把注册码算出来!
但爆破还是学了一点...这个CrackMe改一个指令就可以了!!00441806|. /75 1A jnz short 00441822 //我只懂这一句..大致的功能是注册码不对跟到出错误的对话框
我把上面的指令改成NOP就行了
[ 本帖最后由 枫影 于 2006-5-23 14:18 编辑 ]
我是个从零开始的!!从学习到现在才4天!
到现在为止还没学会怎么追码!!怎么去算从汇编代码里看哪里是注册码的算法!
希望哪位好心的大大有时间教教我!!我会努力的去学的!
俺QQ:251007235 E-mail:[email protected]
先谢谢了 脱壳、追码成功! 加壳的爽!!!呵呵!
谁教教我追码的方法好吗?
我还不算太笨!!!只是不刚入门还完全不知道方法! 原帖由 枫影 于 2006-5-24 08:52 发表我还不算太笨!!!只是不刚入门还完全不知道方法!
参加小组学习或许会提高. 开始学习了esp 脱壳定律
谢谢 猫哥的提示
内存注册机
菜鸟分析难免有错请指教!求学路上--------
PEID查壳:什么也没有发现!OD载入利用ESP定律脱壳,脱壳方式一不能运行,利用import修复,可以运行,再用PEID查壳Borland Delphi 4.0 - 5.0的
注册看看有何反应:name:MINGBIN serial:789789789 出现:wrong code消息框
在od中看看Ultra 字符串参考,
项目 174
地址=00441829
反汇编=mov edx,11_.0044188C
文本字符串=Wrong Code
爆破点00441806 /74 1A jne short 11_.00441822改为je 就是了!
追码的过程:
004417BB 6A 00 push 0
004417BD 6A 00 push 0
004417BF 6A 00 push 0
004417C1 53 push ebx
004417C2 8BD8 mov ebx,eax
004417C4 33C0 xor eax,eax
004417C6 55 push ebp
004417C7 68 60184400 push 11_.00441860
004417CC 64:FF30 push dword ptr fs:
004417CF 64:8920 mov dword ptr fs:,esp
004417D2 8D55 FC lea edx,dword ptr ss:
004417D5 8B83 C8020000 mov eax,dword ptr ds:
004417DB E8 C419FEFF call 11_.004231A4 ; 取试验码
004417E0 8B45 FC mov eax,dword ptr ss: ; 试验码789789789位数送入eax=9
004417E3 50 push eax ; eax压栈
004417E4 8D55 F4 lea edx,dword ptr ss:
004417E7 8B83 C4020000 mov eax,dword ptr ds:
004417ED E8 B219FEFF call 11_.004231A4 ; 取用户名
004417F2 8B45 F4 mov eax,dword ptr ss: ; 用户名MINGBIN的位数送入eax=7
004417F5 8D55 F8 lea edx,dword ptr ss:
004417F8 E8 FBFEFFFF call 11_.004416F8 ; 算法call
004417FD 8B55 F8 mov edx,dword ptr ss: ; edx=ASCII "7048-0171-4DC7-39D3"
00441800 58 pop eax ; 假码入栈eax
00441801 E8 3E23FCFF call 11_.00403B44 ; 两码比较
00441806 75 1A jnz short 11_.00441822 ; 不等则跳,相等向下继续
00441808 6A 40 push 40
0044180A B9 6C184400 mov ecx,11_.0044186C ; ASCII "U made it"
0044180F BA 78184400 mov edx,11_.00441878 ; ASCII "Right Code"
00441814 A1 302C4400 mov eax,dword ptr ds:
00441819 8B00 mov eax,dword ptr ds:
0044181B E8 D4D6FFFF call 11_.0043EEF4
00441820 EB 18 jmp short 11_.0044183A
00441822 6A 10 push 10
00441824 B9 84184400 mov ecx,11_.00441884 ; ASCII "Error"
00441829 BA 8C184400 mov edx,11_.0044188C ; ASCII "Wrong Code"
0044182E A1 302C4400 mov eax,dword ptr ds:
00441833 8B00 mov eax,dword ptr ds:
00441835 E8 BAD6FFFF call 11_.0043EEF4
******************************call 11_.004416F8 ********************
004416FB 83C4 DC add esp,-24
004416FE 891424 mov dword ptr ss:,edx
00441701 8BF8 mov edi,eax ; 用户名eax送入edi=MINGBIN
00441703 BB 05033949 mov ebx,49390305 ; ebx=49390305
00441708 BE 20126348 mov esi,48631220 ; esi=48631220
0044170D 8BC7 mov eax,edi ; edi送入eax=MINGBIN
0044170F E8 2023FCFF call 11_.00403A34
00441714 85C0 test eax,eax ; 测试eax=7
00441716 7E 2E jle short 11_.00441746 ; 小于或等于转移
00441718 BA 01000000 mov edx,1 ; 1送入edx=1
0044171D+ 33C9 xor ecx,ecx ; ecx=0异或清空 --------以下为循环计算!
0044171F 8A4C17 FF mov cl,byte ptr ds: ; cl=m按位取用户名送cl
00441723 33D9 xor ebx,ecx ; ebx=ebxxorecx=49390305xor4d=49390348
00441725 33F3 xor esi,ebx ; esi=esixorebx=48631220xor49390348=15A1168
00441727 F6C3 01 test bl,1 ; 测试bl=1 bl=48(H)
0044172A 74 0F je short 11_.0044173B
0044172C D1FB sar ebx,1
0044172E 79 03 jns short 11_.00441733
00441730 83D3 00 adc ebx,0
00441733 81F3 11032001 xor ebx,1200311
00441739 EB 07 jmp short 11_.00441742
0044173B D1FB sar ebx,1 ; ebx算术右移1位
0044173D 79 03 jns short 11_.00441742 ; 符号位为 "0" 时转移.
0044173F 83D3 00 adc ebx,0
00441742 42 inc edx ; edx=edx+1
00441743 48 dec eax ; eax=eax-1
00441744+ 75 D7 jnz short 11_.0044171D ; eax与edx不等时继续,否则跳走
00441746 8B0424 mov eax,dword ptr ss:
00441749 50 push eax
0044174A 8BC3 mov eax,ebx ; ebx送eax=01717048
0044174C 25 FFFF0000 and eax,0FFFF ; eax=eax and 0fff=7048 (1)
00441751 894424 08 mov dword ptr ss:,eax
00441755 C64424 0C 00 mov byte ptr ss:,0
0044175A C1EB 10 shr ebx,10 ; ebx=01717048逻辑右移10位
0044175D 895C24 10 mov dword ptr ss:,ebx ; ebx=0171 (2)
00441761 C64424 14 00 mov byte ptr ss:,0
00441766 8BC6 mov eax,esi ; 上面esi循环计算的值送入eax=39d34dc7
00441768 25 FFFF0000 and eax,0FFFF ; eax=eax and 0ffff =4DC7 (3)
0044176D 894424 18 mov dword ptr ss:,eax
00441771 C64424 1C 00 mov byte ptr ss:,0
00441776 C1EE 10 shr esi,10 ; esi=39d34dc7逻辑右移10位
00441779 897424 20 mov dword ptr ss:,esi ; esi=3903 (4)
0044177D C64424 24 00 mov byte ptr ss:,0
00441782 8D5424 08 lea edx,dword ptr ss:
00441786 B9 03000000 mov ecx,3
0044178B B8 A4174400 mov eax,11_.004417A4 ; ASCII "%.4x-%.4x-%.4x-%.4x"(1)-(2)-(3)-(4)连起来
00441790 E8 6F68FCFF call 11_.00408004
00441795 83C4 24 add esp,24
00441798 5F pop edi
00441799 5E pop esi
0044179A 5B pop ebx
0012F364 00D6635C ASCII "7048-0171-4DC7-39D3"
还有些不懂,不知是否有错,请指教!
[ 本帖最后由 沙粒 于 2006-8-3 20:04 编辑 ]
页:
[1]
2