对抗反汇编
原创
内存余响
内存余响
内存余响
2026年10月9日 15:05
福建
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
何谓对抗反汇编
对抗反汇编技术是利用反汇编器的错误假设与局限性来实现,目的是延缓或者防止人工分析,对抗反汇编也能在一定程度上阻碍特定的自动化分析技术。
简单举个例子 (跳转指令后放一字节扰乱反汇编)
首先这里的jz short near ptr loc\_401010+1 跳转地址在call指令的附近,然后call 指令的8B4C55A0h是个不存在的地址导致反汇编后不能正常的看懂汇编代码
解决办法
在ida 中对call指令 按d,然后在本该跳转的地址按c转为汇编语句
这样就能看懂反汇编后的代码了,这里0E8则是代码段中的数据部分,且0e8又是call指令的一部分,所以就会导致反汇编错误的情况
单字节为两条指令组成部分的手法
跳转回自己的汇编指令附近,将其转换回数据,查看其字节码
.text:00401215 db 0EBh jmp
.text:00401216 db 0FFh -1 inc 这个字节既可以作为上面的一部分(jmp -1)又可以作为下面的一部分(inc eax)
.text:00401217 db 0C0h eax
.text:00401218 db 48h dec eax
解决办法还是将0eb取消汇编,后面下面的开始汇编
滥用结构化异常处理
利用异常进行控制流,欺骗反汇编器
如这段
如这段代码 div产生一个除0异常 ,然后异常处理则会跳转到4014C0开始执行,但是ida 并未反汇编
解决办法在对应的异常处理处按c即可
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论