实验吧 520app3 writeup

这道题在之前比赛的时候也遇到过,当时一脸懵逼……(虽然现在也是差不多

首先先看看怎么动态调试so,这是教程http://blog.csdn.net/feibabeibei_beibei/article/details/52740212

按着教程,把Debugger option的那三个选项给选上,之后也不用取消掉

然后断在linker

之后根据偏移找到​.init_proc

本来想跟下去,看看怎么解密数据的,但是报了个error,我也懒得跟了。。。

按F9,然后断下来之后,所有数据都解密出来了,这个时候可以用dd 把现在的so给dump下来

本来是可以​修复so,然后静态看出flag的,但是我也不会修。。。。。

所以直接在动态调试的代码上面看,因为在原始的so里面也知道JNI_Onload的偏移,所以这个时候可以根据偏移来找到JNI_Onload

这里写图片描述

JNI_Onload大概就是这个样子,这个也是大概的套路

然后红色那里其实是J_create,创建了一个线程,sub_F8C是一个函数,不断的接收东西,但是只接收,什么也不处理

所以关键就在unk_711C那里

这里写图片描述

这里说明一下,上面那个图片是自己修了一半的半成品。。。所以变成那样。。。下面这个图片是动态调试的,每个人的地址都可能不同

这里有三个地址,第一个地址是指向字符串upload 的,第二个是指向字符串(Ljava/lang/String;)I ,第三个地址才是真正的地址

反编译之后会看到类似这样的东西,但是这里是逆向出来是connect之类的字符串

这里写图片描述

真正比较可疑的地方是这里,这里可以解出来两个字符串,第一个大概是帐号,第二个有Phone的才是flag,然后顺便看了下面,大概是调用了别的so,然后用浏览器来传数据的样子

这里写图片描述

做题的话到这里就可以了,如果是真正逆向的话肯定就不止这样了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值