笔记||在raisepig中偶遇花指令

实验环境:ubuntu 16.04 64位。
实验工具:ida.
实验程序:强网杯(全国)2018 raisepig

程序界面如下:
笔记||在raisepig中偶遇花指令_第1张图片
image.png

发现问题:在main函数中的功能函数都无法使用IDA的F5功能。


笔记||在raisepig中偶遇花指令_第2张图片
image.png
笔记||在raisepig中偶遇花指令_第3张图片
image.png

查看他们的汇编代码,发现有多余的指令。如下图是sub_C8F()函数的一个跳转指令。
笔记||在raisepig中偶遇花指令_第4张图片
image.png

首先,最显眼的是 add rsp,4 。为什么要调整栈空间呢?
然后再分析一下转跳指令。
发现,这是一定会进行转跳的,所以这一部分地址是多余的。将他们nop掉。
nop掉这两个指令:
jz short loc_CAF
add rsp, 4
然后按F5


笔记||在raisepig中偶遇花指令_第5张图片
image.png

反编译成功。
其他的函数也是这样
笔记||在raisepig中偶遇花指令_第6张图片
image.png

下图是ida改指令功能的位置。如果要保存修改后的bin文件,需要点击Apply parches to input fie,进行保存。


笔记||在raisepig中偶遇花指令_第7张图片
image.png

你可能感兴趣的:(笔记||在raisepig中偶遇花指令)