合天实验室,挑战练习。 reverse水题

本文深入解析了使用dex2jar工具进行apk逆向,通过修改zip文件并解压出classes.dex,利用dex2jar将其转换为可读格式。详细介绍了通过反汇编代码发现并解密密码的过程,包括直接修改字符数字获取flag,以及通过中断函数表查看int3断点获取密码。此外,还简要提到了ELF文件的查看和如何在Linux环境下查看IDT表的相关信息。

关于reverse的水题。基础的。

题目链接:http://erange.heetian.com/CTFrace.html


【1,dex2jar好用】

说是dex2jar好用,就猜到是apk了。改zip,解压出classes.de之后,用dex2jar,再用jd打开。


发现这么一段奇怪的字符数字,直接改成char表示,得到flag。

f l a g { w 4 n n 4 _ j 4 r _ m y _ d 3 x }

去掉空格输入进去。ok。


【2. int 3 断点稍微有点绕:pw1_pw2】

直接断下scanf函数,看到堆栈里面的字符串密码。得到第一重密码。


r0b0RUlez!

发现在关键的地方下了int 3 断点。程序自动跳转到中断函数中。中断函数表在IDT中可以查看到。
本来是用windbg可以看的,但是我的版本缺少  [!idt] 不懂为什么。

总之,函数最终还是会调用scanf的,于是在跳转到库函数的地方下断点。
最终锁定的关键函数。





存储的:
u1nnf2lg

逆向算法得到的,就是一个简单的+2操作。

w3lld0ne


上面两道,也花了我一个小时。就是这样。

第三题,elf格式文件,没花心思在linux下面。

关于如何查看IDT表,有下面的参考:


[如何查看int3 的函数表,即IDT表???]
[http://www.cnblogs.com/russinovich/archive/2011/05/09/2041628.html]
[http://www.cnblogs.com/russinovich/archive/2011/05/08/2040586.html]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值