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

解密系列之OD使用教程1

使用例子程序为Hello.exe
OD基本快捷键及功能
在这里插入图片描述
从系统DLL领空返回到程序领空,Alt+F9

通过OD将程序的标题“Hello world”改为“OD Class 01”
直接单步执行法
按F8单步执行,找到MessageBox传参的地方,直接在数据窗口修改即可。如下图:
在这里插入图片描述

解密系列之OD使用教程2

使用例子程序为TraceMe.exe
在这里插入图片描述

获取编辑框输入内容的API断点法

1、在反汇编窗口中按下Ctrl+G,输入GetDlgItemTextA,发现存在这个API函数,点击OK,并按F2下断点;

2、按F9运行程序,输入用户名和序列号,点check,程序断下;

3、单步执行程序,共断下两次,依次用Ctrl+F9执行到返回,继续向下执行,则可看到

004011D7   .  8D5424 4C     lea edx,dword ptr ss:[esp+0x4C]
004011DB   .  53            push ebx
004011DC   .  8D8424 A00000>lea eax,dword ptr ss:[esp+0xA0]
004011E3   .  52            push edx
004011E4   .  50            push eax
004011E5   .  E8 56010000   call TraceMe.00401340                    ;  验证程序
004011EA   .  8B3D BC404000 mov edi,dword ptr ds:[<&USER32.GetDlgIte>;  user32.GetDlgItem
004011F0   .  83C4 0C       add esp,0xC
004011F3   .  85C0          test eax,eax
004011F5   . /74 37         je short TraceMe.0040122E

00401340这个call就是验证程序

爆破方法:
①将测试其返回值后的跳转Nop掉;
②将test eax,eax改为mov al,1

右键=>复制到可执行文件=>选择;右键=>备份=>保存数据到文件,命名为TraceMe1.exe,运行之,输入用户名和密码,点check,提示成功。

此外,另一个读取编辑框函数:GetWindowText;还可通过Ctrl+N打开应用程序的导入表,查看程序总共导入了哪些API函数。

解密系列之OD使用教程3

程序:reverseMe.exe

  • EAX:扩展累加寄存器
  • EBX:扩展基址寄存器
  • ECX:扩展计数寄存器
  • EDX:扩展数据寄存器
  • ESI:扩展来源寄存器
  • EDI:扩展目标寄存器
  • EBP:扩展基址指针寄存器
  • ESP:扩展堆栈指针寄存器
  • EIP:扩展的指令指针寄存器

除了以下三个寄存器,其他我们都可以随意使用:

  • EBP:主要是用于栈和栈帧;
  • ESP:指向当前进程的栈空间地址。
  • EIP:总是指向下一条要被执行的指令。

call XXX;等价于 push eip; + jmp XXX;
在这里插入图片描述
真正需要关心的标志位只有三个,也就是cmp指令能修改的那三个:Z/O/C

  • Z标志位(0标志),这个标志位是最常用的,运算结果为0时候,Z标志位置1,否则置0。
  • O标志位(溢出标志),在运行过程中,如操作数超出了机器能表示的范围则称为溢出,此时OF位置1,否则置0。
  • C标志位(进位标志),记录运算时从最高有效位产生的进位值。

①方法一:找到每次陷阱跳转,并jmp跳过或者nop掉即可
在这里插入图片描述
在这里插入图片描述
②方法二:找到验证算法,需要一个名为Keyfile.dat的验证文件,其内容包含16个G即可。

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

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

相关文章

Python连锁药店营业额数据分析实验

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 一、题目 附件drug. order_ detai 1.xlsx是某连锁药店销售数据&#xff0c;请使…

Python计算细胞核与细胞质的面积比opencv或pil实验

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 一、题目 根据附件cell.jipg&#xff0c;使用opencv库或者PIL库计算细胞核与细胞…

Java 10:将流收集到不可修改的集合中

Java 10引入了几种新方法来促进不可修改集合的创建。 List.copyOf &#xff0c; Set.copyOf和Map.copyOf方法从现有实例创建新的集合实例。 例如&#xff1a; List<String> modifiable Arrays.asList("foo", "bar"); List<String> unmodifi…

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

解密系列之OD使用教程4 程序1&#xff1a;RegisterMe.exe 把程序跑一遍之后我们发现程序有两个NAG&#xff0c;一个是在程序界面启动前出现&#xff0c;另一个是在程序关闭后出现的。 去掉第一个Nag方法如下&#xff1a; ①jmp跳过 ②全部nop掉 ③令hOwner参数为1&#xf…

Python基于Django的电影推荐系统和论坛项目完整源码

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送&#xff1a;电影论坛 获…

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

解密系列之OD使用教程9 程序&#xff1a;MrBills.exe 点击注册&#xff0c;输入邮箱和序列号后提示如下 突破口&#xff1a;该提示窗口中的字符串&#xff0c;查找如下 双击来到反汇编窗口&#xff0c;有个关键跳转&#xff0c;往上查看影响跳转的语句是test al,al&#xf…

Python用matplotlib绘制曲线实验

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

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

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

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

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

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

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

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

深入了解编程奥德赛&#xff08;58小时&#xff01;&#xff09;&#xff0c;进入最常用的编程语言 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了另一个超值优惠 。 我们为The Complete Java Bundle提供96&#xff05;的…

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

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

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

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

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

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

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

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

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

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

ini配置文件的读写

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

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

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

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

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

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

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