这几天一直在用OD调试一带tmd壳程序,断点时而成功时而崩溃,不知何故。侥幸在某次内存访问断点时,找到我要找的代码,于是准备向上追溯直到拿到全局实例的地址。可断点经常崩溃,又不会写OnlyScript,每次修改代码查看堆栈均很麻烦。于是萌生出自己写个反汇编器,打印出某处的反汇编,在需要下断查看堆栈处写一个hook,打印堆栈后还原hook并继续执行。

首先要解决的是反汇编问题,在网上狂搜,找到OD反汇编引擎,它竟然是开源的,再加上对OD的反汇编出来的文本风格比较熟悉,用它最合适了。(下载地址:http://www.ollydbg.de/disasm.zip)。

在官网看文档发现,官网只在BC和gcc下编译过,没有测试过VC是否能编译。用VC编译,提示缺少头文件<dir.h>。直接注释掉缺少的头文件,再次编译报告找不到pow10l库函数。
    再次在网上找资料,无果,试图用BC编译成LIB,在VC中引用,可LIB格式不一致,仍不行。退而求其次,准备编译成DLL动态引用,可引擎是C写的使用了多个全局变量,这个封装以后要调整就麻烦了。于是决定继续试试用VC编译。
    在网上查pow10l,发现原来只是以10为底的幂函数即10的n次方,于是换成pow(10,N),编译通过,测试程序正常。
    (在assembl.c文件中把:floating*=pow10l(decimal*base);改为:floating*=pow(10,decimal*base);)

在使用过程中还发现一个问题,打印输出的OpCode总是莫名其妙多出很多FF,后来**C多次调试对比后才发现,VS2008默认的char是有符号的,而BC的char默认是无符号的。在项目属性C++选项里设置后,问题解决。

VC++使用OD反汇编引擎(非BC做DLL或LIB包装)相关推荐

  1. 自己的反汇编引擎--Intel指令编码(2)

    第三部分:指令前缀(Prefixes) 指令前缀是解析一条指令之前所要做的第一项工作.从某种意义上来说,指令前缀是指令操作的辅助说明信息. 什么是指令前缀 指令前缀是作为指令的辅助说明信息的,指令前缀 ...

  2. 关于如何用od反汇编win32 控制台程序

    *********************************************************** 如何用od反汇编win32 控制台程序(类似dos程序)呢? ********* ...

  3. 游戏插件开发之防插件剥离的简单保护壳工具设计(利用反汇编引擎实现自动化代码保护)上

    前言: 感谢:易道云学院 tiger老师指导: 前提:需要导入小蜜蜂反汇编引擎,不会的可以回复问,这里不做介绍,MFC页面的搭建也不做详细介绍.因为任务量太大本贴只写代码保护工具的制作,后续解析在下个 ...

  4. Linux radare2反汇编引擎使用

    已经说了三种反汇编引擎了,再一起学习一种radare2,这个开源项目不仅仅时做反汇编,还有其他功能等着我们去发掘,当然可以根据自己的需求选择合适的反汇编引擎,因为之前的文章都是简单的把反汇编引擎简单跑 ...

  5. 反汇编引擎diStorm3

    反汇编引擎diStorm3 diStorm3是Kali Linux自带的一款轻量级.容易使用的反汇编引擎.它可以反汇编生成16位.32位和64位指令.它支持的指令集包括FPU.MMX.SSE.SSE2 ...

  6. 反汇编引擎Capstone

    反汇编引擎Capstone Capstone是Kali Linux自带的一款轻量级反汇编引擎.它可以支持多种硬件构架,如ARM.ARM64.MIPS.X86.该框架使用C语言实现,但支持C++.Pyt ...

  7. OD反汇编EXE添加一个启动时的消息框

    OD反汇编EXE添加一个启动时的消息框 最近有一个要修改PE文件的需求,就先从EXE文件下手吧,我也是初学一个小时而已,不过之前接触过一点汇编罢了,这篇文章算是个DEMO,主要的思路是将其反汇编得到汇 ...

  8. lesson 20 one man in a boat 独坐孤舟-for hours数小时做时间状语,having done于句首非谓语做状语,its wasteof time,do nothing

    钓鱼是我特别喜爱的一项运动.我经常一钓数小时却一无所获,但我从不为此烦恼.有些垂钓者就是不走运,他们往往鱼钓不到,却钓上来些旧靴子和垃圾.我的运气甚至还不及他们.我什么东西也未钓到过 – 就连旧靴子也 ...

  9. Linux intel-xed反汇编引擎使用

    最后一起看看Intel xed 反汇编引擎的使用方法,intel-xed是针对x86平台的反汇编引擎,对于其他架构的支持还是有所欠缺: github:https://github.com/intelx ...

  10. C/C++ BeaEngine 反汇编引擎

    反汇编引擎有很多,这个引擎没有Dll,是纯静态链接库,适合r3-r0环境,你可以将其编译为DLL文件,驱动强制注入到游戏进程中,让其快速反汇编,读取出反汇编代码并保存为txt文本,本地分析. 地址:G ...

最新文章

  1. CSharpGL(1)从最简单的例子开始使用CSharpGL
  2. mRemoteNG 远程连接工具(开源)
  3. 系统设计说明书案例_案例 | 太阳能+热泵枸杞烘干系统设计及经济性分析
  4. 如何调整ABAP程序的性能
  5. 一维数组中的一些问题
  6. hp-ux修改时区方法_UX研究人员可以倡导人类的6种方法
  7. windows10把单独文件固定到开始屏幕
  8. python查找当前路径,在Python中查找当前终端选项卡的当前目录
  9. Excel VBA函数和过程调用方法总结(跨文件调用函数和过程)
  10. linux系统FW升降级步骤,一种用于在Linux系统下不重启系统实现LSIRAID卡FW升级的方法与流程...
  11. 如何使用计算机上合并计算方法,excel合并计算的方法步骤详解
  12. php依赖注入框架pimple中文文档
  13. 使用OOP思想二次封装echarts
  14. 鸿蒙 谷歌怕了,鸿蒙系统展示了华为的野心,难怪谷歌害怕
  15. java实现在pdf中添加文字和图片
  16. php创建多个数据表,PHP-无法在数据透视表中创建多个多对多关系
  17. 敏捷的精髓在于即时反馈
  18. PPAPI插件的全屏切换处理
  19. 为什么 Vue 更符合这个时代的大势所趋
  20. 【Linux杂篇】Cron是什么?利用Cron Job自动执行定时任务

热门文章

  1. 利用python破解zip压缩文件密码
  2. 加法器、半加器、全加器、超前进位加法器
  3. CTF-WEB小技俩 ——合天网安实验室学习笔记
  4. npm 安装vue脚手架报错警告npm WARN deprecated
  5. win10光盘刻录linux镜像,使用win10自带的刻录工具制作ISO镜像文件光盘
  6. ROM 和 RAM 区别
  7. UltraCompare无限30天试用的方法
  8. 技嘉ide模式怎么改,电脑BIOS中怎么设置硬盘为IDE模式
  9. 2019 ngChina 开发者大会 - 工作坊系列:RxJS,Angular,和全栈开发
  10. excel切换sheet的快捷键