-
-
[原创]移动安全挑战赛题目1、2快速破解思路
-
发表于: 2015-1-26 14:55 2634
-
题目一
DDMS调试得到调试信息日志,得到码表和密码,定义后续python脚本,执行,得到密码。
01-22 22:23:37.349: I/lil(28406): table:一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐
01-22 22:23:37.349: I/lil(28406): pw:义弓么丸广之581026
01-22 22:23:37.349: I/lil(28406): enPassword:么广亡门
def dowithdo():
table=u'一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐'
pw=u'义弓么丸广之'
for pw_e in pw:
print chr(table.find(pw_e))
dowithdo()
>>> dowithdo()
5
8
1
0
2
6
================================
题目二
修改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
DDMS调试得到调试信息日志,得到码表和密码,定义后续python脚本,执行,得到密码。
01-22 22:23:37.349: I/lil(28406): table:一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐
01-22 22:23:37.349: I/lil(28406): pw:义弓么丸广之581026
01-22 22:23:37.349: I/lil(28406): enPassword:么广亡门
def dowithdo():
table=u'一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐'
pw=u'义弓么丸广之'
for pw_e in pw:
print chr(table.find(pw_e))
dowithdo()
>>> dowithdo()
5
8
1
0
2
6
================================
题目二
修改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
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [原创] KCTF 2022 Win. 第六题 约束与伪随机 6757
- [原创] KCTF 2021 Win. 第二题 排排坐 21179
- [原创] KCTF 2021 Win. 第一题 算力与攻击模式 4123
- 鸿蒙通识 26071
- [原创] KCTF 2021 Spr. 第二题 未选择的路 9264
看原图
赞赏
雪币:
留言: