野猫III 发表于 2006-5-23 11:54:06

PYG 5.4 Cracker 小组 课外练习12

要求
1)爆破
2)追码
3)内存注册机
4)算法分析(选做)
练习的目的只在于巩固学习成果.
希望大家积极相互交流相.互讨论.


++++++++++++++++++++++++

提示:

这个练手的东东是在工具包的内在练习了,原来没加壳。

这次加壳提升为练习,附件也打包了那个加壳软件,Enjoy!

[ 本帖最后由 野猫III 于 2006-5-23 11:59 编辑 ]

枫影 发表于 2006-5-23 14:09:50

我是前天才注册进来学习的新手!!

刚下回来脱掉壳了!用peid v0.94查是这个Borland Delphi 4.0 - 5.0

枫影 发表于 2006-5-23 14:15:36

我还没学会怎么去具体的把注册码算出来!

但爆破还是学了一点...这个CrackMe改一个指令就可以了!!
00441806|. /75 1A         jnz   short 00441822   //我只懂这一句..大致的功能是注册码不对跟到出错误的对话框
我把上面的指令改成NOP就行了

[ 本帖最后由 枫影 于 2006-5-23 14:18 编辑 ]

枫影 发表于 2006-5-23 14:17:41

我是个从零开始的!!从学习到现在才4天!

到现在为止还没学会怎么追码!!
怎么去算从汇编代码里看哪里是注册码的算法!
希望哪位好心的大大有时间教教我!!我会努力的去学的!
俺QQ:251007235   E-mail:[email protected]
先谢谢了

晚枫 发表于 2006-5-23 19:47:44

脱壳、追码成功!

godhack 发表于 2006-5-23 21:06:19

加壳的爽!!!呵呵!

枫影 发表于 2006-5-24 08:52:16

谁教教我追码的方法好吗?

我还不算太笨!!!只是不刚入门还完全不知道方法!

野猫III 发表于 2006-5-26 10:14:18

原帖由 枫影 于 2006-5-24 08:52 发表
我还不算太笨!!!只是不刚入门还完全不知道方法!

参加小组学习或许会提高.

vacant 发表于 2006-5-27 14:21:59

开始学习了esp 脱壳定律

谢谢 猫哥的提示

内存注册机

沙粒 发表于 2006-8-3 20:03:16

菜鸟分析难免有错请指教!求学路上--------

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
查看完整版本: PYG 5.4 Cracker 小组 课外练习12