ida pro 使用F5碰到的陷阱与总结

姑且称之为“陷阱”吧,如下,直接上代码:

最近在做Flare-7 的break这道题,算是对linux下没有采用vm保护技术的crackme的一种挑战,遇到了下述的代码:

上图红色部分,明显执行时会报错;这是break这个crackme采取的一种机制,sub_0804C369这个进程是有另一个进程attach它的,并接收它的信号,进行相应的处理。上图红色部分会报SIGSEGV信号,查看调试它的进程的代码,如下:

 可以看到,V34是栈保存的下一条指令,v33就是第一张图中的&loc_804c3c4,v32保存的是第一张图中的&v5,初始是0。那么调试进程的第二张图的代码的意思就是跳转回loc_804c3c4进行执行,直到第16次碰到MEMORY[0](&loc_804C3C4, &v5),则结束循环。

这就是这个crackme与常规程序不一样的地方之一,

我们要说的F5出的问题在哪呢? 这也是我还太缺乏调试经验,我们可以看到loc_804c3c4这里的汇编代码是这样子的:

 

而我们之前在第一张图里看到的F5自动逆向过来的伪代码是chmod(a4,back)。

所以说,这里F5插件有一些指令没有做逆向,或者他可能认为无用忽略了吧:)害的我这逆向新入门的新手,对着F5代码写了个计算这个crackme的password中间部分的算法,结果不是希望得到的。

--------------------------------------------------------------------------------------------------------------------------

接着上面的,经过测试,应该是因为这段代码中一开始[ebp+v5]=0,所以后面那些指令计算的结果都是0,F5翻译过来也没有必要。因为F5不会帮我们去自动翻译那个MEMORY[0](&loc_804C3C4, &v5)循环,所以它确实没必要翻译这一段。这也告诉我们,以后如果遇到这种技巧,还是要人工看一下汇编代码,才能做到对机器语言翻译的正确。如下图,

把[ebp+v5]手动改为1,

 再按F5看一下,结果就发生变化了

因为F5识别不了这种循环,所以只能翻译成这个样子了。总之,F5是没有问题的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iDA Pro 是一款非常强大的反汇编工具,它可以帮助用户对二进制程序进行反汇编、分析和修改。下面是使用 iDA Pro 的一些基本步骤和技巧。 1. 安装 iDA Pro 首先,你需要从 iDA Pro 官网(https://www.hex-rays.com/products/ida/)下载并安装该软件。iDA Pro 有免费版和付费版,免费版的功能相对较弱,付费版则功能更加完善。安装完成后,你可以打开 iDA Pro,开始使用它的功能。 2. 打开二进制文件 在 iDA Pro 中,你需要打开一个二进制文件,才能进行反汇编和分析。你可以通过菜单栏的“File”选项来打开一个二进制文件。iDA Pro 支持多种不同的文件格式,例如 ELF、PE、Mach-O 等。选择正确的文件格式很重要,否则会导致反汇编失败。 3. 分析程序结构 在打开一个二进制文件后,iDA Pro 会自动对程序进行反汇编,并展示反汇编结果。你可以在左侧的“Functions”窗口中查看程序中的函数列表,或者在右侧的“Disassembly”窗口中查看反汇编代码。iDA Pro 还支持对程序的控制流进行分析,你可以通过菜单栏的“View”选项来查看程序的控制流图。 4. 查找漏洞 通过分析程序结构,你可以尝试查找程序中的漏洞。例如,你可以查看程序中的函数调用和内存访问,寻找可能存在的缓冲区溢出、格式化字符串漏洞等。iDA Pro 还支持对程序中的字符串和常量进行搜索,你可以利用这个功能来查找可能存在的敏感信息、密码等。 5. 编辑程序 在查找漏洞后,你可能需要修改程序来修复漏洞或者实现其他目的。iDA Pro 支持对程序进行编辑,你可以在右侧的“Disassembly”窗口中直接修改反汇编代码,或者使用 iDA Pro 提供的高级编辑功能来修改程序。注意,修改程序可能会导致程序的崩溃或者其他不可预测的结果,所以一定要谨慎操作。 以上是使用 iDA Pro 的一些基本步骤和技巧。iDA Pro 是一款非常强大的工具,可以帮助你分析和修改二进制程序,但需要一定的反汇编和程序分析经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值