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

解密系列之OD使用教程9

程序:MrBills.exe
在这里插入图片描述
点击注册,输入邮箱和序列号后提示如下
在这里插入图片描述
突破口:该提示窗口中的字符串,查找如下
在这里插入图片描述
双击来到反汇编窗口,有个关键跳转,往上查看影响跳转的语句是test al,al,猜测al=0为未注册,al=1为已注册,再往上查看,call 0040714C决定al值,下断跟进查看。
在这里插入图片描述
跟进“需进入1”,找到2个关键call
在这里插入图片描述
跟进“需进入2”和“需进入3”,发现函数里代码相似
在这里插入图片描述
看来call 406F4B是关键,跟进后来到
在这里插入图片描述
最后一句为mov al,bl,这是改变al值的关键语句,修改为mov al,1后按F9运行程序,发现
在这里插入图片描述
保存到可执行文件后,运行程序
在这里插入图片描述
未注册等信息已经不在了。

解密系列之OD使用教程10

程序:PC2AM2_PRO.exe
首先进行安装,然后用PEID查看如下所示
在这里插入图片描述
可知该程序由VB编写,所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~),然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时频繁地在DLL领空和程序领空跳来跳去。
VB程序破解关键

针对变量针对字符串
__vbaVarTstEq__vbaStrCmp
__vbaVarTstNe__vbaStrComp
__vbaVarCompEq__vbaStrCompVar
__vbaVarCompLe__vbaStrLike
__vbaVarCompLt__vbaStrTextComp
__vbaVarCompGe__vbaStrTextLike
__vbaVarCompGt
__vbaVarCompNe

用OD载入,按下Ctrl+N打开模块窗口,查找(直接输入)vbaVarTstEq,找到后右键=>在每个参考上设置断点,提示设置了88个断点,按F9运行程序,在第一个断点处断下,继续按F8单步执行,走到下面图中位置
在这里插入图片描述
注释里有一串类似注册码的字符,记录下来,删除所有断点,在注册编辑框里输入,注册成功。(简单VB程序的注册码一般都可以用类似的方法找到)

oeiu-564-oqei-97

解密系列之OD使用教程11

程序:fjprodsetup.exe
安装程序,打开查看是未注册版本,有功能限制。用OD载入,搜索所有字符串unregister,双击下面高亮一行
在这里插入图片描述
发现有跳转,但修改跳转之后只是去掉了标题栏的unregistered,并不能破解,关键还在于al的值
在这里插入图片描述
如图,选中子程序第一行,提示窗口显示本地调用来自4047D3、404880,在这两个地址处下断,去掉之前的断点。按F9运行程序,在4047D3处断下,去掉404880处的断点,如下图
在这里插入图片描述
4047CD处下断,重新运行程序,跟进发现这个call可能是程序加密验证的过程,如下图所示可进行修改并保存达到破解
在这里插入图片描述
的目的,但还可进行更深入的研究,进入验证函数1和函数2对加密算法进行逆向,写出注册机,此处不再赘述,有能力者可联系笔者进行交流。

解密系列之OD使用教程12——逆向后的Delphi特色

程序:Teksched.ex.
运行程序,有NAG窗口,需要注册,用PEID查看是Delphi编写的程序,用OD载入程序,留意Delphi程序与VC程序的区别。
搜索字符串registration,如下
在这里插入图片描述
双击第一行,来到
在这里插入图片描述
在高亮这行右键=>查找参考=>选定命令,有
在这里插入图片描述
双击第一行,又来到了原来的地方
在这里插入图片描述
004A582C、004A5841处下断,F9运行起来,点击注册窗口,输入注册信息,发现并不能断下。得找其他突破口,向上浏览程序反汇编代码,可以看到程序很有Delphi特色:

1、push 004A5841 retn,这两条指令后会有jmp往前跳的指令,等价于 jmp 004A5841

2、存在很多call调用

继续往上浏览,发现有输入注册码提示信息,在上图地方下断
在这里插入图片描述
运行程序,输入注册信息,按Ctrl+F8执行,程序跑飞,断在ntdll动态链接库中,按“—”号回到程序领空,并在该call上一条指令处下断,然后运行程序
在这里插入图片描述
将该call指令NOP掉,继续执行,来到下图
在这里插入图片描述
将高亮这行改为jmp 4A5608,继续执行
在这里插入图片描述
将该条跳转NOP掉,按Ctrl+F8继续执行,最后来到最开始的位置如下
在这里插入图片描述
至此,程序完美破解
在这里插入图片描述
保存修改到文件后,重新运行程序进行验证,完美破解。

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

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

相关文章

Python用matplotlib绘制曲线实验

一、题目 计算出每组数据的均值和标注差,用matplotlib画出如下风格。横轴是每组的序号,即1,2,… 10,曲线的圆点对应均值,颜色范围为标注差,显示垂直和水平网格线。 二、题目分析 首先分析这…

java 设计模式 示例_Java中的状态设计模式–示例教程

java 设计模式 示例状态模式是行为设计模式之一 。 当对象根据其内部状态更改其行为时,将使用状态设计模式。 如果必须根据对象的状态更改其行为,则可以在对象中使用状态变量,并使用if-else条件块根据该状态执行不同的操作。 状态模式用于通…

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

解密系列之OD使用教程17——inline patch 程序:ReverseMe. NAGs.exe 新内容:硬件断点 用PEID打开,看到程序是用VC6.0写的,用OD载入,按F9运行后,出现NAG窗口,在OD中按下暂停,再打开堆…

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)确定输入/输出设备。 (…

【通信原理课程设计】8PSK调制解调技术的设计与仿真(MATLAB)

摘要 在数字信号的调制方式中8PSK是目前最常用的一种数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。调制技术是通信领域里非常重要的环节,一种好的调制技术不仅可以节约频谱资源而且可以提供良好的通信性能。8PSK调制是一种具有较高频带…

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

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

ini配置文件的读写

很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又…

自定义jackson序列化_Jackson中的自定义反序列化程序和验证

自定义jackson序列化tl; dr:将输入验证添加到Jackson中的自定义json解串器中很重要。 在RHQ中,我们在几个地方使用了Json解析-直接在as7 / Wildfly插件中,或者通过RESTEasy 2.3.5间接在REST-api中使用,已经很繁重了。 现在&…

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

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

在Java 8之前,您编写了几行代码来对对象集合进行排序?

在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成。 让我们看看下面的Employee类。 public class Employee {private String name;private Integer age;public Employee(String name,…

MFC无边框对话框实现拖动

解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLButtonDown)时,通过设置标志并调用CWnd::SetCapture()函数来让当前窗口捕捉鼠标…

基于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…