声明:本文中的知识点均来自小甲鱼的《OD使用教程-调试篇》,在此向小甲兄表示深深的感激,让我走进了逆向的世界。有兴趣的朋友可以观看该视频教程。在此奉上小甲鱼的官方论坛地址:http://bbs.fishc.com/forum.php。

1.NGA窗口去除的方法:

对于windows的对话框窗口的定位有一个技巧,就是通过资源管理器之类的工具先找到窗口的ID。然后在代码块中搜索命令push 0xID,之所以这样是因为windows在创建对话框窗口的时候都有一步将窗口ID入栈的操作,利用这个定位到启动对话框的地方,然后想办法去除掉这个窗口。这里举个小例子:

这有一款老软件,MrBills。一打开就会有个提示窗口,利用这个方法可以将其去掉。

可以用Resource Hacker工具查看这个软件的资源,找到这个NGA窗口的ID

由于OD里面都是16进制,所以这里将204转化为CC。然后在OD中搜索push 0xCC。将所有的地方都下断点,看看哪个会断下来。

找到了相应启动对话框的地方,就可以选择屏蔽掉了。这里有多种方法,比如直接nop,或者向上找跳转语句避开等。这里提一个小技巧,对于用MessageBox产生的对话框,可以通过将父句柄的那个参数设置为1(一般都是NULL,表示属于当前窗口),这样1是不存在的窗口,那么这个Messagebox也就失效了,不会弹出对话框。

2.空格是修改内容的快捷键。比如想修改某处的指令或某个内存地址的内容,可以点击空格会自动弹出修改框。

3.运行加载的程序,如果出现异常。我们可以屏蔽异常。操作方法是点击选项-〉调试设置-〉异常,全选里面的选项,添加异常范围,比如可以添加8个0到8个F,意味着忽略32位系统所有异常。

4.查找字符串的一种方法,点击M,然后点击ctrl+B进行字符串搜索。修改字符串的时候注意最好保持大小,不然程序可能会出错。

5.对于计算天数的程序(比如试用期,当然前提是信息保存在本地,服务器验证的话那就不适用),可以放到沙盘中运行,这样沙盘结束后就自动清理了所有信息,天数就一直不变了。

6.有一种跳转是可变跳转,就是这样jmp eax。通过控制eax的值来实现可变跳转。

7.内存断点只能设置一个,前一个自动删除。一个内存断点会改变整个页(4KB)内存的属性,哪怕只设置一个字节的内存断点。

8.软件断点只能在OD的CPU界面里下,在数据段下不了,在一条指令的中间也下不了。

9.如果断点想下在动态链接库里,那就需要硬件断点。因为软件断点下在dll里,在相应文件里是不保存的,重启程序后会丢失断点。

10.ctrl+F8 是让OD自动逐条指令执行

11.F12是暂停程序,alt+F9是回到程序领空。

12.暂停法:对话框出来的时候,按暂停,点击K,看调用堆栈。

13.突破试用期限制的一种方法:试用结束后的代码和试用中的代码逻辑必然不同,那如何找到关键点呢?在试用中时可以逐条执行指令,遇到跳转就注释一下Y或N(在所有程序领空标记)。然后看过期后相应位置的跳转情况。找到不同的地方,即找到了关键点。

14.如果“复制到可执行文件”这个按钮不在了,可以点击所有修改-〉Olly Advance插件-〉Options,勾选Always enable “Copy all”显示出来。

15.push ebp是win32程序的入口点

16.双击注释面板空白处或点击;,都可以写入注释。

17.test 和 cmp 是判断的关键点,win32程序中函数的返回值一定在eax里。

18.做好注释,事倍功半。进入一个call中,先大致走一遍,看看返回处指令。

19.汇编代码中的neg指令,是取补码指令。

20.VB程序的逆向思路。几乎所有的VB都依赖于一个外部的动态链接库MSVBVM60.dll,这个dll版本可能有多个,但名字差不多。VB中所有的API函数都在DLL中实现。

对于VB的变量比较,常用函数如下:

__vbaVarCompEq   __vbaVarCompLe   __vbaVarCompLt   __vbaVarCompGe   ___vbaVarCompGt

__vbaVarComNe    __vbaVarTstEq   __vbaVarTstNe

对于字符串的比较,常用函数如下:

__vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp _vbaStrTextLike

21.查找函数的一种快捷方法:直接在点击ctrl+N,就会调出函数面板,然后直接键盘输入函数名,OD会自动检索那个函数。

22.alt+B是打开断点列表。

23.delphi程序的特色(第12讲内容):

1.看到retn就看上面有没有push + 地址,有的话就相当于jmp。

2.N多的call

24. -号是操作退一步,+号是操作进一步

25.给程序加入变量:如果想插入变量,我们先到数据段。点击M,找到数据段,双击进去。然后往下拉,找到0000...的位置,也就是用作填充的位置,我们往这些位置插入自己的数据。但要注意,虽然这部分应该是填充用的,但我们还是得测试一下,因为万一程序运行起来用到这部分值,那就糟了。选中想写入的位置,下硬件写入断点,其实一个word就够了,跑起来看看程序有没有中断下来,没有则可以在里面写入数据。

26.内嵌补丁:一个程序的每个段,肯定不会使用完,因为有些字节对齐,填充会有一些多余的000..00部分,在段的最后面,我们可以将自己的指令放到这里,然后跳转到相应指令。之所有这么做,是因为在修改原程序的时候,我们一般不能覆盖不作修改的指令,除非你确信,被覆盖的指令以后不再使用。比如我们将jmp改成mov eax,1.这时候mov指令长,必然会覆盖一些jmp后面的指令,如果这些指令还会被调用,那覆盖后就没有了,程序极可能会崩溃。

27.通过书签来记录位置

28.nonawrite插件,帮助我们内嵌补丁填充代码。

29.跳转语言的修改越早越好。

30.如果mov eax,1会覆盖后面的指令,则换成mov al,1试试,变通一下。

31.脱壳技巧,但凡是高级点的壳都需要重建输入表。

Ollydbg使用技巧相关推荐

  1. 转Draren总结的ollydbg v1.09d 中文版使用说明

    转Draren总结的ollydbg v1.09d 中文版使用说明 一点一滴的积累,也就会了. 之所以选择ollydbg 1.我的os是winXP,无法使用trw2000,而softice装了多次均未成 ...

  2. 外挂 制作之0D使用---主要是中断操作

    文章整理发布:黑客风云 文章来源:www.05112.com 1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷. 2.友好的gui界面,不像so ...

  3. 第一课 逆向分析基础知识

    看雪软件安全论坛 > 初学者园地 > 『伴你成长』 > 『资料导航』 加密与解密 解密分析入门基础知识 欢迎您,youcou 您上次访问的时间是: 2009-09-23,23:53 ...

  4. IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总

    IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总 ********************************** 案例一: 使用IDA PRO+OllyDbg+PEview 追踪w ...

  5. OllyDbg笔记-软件逆向调试技巧

    在某些收费软件中,有些是通过注册表,来判断是不是使用到期,或者次数到了. OllyDBG从原理上来区分,有两种不同的断点:软件断点和硬件断点. 软件断点就是常说的F12. 而硬件断点它们只用于调试:用 ...

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

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

  7. OllyDbg完全教程

    OllyDbg完全教程 目录 第一章概述..................................................................1 第二章组件....... ...

  8. 小甲鱼 OllyDbg 教程系列 (十一) : inline patch ( 内嵌补丁 )

    小甲鱼 OllyDbg 视频教程:https://www.bilibili.com/video/av6889190?p=19 程序下载地址:https://pan.baidu.com/s/1u6SWg ...

  9. OllyDBG完美教程(超强入门级)

    OllyDBG 视频教程:https://www.bilibili.com/video/av6889190 动态调试工具之OllyDbg(OD)教程:https://www.bilibili.com/ ...

最新文章

  1. JAVA中rootpanel_Java JPanel.setFocusCycleRoot方法代码示例
  2. Java中classpath配置
  3. shell mysql e_xshell怎么搭建mysql
  4. 下方向键_Bash使用$#x27;...#x27;来捕获方向键
  5. 责任链设计模式(过滤器、拦截器)
  6. 2021HDU多校7 - 7054 Yiwen with Formula(分治MTT优化dp)
  7. python网易云_用python爬虫爬取网易云音乐
  8. PagerAdapter学习
  9. 利用Python只需3行代码即可生成验证码
  10. 文件的下载学习笔记:
  11. Nginx安装负载均衡配置 fair check扩展
  12. mysql外键英文_MySQL开发中的外键(foreign key)与参照完整性(Referential integrity) [中英文转载]...
  13. Intel CMT CAT CDP 技术应用
  14. 如何开发Android安卓APP读写NFC Ntag
  15. py3 写的基于GUI 的 旁注 wwwscan集成扫描工具
  16. 微信小程序tabBar闪烁问题
  17. python字符串输入小圆点_第6章 多序列比对
  18. anaconda清华镜像源使用
  19. frontpage中没有动态HTML效果,[多选] 在frontpage中,应用文字的动态HTML效果时可选择的事件有()...
  20. 【卷积神经网络】感受野

热门文章

  1. 牛客小白月赛60(A~C)题解
  2. 【题解】通往奥格瑞玛的道路
  3. 仿真工具ABAQUS
  4. 《那些年我们追过的Wrox精品红皮计算机图书》有奖活动
  5. 华为设备端口操作命令
  6. python基础之内置成员和魔法函数(16)
  7. PHP基本语法--php基础最详细教程
  8. 用Python 写个 开心消消乐小游戏
  9. 小游戏制作QQ宠物系列1 ---- 吹泡泡
  10. 不用修改注册表和组策略也能在 Win11 报名教师资格证