本教程由热情洋溢的木木不哭赞助播出(“哎呀我摔倒了要漂亮姐姐亲亲才能起来 ”)
逆向前言:说实话玩老外的Delphi有点玩逆了,换个口味玩VC,也是个很简单的暂停回溯法,本来是没啥可讲的,但是也好做个例子吧,毕竟很少遇得到
逆向正文:
首先是这样一个界面
我们将第一行编辑框的内容称为注册码(E-mail),第二行编辑框的内容称之为注册码(强迫症,硬要我说邮箱我不顺口)
然后我们注册下 看看会发生什么
我也看不懂写的什么玩意,反正就知道是注册失败就行,因为这个东西是一个信息框 所以暂停法回溯大家都懂的
从这里我看到了是mfc,这个其实不用太在意细节,不管是MFC也好是VC9也好,能用暂停法就是好
回溯到此,对不对?所以我们会需要返回到程序领空,不懂请自行补课
看到这,基本上就可以妥妥的了,前一课讲的恒大定律不知道大家有没有记住呢?复习一边
关键跳上必有关键call,所以我们这回看看从段首分析到这里吧(已做过注释)
[Asm] 纯文本查看 复制代码 00E1243D FFD0 call eax ; 获取活动窗口
00E1243F 8D4D EC lea ecx, dword ptr [ebp-0x14]
00E12442 8BF0 mov esi, eax
00E12444 FF15 F0BC1501 call dword ptr [<&mfc100u.#296>] ; mfc100u.#316
00E1244A 8D4D F0 lea ecx, dword ptr [ebp-0x10]
00E1244D C745 FC 0000000>mov dword ptr [ebp-0x4], 0x0
00E12454 FF15 F0BC1501 call dword ptr [<&mfc100u.#296>] ; mfc100u.#316
00E1245A 8D4D EC lea ecx, dword ptr [ebp-0x14]
00E1245D 51 push ecx
00E1245E C645 FC 01 mov byte ptr [ebp-0x4], 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 [ebp-0x10]
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 [ebp-0x14]
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 [ebp-0x10]
00E1249E FF15 D8BA1501 call dword ptr [<&mfc100u.#11683>] ; 再次获取注册码
00E124A4 8B45 EC mov eax, dword ptr [ebp-0x14] ; eax为注册名
00E124A7 8378 F4 00 cmp dword ptr [eax-0xC], 0x0
00E124AB 7E 72 jle short 00E1251F ; 判断注册名是否为空
00E124AD 8B4D F0 mov ecx, dword ptr [ebp-0x10] ; 获取注册码到ecx
00E124B0 8379 F4 00 cmp dword ptr [ecx-0xC], 0x0
00E124B4 7E 69 jle short 00E1251F ; 判断注册码是否为空
00E124B6 8D55 F0 lea edx, dword ptr [ebp-0x10]
00E124B9 52 push edx ; 对注册码进行压栈
00E124BA 8D4D EC lea ecx, dword ptr [ebp-0x14] ; ecx=eax=注册名
00E124BD E8 CE40FFFF call 00E06590 ; 关键call
00E124C2 85C0 test eax, eax
00E124C4 74 59 je short 00E1251F
不懂的就看注释了,反正也不是什么很深奥的东西,这些东西都不是什么关键,反正大概的意思就是说获取一个活动窗口,获取控件的内容,判断内容是否为0等等
我们最主要的还是看那个关键call,顺便追码一下,关键跳这里已经找到了,改这里也行,但是还有一个修改点在关键call里面,改那个也可以
具体我们来分析一下
至此这个VC就玩完了,是不是感觉没什么新奇的?我也这么觉得,,,但是就是头一次玩感觉还挺有意思的
The Course Come From XuePoJie.CoM
|