逆向学习笔记(二)(花指令与MFC)

本文介绍了逆向工程中的花指令,包括如何干扰反编译和机器码解析,以及如何去除这些花指令。通过将无用指令替换为NOP并修复函数,可以成功进行去花操作。此外,还提到了针对MFC程序的逆向分析,如在DOS程序中查找scanf()函数,在小窗口程序中寻找点击相关函数。逆向技巧包括字符串搜索、API下断点以及使用工具如xspy。最后讨论了逆向过程中的常见算法,如简单计算复合、公开算法识别和方程求解,以及在游戏逆向中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

花指令
花指令指的是没有作用,会干扰代码阅读甚至反编译,却不影响程序功能的代码。
{
现代反汇编器有两种思路:

  1. 线性扫描
    从开头到结尾依次读取机器码并进行反汇编
  2. 递归下降(ida)
    从程序入口向后反汇编,遇到条件跳转则分别从分支的地方继续反汇编,无条件跳转则尝试从目的指令继续反汇编

}
今天学习了会干扰反汇编、影响机器码解析但不影响正常机器码的类型
例如构建一定成功的跳转(jz+jnz)(xor+jz)
去花的方法是把无用的地方改为0x90即nop
然后进行函数的删除和再构造
再进行f5 就能正常的分析伪码了
常见的花指令
{
jx + jnx
call + pop
call + add esp, 4
call + add [esp], x + retn
stx + jx
}
ida去花首先应该尝试建立函数
然后找到ida报错的地方
把不需要的指令nop掉
再建立
不行就再nop
然后尝试f5
找到报错
nop
循环,就完成了手工去花

MFC
属实没太听懂。
今天学到的是
如果是dos里的程序,寻找scanf( )函数再进行分析即可找到所需的地址然后进行分析
如果是小窗口,可以进行点击的那种,则需要寻找关于点击的函数然后再进行分析寻找

逆向技巧
1.字符串搜索
–通过消息处理函数中的字符串来寻找切入点
2.API下断
–通过消息处理函数中的API,例如MessageBox、GetWindowText等来3.寻找切入点
–使用xspy、spy++等工具
----xspy是一个通过注入dll到目标进程,然后利用MFC特性来获取相关数据的自动化工具,非常方便

常见算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值