Chinese:

1、GetModuleHandleA这个api用于获取程序的ImageBase(基地址),可以从PEInfo获取。

2、MessageBox有一个参数是OwnerHandle(父窗口句柄),如果为0则表示桌面的句柄,我们可以通过将这个值改为一个不存在的句柄,例如1,这样这个MessageBox就不会显示出来了。

3、可以通过查找PE结构里面的程序入口,然后只要修改这个程序入口的地址,那么就可以跳过一些不必要的指令了。

4、如果想让一些指令不执行,可以通过jmp直接跳到后面的地址,也可以将这些指令用nop填充,但是要注意不能损坏正常的程序运行逻辑。

5、有些文件篡改了PE头的信息,虽然程序可以正常运行,但是却使得程序无法被OllyDebug反调试,这个时候需要去查看PE文件头的信息,找到被篡改的值将其修复。

6、SEH(Structured Exception Handling),结构化异常处理。SEH是Windows操作系统提供的功能,和开发工具无关。

7、异常也可以当作是一种消息,应用程序发生异常时就触发了该消息并告知系统,接收后同样会找它的回调函数,也就是我们的异常处理例程。

8、如果程序中没有做异常处理,系统也不会置之不理,它将弹出常见的错误框,然后结束该程序。

9、在OD中,也可以SHIFT+F9来忽略异常,也可在设置里面设置忽略的异常Code。

10、在OD中先暂停,使用ALT+F9会自动返回到用户程序的领空。

11、Ctrl+N可以查看输入表,可以通过右键下api断点。

12、右键->查找->所有参考文本字符串 可以查询字符串,记得从头开始查询,然后双击查询到的字符串即可跳到对应的地址。

13、右键->查找参考->选定命令 可以跟踪这条指令

14、右键->查找->所有模块中的调用 可以用来查询api

转载于:https://www.cnblogs.com/maplewan/p/3244842.html

OllyDebug调试技巧(三)相关推荐

  1. android studio 扰码,Visual Studio 调试技巧 (三) -- 调试第三方组件代码

    上次我们提到,没有源代码而且没有调试符号,我们也可以 Debug.有人可能会问,我什么时候需要在这种情况下调试吗?! 是的.比方说,我们用了某些第三方的组件,这些组件里面难免也会有 Bug.就算是微软 ...

  2. 你可能不知道的 IDEA 高级调试技巧

    作者:十光年 www.cnblogs.com/jun1019/p/9741224.html 一.条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值. 参考上图, ...

  3. Flutter调试技巧总结——高效开发的秘密

    刚开始学前端的时候看到大家都是用的console.log()作为调试的手段,也可以说,很多人只会用console.log().在学习Flutter开发app的时候,我就在思考,除了使用print()来 ...

  4. 你所不知道的 Android Studio 调试技巧

    Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug,进而解决,可是我们的看家本领.正所谓,工欲善其事必先利其器,和其他开发工具一样, ...

  5. Postman 调试技巧

    Postman 调试技巧 最为一个最基础的猿,我相信你已经掌握的一般接口使用Postman请求了. 如果你还在为下面问题发愁,你可以读下去. 1.后台验证通过请求header中的动态token. 2. ...

  6. 反调试技巧总结-原理和实现(1)(2)(3)(4)(5)(6)......

    反调试技巧总结-原理和实现 -------------------------------------------------------------------------------------- ...

  7. 《Debug Hacks》和调试技巧

    Debug Hacks 作者为吉冈弘隆.大和一洋.大岩尚宏.安部东洋.吉田俊辅,有中文版<Debug Hacks中文版-深入调试的技术和工具>.这本书涉及了很多调试技巧,对调试器使用.内核 ...

  8. 你所不知道的Android Studio调试技巧

    原文链接:简书@涅槃1992 http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为 ...

  9. 运用spss modeler运用支持向量机_玻璃精雕机的调试技巧

    玻璃精雕机是一种运用数字控制的机床设备,与旧式的手艺机床比较,数控机床运用电脑绘图并编程,机床在加工时通过执行程序完结自动加工.玻璃精雕机通常是三轴规划,机床在运转时,读取程序数据并转化成电信号,由这 ...

最新文章

  1. JavaWeb基础—JSP
  2. 《JavaScript设计与开发新思维》——1.7 JavaScript编程目标
  3. 杭州电子科技大学-杭电信标一队
  4. 代码设置按钮样式的方法
  5. 8086汇编-实验4-[bx]和loop的使用
  6. 来,和腾讯一起共建未来城市
  7. C++中public protected private的区别
  8. 【Git】Git-常用命令备忘录(一)
  9. 常用的Homebrew的命令的使用
  10. Java知多少(81)框架窗口基础
  11. 【总结】大规模数据测试,数据准备时需要注意的问题(【保护已有数据】【大规模数据影响普通测试】【不要着急删除数据】)
  12. mysql java dbutil_Java -- DBUtils 框架 操作MySQL数据库
  13. C语言中的main函数为什么被称作程序入口
  14. 如何使用Movavi Slideshow Maker创建幻灯片
  15. java http 工具类_Java发送Http请求工具类
  16. spark MetaException(message:Version information not found in metastore. )
  17. React Native重构路线图发布!
  18. ERD-ONLINE 2.0.3 免费在线数据库建模工具 正式发布
  19. MFC工具条与状态条设计
  20. 微信小程序开发VIP商城项目

热门文章

  1. Python Django模板页面过滤器使用示例
  2. Linux find指令
  3. Java堆内存溢出代码示例
  4. 第一个 PyQt5程序
  5. 强化学习6——Value-based RL和Policy-based RL 的区别
  6. 什么是循环神经网络——学习笔记
  7. linux cpu 实际进程,linux – 找出高CPU占用率的apache进程实际上在做什么?
  8. Linux 之五 最新 2021 一图看尽 Linux 发行版
  9. android 时间差 秒_Android进阶之使用时间戳计算时间差
  10. 手把手教Linux驱动4-进程、文件描述符、file、inode关系详解