首页
社区
课程
招聘
[分享]第2 变形金刚,小白定位Transformers关键算法位置
2019-3-14 10:53 7051

[分享]第2 变形金刚,小白定位Transformers关键算法位置

2019-3-14 10:53
7051
拿到手APK,首先就先反编译大概看下JAVA代码


可以看到OnCreate中给登录按钮绑定一个onClick函数,看到函数中获取了用户名密码后直接调用login


接下来找到login,一看到equals和reverse
原来是这样,我已经完全搞懂了.jpg
不就是用户名取反得到密码

结果输入,弹出Toast显示error,这时候再看代码,发现很诡异的事,代码中没有error相关字符串
这时候就可以考虑到可能是so文件做了手脚,查看lib目录,只有一个so文件,拖进IDA看看




decode看上去很可疑,于是就进去,F5一看,解密了一些字符串


这种解密还是挺简单的,最后解密出三个字符串和一个疑似函数声明的东西

两个字符串字符串可能是解密需要用到的字符串先不管
看到AppCompiatActivity就能大概猜测出是修改了运行的Activity

包内找到该路径,反编译一看代码就知道找对地方了
可以看出主要逻辑为先通过native函数eq进行比较,如果正确则再调用dec进行解密,最后在弹出Toast显示"flag{解密后的数据}"

但是so文件中并没有找到eq函数怎么办呢,这一步也是卡了很久,因为对elf文件不熟悉和知识的缺失,最后是偶然IDA查看字符串

可以看出{9*8……和dbeafc24……两个字符串非常可疑,Ctrl+X查看交叉引用,都定位到了一个函数,初步推断该函数为eq

然后在函数头下断点,动态调试校验一下


输入密码按下按钮后确实断下来了,然后走两步可以看到自己输入的密码

最后尝试跟了一下,因为对ARM汇编完全不了解,所以尝试性的跟了一会决定放弃,就止步于此了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-3-25 13:35 被kanxue编辑 ,原因:
收藏
点赞1
打赏
分享
最新回复 (5)
雪    币: 5568
活跃值: (3001)
能力值: ( LV12,RANK:394 )
在线值:
发帖
回帖
粉丝
htg 4 2019-3-30 12:40
2
0
过程写得不错,适合阅读,再接下去就好了。
雪    币: 2107
活跃值: (1429)
能力值: ( LV8,RANK:126 )
在线值:
发帖
回帖
粉丝
binlmmhc 2019-4-1 22:40
3
0
动态咋调试lib.so啊,老铁
雪    币: 2107
活跃值: (1429)
能力值: ( LV8,RANK:126 )
在线值:
发帖
回帖
粉丝
binlmmhc 2019-4-1 22:44
4
0
binlmmhc 动态咋调试lib.so啊,老铁
我找到了。
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_mkutehwz 2020-4-7 15:37
5
0
“这种解密还是挺简单的,最后解密出三个字符串和一个疑似函数声明的东西”,请问通过伪代码,是怎么得到截图中的结果的,是插件还是什么?
雪    币: 1608
活跃值: (80)
能力值: ( LV3,RANK:27 )
在线值:
发帖
回帖
粉丝
unf0rget 2020-4-11 14:19
6
0
mb_mkutehwz “这种解密还是挺简单的,最后解密出三个字符串和一个疑似函数声明的东西”,请问通过伪代码,是怎么得到截图中的结果的,是插件还是什么?
这里的数据都是静态的,直接查看变量数据,然后伪代码解就行
游客
登录 | 注册 方可回帖
返回