C++反汇编与逆向分析技术揭秘小笔记

题记:分析能力很大程度体现在分析效率上,语法细节乃至数据代码间的复杂性不应该成为主要困难

 

所谓逆向分析,不应该只是单纯的逆向代码,真正目标应该是逆向出代码作者的思维、意图

即透过代码分析意图 

 

第二章:

编译器一旦发现代码中有浮点计算,则初始化浮点寄存器

汉字编码方式有些特殊,ascii和unicode都有与之匹配的编码格式,所以即使汉字使用2个字节,在char型字符串中任然可以显示中文,但这2个版本在内存中编码是不同的

C++为简化指针操作,对指针操作进行了封装,产生了引用类型。实际上引用类型就是指针类型,只不过它用于存放地址的内存空间对用户隐藏,引用通过编译器实现寻址,而指针需要手动寻址(解引用)。

const实现的常量是个伪常量,由编译器实现,在汇编中和普通变量没有区别。

 

第三章:

对于C++的全局对象和静态对象必须在main函数前构造,其实际就是遍历调用一个有构造函数的指针数组。

 

第四章:

如果有符号数和无符号数混除,结果则是无符号的,有符号最高位被当作数据位对待。

数据进位只是进位后的1位数据不在自身的存储空间中,而在标志位CF中。

由于数据进位破坏了有符号数最高位--符号位 就是溢出,所以溢出只针对有符号数。

编译器工作阶段:预处理--->词法分析--->语法分析--->语义分析--->中间代码生成--->目标代码生成

 

第五章:

C语言根据代码行的位置------低行数对应低地址&

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值