[转载]W32DASM范例 例三
信息来源:红星软件工作室实验目的 : 去掉令人讨厌的提示注册的窗口 (NAGS)
实验工具 :W32dasm Hiew
实验对象 :Private EXE
第一步 : 运行 pexe32.exe
第二步 : 现在你看见了那个令人讨厌的 NAGS 窗口了吗 ? 我们的目标 ---- 消灭 NAGS! ;-)
第三步 : 好 , 现在离开该程序 .
第四步 : 进入 PrivateEXE 目录 .
第五步 : 将 pexe32.exe 复制为 pexe32.exx ( 作为备份 ) 与 1.exe
第六步 : 运行 w32dasm 并且将 1.exe 反汇编 .
第七步 : 一旦反汇编完成 , 点 Debug|Load Process 或者按 Ctrl-L
第八步 : 稍等一会直到所有的 DLL 被装入 .
第九步 : 好 , 现在我们已经在 DEBUG 窗口内了 , 此时光条应该在下面这个地方 :
:004074B0 mov eax, dword ptr fs: [00000000]
:004074B6 push ebp
......
第十步 : 这就是此程序的入口 . 现在我们准备运行 Private EXE, 点 RUN ( 或者按 F9). 此时你应该看到了那个 NAGS 窗口了 , 让我们看看它是从哪里调用的 ? 点 STEP INTO ( 或者按 F7). 啊 ! 现在你应该看到下面这几行 :
:00405C21 call USER32.DialogBoxParamA
:00405C27 pop ebp
......
第十一 : 点 Terminate, 关闭 DEBUGGER 窗口 , 离开 Private EXE .
第十二 : 现在回到 W32DASM 窗口 , 此时光条应该停在下面这行上 :
:00405C21 FF1590664100 Call dword ptr [00416690]
:00405C27 5D pop ebp
:00405C28 C3 ret
......
第十三 : 现在你得检查一下它是从哪里开始调用那个 NAGS 窗口的 . 向上移动光标直到你找到 :
:00405BFC CC int 03
:00405BFD CC int 03
:00405BFE CC int 03
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401064 (U)
:00405BFF 55 push ebp
:00405C00 8B442414 mov eax, dword ptr [esp+14]
......
第十四 : 这些 CC (int 03), 这就是程序调用 NAGS 窗口的开始处 . 确认光条停在 :00405BFF 55 push ebp 然后记下窗口底部显示的此处的偏移地址 . 此处为 00004fffh. 这就是我们将要动手的地方 . ;-)
第十五 : 进入 DOS 窗口 , 运行 hiew pexe32.exe, 按 F4 选择 DECODE MODE, 按 F5 输入 4FFF, 应该看到下面几行 :
00005BFF: 55 push ebp
00005C00: 8B442414 mov eax,[esp][00014]
00005C04: 8BEC mov ebp,esp
00005C06: 85C0 test eax,eax
( 注意 , 如果你用的 hiew 版本与我不一样 , 那么地址可能有些不一样 )
第十六 : 这就是应该修改的地方了 . 按 F3, 输入 C3, 按 F9, 将修改存盘 . 此时你看到的应该是 下面这样子 :
00004FFF: C3 retn
00005C00: 8B442414 mov eax,[esp][00014]
00005C04: 8BEC mov ebp,esp
00005C06: 85C0 test eax,eax
第十七 : 那么为什么是 C3 呢 ? 因此当程序运行到 C3(retn) 处时 , 将不再向下运行而直接返回 调用它的地方去 , 这样就不会接着显示那个 NAGS 窗口了 .
第十八 : 现在运行 pexe32.exe 试试 , 啊 ! 没有那个讨厌的窗口了 ! ;-))
注意 : 上面做的这些并没有真正地 CRACK, 而只是使 NAGS 窗口不显示 , 仅此而已 .
页:
[1]