首页
社区
课程
招聘
[旧帖] [原创][分享]菜鸟分析注册实例——[邀请码已发] 0.00雪花
发表于: 2012-1-11 02:20 1663

[旧帖] [原创][分享]菜鸟分析注册实例——[邀请码已发] 0.00雪花

2012-1-11 02:20
1663
标 题:   【分享】菜鸟分析注册实例——【邀请码已发】
作 者:    北纬
时 间:    2012-01-11
测试软件:看雪测试软件
调试软件: OD

首先申明: 本人 英语一窍不通  只是个人爱好 还希望看雪各位高手多多指点  
  开始吧
  首先这只是一个测试软件 用来调试的 本身没加壳
就用OD 直接载入
代码如下-------------------
00401000 >/$  E8 0B020000   call <jmp.&COMCTL32.#17>                 ; [(Initial CPU selection)
00401005  |.  6A 00         push 0x0                                 ; /pModule = NULL
00401007  |.  E8 F2010000   call <jmp.&KERNEL32.GetModuleHandleA>    ; \GetModuleHandleA
0040100C  |.  A3 50304000   mov dword ptr ds:[0x403050],eax
00401011  |.  6A 64         push 0x64                                ; /lParam = 00000064
00401013  |.  68 2F104000   push 例子.0040102F                         ; |DlgProc = 例子.0040102F
00401018  |.  6A 00         push 0x0                                 ; |hOwner = NULL
0040101A  |.  6A 64         push 0x64                                ; |pTemplate = 64
0040101C  |.  FF35 50304000 push dword ptr ds:[0x403050]             ; |hInst = NULL
00401022  |.  E8 9B010000   call <jmp.&USER32.DialogBoxParamA>       ; \DialogBoxParamA
00401027  |.  6A 00         push 0x0                                 ; /ExitCode = 0
00401029  \.  E8 C4010000   call <jmp.&KERNEL32.ExitProcess>         ; \ExitProcess
0040102E   .  C3            retn
0040102F   .  55            push ebp
00401030   .  8BEC          mov ebp,esp
00401032   .  53            push ebx
00401033   .  57            push edi
00401034   .  56            push esi
----------------------------------------
我是按最简单的 破解方式 先搜索下 字符串 如下
-----------------------------------------
超级字串参考
地址       反汇编                                    文本字串
00401000   call <jmp.&COMCTL32.#17>                  (Initial CPU selection)
004010B6   push 例子.0040303E                          %1X
0040110B   push 例子.00403018                          输入的序列号不正确!
00401132   push 例子.0040303E                          %1X
00401160   push 例子.00403000                          注册成功
00401165   push 例子.00403009                          谢谢你的注册!
00401174   push 例子.00403018                          输入的序列号不正确!

0040110B   push 例子.00403018                          输入的序列号不正确!  此处点击下  来到下面代码
---------------------------------------
004010FD   .  E8 CC000000   call <jmp.&USER32.GetDlgItemTextA>       ; \首先在此处下断点  运行软件 在这暂停
00401102   .  803D 6C304000>cmp byte ptr ds:[0x40306C],0x0
00401109   .  74 69         je short 例子.00401174
0040110B   .  68 18304000   push 例子.00403018                         ; /输入的序列号不正确!
00401110   .  68 6C304000   push 例子.0040306C                         ; |提取假注册码
00401115   .  E8 F0000000   call <jmp.&KERNEL32.lstrcmpA>            ; \lstrcmpA
0040111A   .  85C0          test eax,eax
0040111C   .  74 56         je short 例子.00401174
0040111E   .  B8 01000000   mov eax,0x1
00401123   .  0FA2          cpuid
00401125   .  8B0D 58304000 mov ecx,dword ptr ds:[0x403058]
0040112B   .  33D2          xor edx,edx
0040112D   .  F7E1          mul ecx
0040112F   .  03C2          add eax,edx
00401131   .  50            push eax                                 ; /真码 注册码
00401132   .  68 3E304000   push 例子.0040303E                         ; |%1X
00401137 > .  68 5C304000   push 例子.0040305C                         ; |提取 序列号
0040113C   .  E8 7B000000   call <jmp.&USER32.wsprintfA>             ; \wsprintfA
00401141   .  83C4 0C       add esp,0xC
00401144   .  68 6C304000   push 例子.0040306C                         ; /假码
00401149   .  68 5C304000   push 例子.0040305C                         ; |真码
0040114E   .  E8 B7000000   call <jmp.&KERNEL32.lstrcmpA>            ; \关键的 CALL 跟进去就是 真 假码对比
00401153      85C0          test eax,eax                             ;  如果此处把  eax,edx  不管你输入什么都正确
00401155      75 1D         jnz short 例子.00401174                    ;  如果把此处jnz 改成 jz 是不跳的 那就会提示注册成功
00401157   .  6A 10         push 0x10                                ; /BeepType = MB_ICONHAND
00401159   .  E8 7C000000   call <jmp.&USER32.MessageBeep>           ; \MessageBeep
0040115E   .  6A 00         push 0x0                                 ; /Style = MB_OK|MB_APPLMODAL
00401160   .  68 00304000   push 例子.00403000                         ; |注册成功
00401165   .  68 09304000   push 例子.00403009                         ; |谢谢你的注册!
0040116A   .  FF75 08       push dword ptr ss:[ebp+0x8]              ; |hOwner
0040116D   .  E8 6E000000   call <jmp.&USER32.MessageBoxA>           ; \MessageBoxA
00401172   .  EB 0F         jmp short 例子.00401183
00401174      68 18304000   push 例子.00403018                         ;  输入的序列号不正确!
00401179   .  6A 68         push 0x68                                ; |ControlID = 68 (104.)
0040117B   .  FF75 08       push dword ptr ss:[ebp+0x8]              ; |hWnd
0040117E   .  E8 69000000   call <jmp.&USER32.SetDlgItemTextA>       ; \SetDlgItemTextA
00401183   >  B8 00000000   mov eax,0x0
00401188   .  5E            pop esi
00401189   .  5F            pop edi
0040118A   .  5B            pop ebx
0040118B   .  C9            leave
0040118C   .  C2 1000       retn 0x10
--------------------------------------------------------------------------------------------
以上为最简单的爆破
以下是本人发现一个也是简单思路  不写注册机 也可以让 真码 出现在注册框
--------------------------------------------------------------------------
0040116D   .  E8 6E000000   call <jmp.&USER32.MessageBoxA>           ; \MessageBoxA
00401172   .  EB 0F         jmp short 例子.00401183
00401174      68 18304000   push 例子.00403018                         ;  输入的序列号不正确!这是原注册错误提示 现在我把他改成   

                   .  68 5C304000   push 例子.0040305C                         ; |注册错误时  直接提示真码  则再点击注册 成功
---------------------------------------------------------------------------------------------

以上是本人 最浅的 分析  请高手指点

以下是原测试软件  已上传

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 101
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呵呵  咋就没人 看下一下 鼓励我下  
我不容易啊
2012-1-12 00:55
0
雪    币: 30
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持一下兄弟,祝你成功!
2012-1-12 01:40
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
4
希望楼主可以将程序的算法分析出来,加油哦!
2012-1-12 09:12
0
雪    币: 501
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
路过看看。
2012-1-12 16:09
0
雪    币: 124
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看看,学习点东西。
2012-1-12 17:34
0
雪    币: 269
活跃值: (51)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
把算法分析出来就更好了,加油
2012-1-12 18:25
0
雪    币: 101
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵 获得邀请码 谢谢
2012-1-17 04:24
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
2012-1-18 14:19
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
呵呵,不错哦
2012-1-18 14:23
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哈哈,成功了哦!!!
上传的附件:
2012-1-24 16:53
0
雪    币: 442
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
下载来看看    呵呵
2012-1-24 17:42
0
雪    币: 124
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼主成功了,表示祝贺。
2012-1-24 18:16
0
游客
登录 | 注册 方可回帖
返回
//