首页
社区
课程
招聘
[原创]第二题分析过程
发表于: 2015-1-26 11:55 5097

[原创]第二题分析过程

2015-1-26 11:55
5097
文章一写就写多了,所以这里上传doc文档了,图片和文字来回复制容易搞乱版面。

[ATTACH]第二题分析过程[/ATTACH]

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
能把自己的思路清晰无保留的分享出来,这才是高手,佩服!
2015-2-2 10:27
0
雪    币: 163
活跃值: (1628)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
第二种形式,看的不是很明白
是直接用命令行 am -start ?
2015-2-4 11:30
0
雪    币: 163
活跃值: (1628)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
漏了一步,补全哈

1.@android:/data/local # ./android_server
2.adb forward tcp:23946 tcp:23946
3.adb shell am start -D -n com.yaotong.crackme/com.yaotong.crackme.MainActivity
4.IDA进行附加进程(前面静态分析时,已经下好了断点)
5.jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8639
2015-2-4 17:52
0
雪    币: 17683
活跃值: (4671)
能力值: ( LV15,RANK:1878 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=鬼谷子c;1349402]文章一写就写多了,所以这里上传doc文档了,图片和文字来回复制容易搞乱版面。

[ATTACH]第二题分析过程[/ATTACH][/QUOTE]

不错,学习了,不过个人习惯了投机取巧,修改SO的12个字节,重新打包查看日志信息即可得到密码
题目二
修改libcrackme.so库12个字节(共三条ARM指令)执行自动从DDMS调试日志输出密码。

用IDA加载libcrackme.so
进入原生密码校验函数:Java_com_yaotong_crackme_MainActivity_securityCheck
由输入参数密码文本由R0提供给R5,跟踪到密码开始比对位置(从000012A8)开始如下(1),
而且密码直接比对明文字节,将(1)开始的三条ARM指令共十二字节修改为(2),
还原打包执行就即可从调试输入的日志消息中得到密码(tag为用户输入的密码,信息为需要的密码)
(1)
000012A8  00 30 D2 E5 LDRB R3,[R2]
000012AC  00 10 D0 E5 LDRB R1,[R0]
000012B0  01 00 53 E1 BL CMP R3,R1
(2)
000012A8  00 10 A0 E1 MOV R1,R0
000012AC  04 00 A0 E3 MOV R0,#4
000012B0  05 00 00 1A BL __android_log_print

如输入123456执行,奔溃前吐出密码为"aiyou,bucuoo"
01-23 14:04:35.497: I/123456(17615): aiyou,bucuoo
2015-2-4 18:25
0
雪    币: 11
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark。。。。
2015-2-4 22:05
0
雪    币: 26
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
mark
2015-2-5 00:20
0
游客
登录 | 注册 方可回帖
返回
//