推荐网站制作建设书,品牌网站首页设计,吴桥县网站建设,超炫网站解密系列之OD使用教程17——inline patch
程序#xff1a;ReverseMe. NAGs.exe 新内容#xff1a;硬件断点 用PEID打开#xff0c;看到程序是用VC6.0写的#xff0c;用OD载入#xff0c;按F9运行后#xff0c;出现NAG窗口#xff0c;在OD中按下暂停#xff0c;再打开堆…解密系列之OD使用教程17——inline patch
程序ReverseMe. NAGs.exe 新内容硬件断点 用PEID打开看到程序是用VC6.0写的用OD载入按F9运行后出现NAG窗口在OD中按下暂停再打开堆栈窗口 如上图高亮行正是调用NAG窗口的call双击来到反汇编窗口并下断 重新运行程序发现程序的3个窗口都是对话框且都来自这个call因此不能直接将该指令NOP掉。继续往上浏览发现有je跳转语句只要让第1次和第3次跳转实现第2次跳转不实现即可。 在数据段00445E80的位置定义个变量作为计数器在这个字节下硬件写入断点进行测试看程序在运行过程中有没有改动该地址处的内容发现程序并不会修改可行。在该跳转指令下断在00437D70地址处添加个书签方便来回查看。但此处直接用NonaWrite 1.2插件进行修改打开插件输入
0x437D70:
inc byte ptr [445E80]
cmp byte ptr [445E80],2
jnz 004203BA
lea ecx,dword ptr [esp4C]
jmp 42037F然后点击“汇编”按钮即可修改完成。 再讲该条指令修改如下 进行保存到文件即可。
解密系列之OD使用教程18
程序Urlegal.exe 新工具FishcOD、eXeScope.exe可进行资源的修改 首先安装程序再用eXeScope载入程序 得到退出时弹出的NAG窗口的模板名是1030x07由以下2个函数可知
HWND DialogBoxParam (HINSTANCE hlnstance, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROC IPDialogFunc, LPARAM dwlnitParam);
HWND CreateDialogParam (HINSTANCE hlnstancem, LPCTSTR IpTemplateName, HWND hWndParent, DLGPROCIpDialogFunc, LPARAM dwlniParam);在OD里查找push 0x67 往上查看这个过程并不是破解的关键因为没有关键跳转因此回溯到调用该过程的位置由提示窗口 转到调用处查看 如上图注释所示在关键call下断并重新运行程序跟进发现该过程非常短猜测可能是程序验证是否注册的过程在开始处下断重新运行程序如果是的话程序运行开始就会执行该过程以检测是否注册。
如猜测程序运行后在此断下现在只需要将eax的值修改为1即可但仅修改
00403E22 |. 8B40 2C mov eax,dword ptr ds:[eax0x2C]这条指令的话将覆盖掉后面的一条指令因此可以直接同时修改2条指令
00403E1F |. 8B45 FC mov eax,[local.1]
00403E22 |. 8B40 2C mov eax,dword ptr ds:[eax0x2C]修改后保存到可执行文件运行测试发现注册按钮已经变成灰色点击关闭按钮也不会弹出NAG窗口。
解密系列之OD使用教程19
程序movgear.exe 运行程序点关闭按钮后弹出NAG窗口出现试用还剩30天等信息。同上一节课所讲用eXeScope载入程序找到该NAG窗口的模板名为1000x64用OD载入查找push 0x64指令。 在每个命令下断如上运行程序并关闭后断下的地方才是我们关注的地方地址为00406725删掉其他断点往上浏览程序发现有关键跳转和call。 在该call和跳转处下断重新运行程序并关闭断下跟进 RegOpenKeyEx打开注册表的键值。
0043168A |. 8D5424 14 lea edx,dword ptr ss:[esp0x14]LONG RegQueryValueEx(HKEY hKey, // handle of key to query LPTSTR lpszValueName, // address of name of value to query LPDWORD lpdwReserved, // reserved LPDWORD lpdwType, // address of buffer for value type LPBYTE lpbData, // address of data buffer LPDWORD lpcbData // address of data buffer size );edx为倒数第2个参数指向数据缓冲区。继续往下浏览程序发现在获取了注册表信息后可能将用户名和密码压栈然后调用关键call进行检测 最后如果验证失败的话会跳到过程的结尾 观察程序eax的值最终来源于ebx因此可将该指令 mov eax,ebx修改为mov eax,1 但是经测试这样修改会覆盖后面的指令因此可修改为 mov al, 1即可爆破。
解密系列之OD使用教程20
程序KeygenMe.exe DialogBoxes类型常用APIs通常在注册界面获取
DialogBoxParamA
GetDlgItem
GetDlgItemInt
GetDlgItemTextA
GetWindowTextA
GetWindowLong该程序是一个注册机程序用的是GetDlgItemTextA来获取输入的文本用OD载入键入命令 bp GetDlgItemTextA下断输入用户名、密码Ontrd、1234567点击Check在动态链接库中断下再按下AltF9回到用户领空。
待续。。。