Ollydbg使用教程学习总结(五)

解密系列之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 [esp+4C]
jmp 42037F

然后点击“汇编”按钮即可修改完成。
在这里插入图片描述
再讲该条指令修改如下
在这里插入图片描述
进行保存到文件即可。

解密系列之OD使用教程18

程序:Urlegal.exe
新工具:FishcOD、eXeScope.exe(可进行资源的修改)
首先安装程序,再用eXeScope载入程序
在这里插入图片描述
得到退出时弹出的NAG窗口的模板名103(0x07),由以下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:[eax+0x2C]

这条指令的话,将覆盖掉后面的一条指令,因此可以直接同时修改2条指令

00403E1F  |.  8B45 FC       mov eax,[local.1]
00403E22  |.  8B40 2C       mov eax,dword ptr ds:[eax+0x2C]

修改后保存到可执行文件,运行测试,发现注册按钮已经变成灰色,点击关闭按钮也不会弹出NAG窗口。

解密系列之OD使用教程19

程序:movgear.exe
运行程序,点关闭按钮后,弹出NAG窗口,出现试用还剩30天等信息。同上一节课所讲,用eXeScope载入程序,找到该NAG窗口的模板名为100(0x64),用OD载入,查找push 0x64指令。
在这里插入图片描述
在每个命令下断,如上,运行程序并关闭后断下的地方才是我们关注的地方,地址为00406725,删掉其他断点;往上浏览程序,发现有关键跳转和call。
在这里插入图片描述
在该call和跳转处下断,重新运行程序并关闭,断下,跟进
在这里插入图片描述
RegOpenKeyEx:打开注册表的键值。

0043168A  |.  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
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,在动态链接库中断下,再按下Alt+F9回到用户领空。
在这里插入图片描述

待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python的Wine数据集分类scikit-learn和K近邻实验

一、题目 请使用scikit-learn库和K近邻分类器完成Wine数据集的分类,训练比例自定。(数据下载: https://archive.ics.uci.edu/ml/datasets/Wine) 二、题目分析 这道题目就是获取数据然后分类的过程。首先在网站上下载好数据。然后回到Pycharm导入实验所需要的skle…

[MEGA DEAL]完整的Java捆绑包(96%折扣)

深入了解编程奥德赛(58小时!),进入最常用的编程语言 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了另一个超值优惠 。 我们为The Complete Java Bundle提供96%的…

基于PLC十字路口交通灯控制(可计算车流量、调整时间等)课程设计毕业设计

微信公众号:创享日记 发送:plc交通灯 获取完整论文报告(内含梯形图程序、无水印流程图等) 按照城市交通控制的需要,本文讨论了用PLC实现正常时序、急车强通2种控制方式,通过传感器与PLC完成对交通异常状况&…

Ollydbg使用教程学习总结(四)

解密系列之OD使用教程13——迷途 程序:XoftSpy41._96.exe 用PEID查看,是VC6编写的程序,用OD载入 获取文本框输入内容API:GetWindowTextA API下断方法: a.右键>查找>所有模块间的调用,直接输入API&am…

基于PLC高层楼房供水系统课程设计毕业设计

设计目的 (1)能够检测到水箱的水位并用指示灯显示。 (2)由检测到水箱的水位,实现3台电机的供水要求。 (3)设计plc程序。 设计要求 (1)确定输入/输出设备。 (…

基于PLC四层电梯模型控制系统课程设计

总设计要求 1.1 电梯上行设计要求 ①当电梯停于1F或2F、3F时,4F呼叫,则上行到4F, 碰行程开关后停止。 ②当电梯停于1F或2F时,3F呼叫,则_上行到3F,碰行程开关后停止。 ③当电梯停于1F时,2F 呼叫…

基于西门子PLC s7-200 的自动立体车库设计自动化设计(控制器步进电机直流电机)

本组的设计题目是《基于 PLC 的立体车库设计》,本组设计包括机械设计,电路设计以及程序设计。在设计中遇到了很多困难,参考了相关资料,与老师进行多次沟通,一边学习一边制作,以厂家资料为标准进行修改&…

基于51单片机的8八路抢答器设计

基于51单片机的8路抢答器 具体功能: (1)主持人进行复位,依次显示8位选手的分数,8位选手分数显示结束后主持人方可按下开始按键; (2)主持人按下抢答开始按键,抢答者才可以…

基于51单片机的简易抢答器设计

基于51单片机的简易抢答器 具体功能: 1、主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S。 2、抢答者按下按键,数码管显示抢答者的编号。 3、可以通过按键修改倒计时时间。 部分程序代码: #incl…

Word2019中Visio对象图片插入题注时自动删除标签与编号前的空格,编号后添加空格

问题引入 撰写论文时为了修改方便,通常以插入题注和交叉引用的方式来给图片标号,这样修改图片和图号后可以方便、自动地更新。 然而,Word在插入题注上从03到13一直没有针对中国用户优化。 插入题注的标签与编号间有一个空格,当…

【32位win7一键扫雷】32位win7系统自带扫雷游戏逆向分析之一键扫雷(附VS代码工程文件、可执行文件和OD分析缓存文件)

实现效果 视频地址:https://www.zhihu.com/zvideo/1373742900744974336 附一张扫雷自定义中难度最大时进行一键扫雷的截图,如下,24*30,共668颗雷。 前言 一直对逆向感兴趣,就拿最简单的扫雷开始,对于XP系统中的扫雷,雷的数目以及雷区的地址都是固定的,可以直接通过…

基于51单片机的智能电子秤设计课程设计毕业设计

微信公众号:创享日记 对话框发送:单片机电子秤 获取仿原理图、真源文件、源程序代码和论文报告等 由STC89C51单片机最小系统LCD1602液晶显示模块HX711AD模块LED模块蜂鸣器按键模块10kg压力传感器构成。 具体功能: 1、数码管显示当前的重量&a…

【黑客帝国数字雨屏保】基于Win32的黑客帝国数字雨屏幕保护程序(附VS工程代码文件和可执行文件)

运行效果 代码结构 //黑客帝国数字雨 花心胡萝卜 #包含 <windows.h> #包含 <stdlib.h>#define 时钟编号 1 #define 最大长度 25 //一个显示列的最大长度 #define 最小长度 8 //一个显示列的最小长度 // 类型定义 结构类型 _字符序列 {//整个当作屏幕的一个显示列…

【模式识别】Fisher线性判别实验报告之MATLAB仿真

一、 参数 1.题设三个类,每个类均有10个样本,分别为w1,w2,w3,因此采用两两互相分类,最后得出结果; 2.三类样本的均值向量依次为m1,m2,m3; 3.三类样本的类内离散度矩阵依次为S1,S2,S3; 4.对于w1和w2,总类内离散度矩阵为Sw12,类间离散度矩阵为Sb12,通过矩阵特…

不知所措:您是否真的需要为您的API提供客户端库?

RESTful Web服务和API的优点在于&#xff0c;任何使用HTTP协议的使用者都可以理解和使用它。 但是&#xff0c;同样的难题一遍又一遍地弹出&#xff1a;您是否应该将Web APis与客户端库一起使用&#xff1f; 如果是&#xff0c;您应该支持哪些语言或/和框架&#xff1f; 通常这…

【自适应盲均衡3】多模算法(MMA)——复数改进常模算法(MCMA)的理论推导与MATLAB仿真

关注公号【逆向通信猿】更精彩!!! 接上篇【自适应均衡2】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 理论推导 MMA或者MCMA其实是在CMA基础上改进而得到的,有学者称其为实虚部分开的常模算法。该算法使均衡器输出信号的实部与虚部分别收敛于各自的模值,改…

程序猿必备工具『CSDN浏览器助手』之超实用小工具测评

CSDN浏览器助手简介 CSDN浏览器助手由CSDN官方开发&#xff0c;集成【一键呼出搜索】、【万能快捷工具】、【个性标签页】和【 “真”免广告】四大功能&#xff0c;打开后给人的第一印象就是 清新脱俗 四个字&#xff0c;功能非常丰富&#xff0c;快捷键的使用能够大大提高工作…

【自适应盲均衡4】基于RLS的多径衰落信道均衡算法(RLS-CMA)的理论推导与MATLAB仿真

关注公号【逆向通信猿】更精彩!!! 一、回顾CMA和MMA 对于前面两种算法 【自适应均衡】多径衰落信道的复数常模算法(CMA)的理论推导与MATLAB仿真 【自适应均衡】多模算法(MMA)——复数改进常模算法(MCMA)的理论推导与MATLAB仿真 误差信号为:

【自适应(盲)均衡6】信号过多径衰落信道的矩阵乘法表示之Toeplitz矩阵和Toeplitz块矩阵的生成(分数间隔FSE)

关注公号【逆向通信猿】更精彩!!! 信号过系统(多径信道)的连续形式 信号过系统(多径信道)的离散采样形式 通常接收端处理的是数字信号,需对接收信号进行采样,当采样率为符号速率时,即为符号间隔采样;采样率为符号速率的P倍时,为分数间隔采样 至于为什么要用分数…

JDK 9/10/11:Java字符串上+ =带来的副作用

问题“ 为什么array [i &#xff05;n] i ”在Java 8和Java 10中给出不同的结果&#xff1f; ”已于本周初发布在StackOverflow.com上 。 它指向JDK9和更高版本中存在的Java编译器中的错误 &#xff0c;但JDK8中不存在。 如StackOverflow线程上所述&#xff0c; Didier L提供…