windows逆向基础02:逆向四则运算之加减乘

本文介绍了Windows逆向分析的基础,包括逆向要求、加减法和乘法的逆向方法。讲解了常量折叠、常量传播在不同编译模式下的表现,并详细探讨了乘法的四种常见情况:常量*常量、变量*常量(非2的n次方)、变量*常量(2的n次方)和变量*变量,总结了不同环境下乘法指令的优化策略。最后提到了流水线优化在release版本中的应用。

1,概念与基础

逆向要求:

(1)把不带符号表的exe(debug && release版本)还原成高级代码;
(2)最初还原等价代码 ,终极目标还原相同源码(变量名可以不一样);

ida基础:
d:定义光标处的汇编为某数据;
c:定义光标处的汇编为代码;
a: 定义光标处的汇编为字符串
n:更改光标处变量名;

快速定位main函数:
主要是熟悉各个开发环境中的结构,一般来说,大部分是三个push后就是main;

ide编译选项:Debug,release:
vc6与vs2013:

2,逆向之四则运算:加减法

2.1,常量折叠与常量传播(在release版本下会出现)

所谓常量折叠就是,常量的运算在编译期间直接完成;

int a = 1+3;
折叠后直接:
int a =4;

常量传播就是,变量在引用之前没有被修改过,就可以直接替换;
int a = 2;
int b =3;
int c = a + b;

常量传播后:
int c = 2+ 3;

折叠后:
int c = 5;

2.2,逆向方法:

把ida的源码复制出来,一行

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值