当前位置: 首页 > news >正文

OllyDbg技巧学习

1 尝试在反汇编代码中找到一个函数的二进制代码

    有的时候需要一个函数的二进制代码,注入到另外的一些地方;以此程序为示例,

八叉树的C++实现与原理解析-CSDN博客

Ollydbg打开可执行文件,我想先找到此函数的二进制代码体,

createOctree(OctreeNode<T> * &root,int maxdepth,double xmin,double xmax,double ymin,double ymax,double zmin,double zmax)

一直在里面晃来晃去的找, 在第四列会给出一些函数的名字,但是确实没有 createOctree 这个文本;

执行如下的菜单,

弹出如下的窗口,

 

这是程序中包含的所有文本,没有 createOctree ;

那么系统的函数名,像调用的Win32 API会被识别标记,自己的函数名,应该是编译之后变成了某种标记,不再是文本的函数名;

然后又找;发现,在第4列,有Arg1、Arg2这些东西,这应是函数的参数,被识别出来;

createOctree函数,有8个参数,代码只有此函数有8个参数,找到一个有Arg1-Arg8的Call,这个被Call的地址,应该就是createOctree函数的起始地址;

上图就是一个有8个参数的Call,0040E764,这地址应该就是 createOctree函数的起始,转到此地址,

上图应该就是 createOctree函数的起始;

那么如何找到函数的结尾呢;应该是找到call对应的ret,就结束了;问题是此call里面又包含多个call,不知怎么找到对应函数起始的call的ret;下回再说;

然后看一下代码里有 system("cls"); 这是从代码调用一个DOS命令;

在反汇编代码中识别出字符串 "cls",看到有2个地方都调用了0040C3CE,

转到0040C3CE,这里应该就是system("cls")这个调用的执行部分的开始,

 

然后往下看一下,看到一个ret,在ret之前有command.com、cmd.exe这些字样,这就对了,cls是一个DOS命令,DOS命令是属于command.com或者cmd.exe;到这个ret,system("cls")这个语句的执行部分也许就结束了;

 

有时间继续; 

http://www.xdnf.cn/news/1146889.html

相关文章:

  • 车载诊断架构 --- 故障码DTC严重等级定义
  • 【Unity编辑器开发GUI.Window】
  • Netty集群方案详解与实战(Zookeeper + Redis + RabbitMQ)
  • 如何用Python并发下载?深入解析concurrent.futures 与期物机制
  • 【密码学】1. 引言
  • 目标框的位置以及大小的分布
  • 题解:CF1617C Paprika and Permutation
  • VMC850立式加工中心Y轴传动机械结构设计cad【7张】三维图+设计说明书
  • DTW算法解决时序问题的解析实践
  • JavaSE -- 数组详细讲解(数组介绍,Arrays常用方法,二维数组创建)
  • Spring中的设计模式
  • pom.xml文件中的${}变量从哪里传值
  • 基于Qwen2.5-3B-Instruct的LoRA微调与推理实战指南
  • js中的微任务和宏任务的理解
  • 读书笔记:《动手做AI Agent》
  • Android性能优化之UI渲染优化
  • LP-MSPM0G3507学习--05中断及管脚中断
  • CMake指令:常见内置命令行工具( CMake -E )
  • math.h函数
  • CCF编程能力等级认证GESP—C++3级—20250628
  • 20250718-3-Kubernetes 应用程序生命周期管理-Pod对象:存在意义_笔记
  • MyBatis-Flex代码生成
  • jvm分析篇---1、先认识下dump文件
  • b-up:Enzo_Mi:深度学习基础知识
  • 【C语言进阶】题目练习(2)
  • 【51】MFC入门到精通——MFC串口助手(一)---初级版(初始化、串口设置、修改参数、打开/关闭、状态显示),附源码
  • 机器学习基础:线性回归算法详解(原理+代码+实战)
  • Proto文件从入门到精通——现代分布式系统通信的基石(含实战案例)
  • 数据库模型异常问题深度解析:冗余与操作异常
  • 柴油机活塞cad【4张】三维图+设计说明书