Shy 发表于 2016-7-29 00:00

对VC9验证进行分析+追码

本教程由热情洋溢的木木不哭赞助播出(“哎呀我摔倒了要漂亮姐姐亲亲才能起来{:5_187:}”)

逆向前言:说实话玩老外的Delphi有点玩逆了,换个口味玩VC,也是个很简单的暂停回溯法,本来是没啥可讲的,但是也好做个例子吧,毕竟很少遇得到

逆向正文:
首先是这样一个界面

我们将第一行编辑框的内容称为注册码(E-mail),第二行编辑框的内容称之为注册码(强迫症,硬要我说邮箱我不顺口)

然后我们注册下 看看会发生什么

我也看不懂写的什么玩意,反正就知道是注册失败就行,因为这个东西是一个信息框 所以暂停法回溯大家都懂的

从这里我看到了是mfc,这个其实不用太在意细节,不管是MFC也好是VC9也好,能用暂停法就是好

回溯到此,对不对?所以我们会需要返回到程序领空,不懂请自行补课

看到这,基本上就可以妥妥的了,前一课讲的恒大定律不知道大家有没有记住呢?复习一边

关键跳上必有关键call,所以我们这回看看从段首分析到这里吧(已做过注释)
00E1243D    FFD0            call eax                                 ; 获取活动窗口
00E1243F    8D4D EC         lea ecx, dword ptr
00E12442    8BF0            mov esi, eax
00E12444    FF15 F0BC1501   call dword ptr [<&mfc100u.#296>]         ; mfc100u.#316
00E1244A    8D4D F0         lea ecx, dword ptr
00E1244D    C745 FC 0000000>mov dword ptr , 0x0
00E12454    FF15 F0BC1501   call dword ptr [<&mfc100u.#296>]         ; mfc100u.#316
00E1245A    8D4D EC         lea ecx, dword ptr
00E1245D    51            push ecx
00E1245E    C645 FC 01      mov byte ptr , 0x1
00E12462    8B1D F4B91501   mov ebx, dword ptr [<&mfc100u.#4810>]    ; mfc100u.#4810
00E12468    68 2E040000   push 0x42E
00E1246D    8BCF            mov ecx, edi
00E1246F    FFD3            call ebx                                 ; 获取标题
00E12471    8D55 F0         lea edx, dword ptr
00E12474    52            push edx
00E12475    68 2F040000   push 0x42F
00E1247A    8BCF            mov ecx, edi
00E1247C    FFD3            call ebx                                 ; 获取注册码到ecx
00E1247E    68 A46F1C01   push 011C6FA4
00E12483    68 D8A51C01   push 011CA5D8
00E12488    8D4D EC         lea ecx, dword ptr
00E1248B    FF15 D8BA1501   call dword ptr [<&mfc100u.#11683>]       ; 获取注册名
00E12491    68 A46F1C01   push 011C6FA4
00E12496    68 D8A51C01   push 011CA5D8
00E1249B    8D4D F0         lea ecx, dword ptr
00E1249E    FF15 D8BA1501   call dword ptr [<&mfc100u.#11683>]       ; 再次获取注册码
00E124A4    8B45 EC         mov eax, dword ptr             ; eax为注册名
00E124A7    8378 F4 00      cmp dword ptr , 0x0
00E124AB    7E 72         jle short 00E1251F                     ; 判断注册名是否为空
00E124AD    8B4D F0         mov ecx, dword ptr             ; 获取注册码到ecx
00E124B0    8379 F4 00      cmp dword ptr , 0x0
00E124B4    7E 69         jle short 00E1251F                     ; 判断注册码是否为空
00E124B6    8D55 F0         lea edx, dword ptr
00E124B9    52            push edx                                 ; 对注册码进行压栈
00E124BA    8D4D EC         lea ecx, dword ptr             ; ecx=eax=注册名
00E124BD    E8 CE40FFFF   call 00E06590                            ; 关键call
00E124C2    85C0            test eax, eax
00E124C4    74 59         je short 00E1251F


不懂的就看注释了,反正也不是什么很深奥的东西,这些东西都不是什么关键,反正大概的意思就是说获取一个活动窗口,获取控件的内容,判断内容是否为0等等

我们最主要的还是看那个关键call,顺便追码一下,关键跳这里已经找到了,改这里也行,但是还有一个修改点在关键call里面,改那个也可以

具体我们来分析一下
**** Hidden Message *****
至此这个VC就玩完了,是不是感觉没什么新奇的?我也这么觉得,,,但是就是头一次玩感觉还挺有意思的
The Course Come From XuePoJie.CoM




灭队哥 发表于 2016-7-29 00:27

{:5_121:}我不用但是还是支持你

Shark恒 发表于 2016-7-29 08:26


很多人只是针对软件看教程内容,其实他们不知道要多学各种思路才能掌握更多技术。。。

今晚打老虎 发表于 2016-7-29 09:46

感觉好厉害,我去研究研究

hao516677 发表于 2016-7-29 09:50

膜拜楼主
我要看看学习一下

Bu弃 发表于 2016-7-29 10:19

支持楼主,多看看思路总是好的。最好玩的还是本地验证跟算法分析,碰到一个算法,分析出来了的那种心情,是用eno err逆向一个FZ的心情比不上的。

jiajiayu 发表于 2016-7-29 10:31

拿回去研究一下

cupgg 发表于 2016-7-30 11:07

学习一下,谢谢分享

神秘女子 发表于 2016-7-30 17:18

好好学习天天向上,最近被一个VC8搞倒了

xuenii 发表于 2016-7-31 10:43

英文的啊,不如中文版的看起来方便。。
页: [1] 2 3 4 5 6 7 8
查看完整版本: 对VC9验证进行分析+追码