2021-11-20~21 Re 逆向工程略览 四 动态调试与分析【T.O.CTF】

本文介绍了逆向工程中的动态调试,通过OllyDBG和x64DBG工具,讲解了如何打开文件、控制程序运行、设置断点以及脱壳的静态和动态方法。重点探讨了UPX壳的动态脱壳过程,包括在程序执行过程中设置硬件断点,找到原函数开头和结尾,最终成功脱壳。
摘要由CSDN通过智能技术生成

作为一个成熟 (笑) 的Rer,应该都已经在C程序的学习中使用过编译器的Debug功能,这些让程序实际运行起来,观察程序运行时的各种变化与行为,从而对程序进行分析。

Re里的动态调试其实与IDE上的大同小异,只不过以往的调试是源代码级别的,而逆向里的调试是汇编代码级别的跟踪,查看的是寄存器、栈、内存里面的数据,而不是已知的变量里的信息。

OllyDBG调试和x64DBG

由于OllyDBG只支持32bit,而x64DBG支持32bit与64bit。注意,这两款都是Windows平台软件。

笔者只用过OllyDBG,因此叙述会以OllyDBG为准。

打开文件:

 咳咳,是吾爱破解特供版。如图,就是反汇编区,左下是内存数据区,右上是寄存器显示区,右下则是栈显示区。

控制程序运行

按control+G,即可跳转到目标地址,在反汇编窗口,摁F2键切换断点状态;F8为单步步过,F7为单步步入,F4为运行到光标处,F9运行。

常见的断点设置在程序内某个地址、程序调用的API(接口)。

简单的脱壳

Windows下调试很大部分的应用场景就是脱壳,所谓的“壳”就是一种特殊的程序,对另外一个需要保护的文件进行变换后,重新生成

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值