2015移动安全挑战赛前2题writeup

来源:互联网 发布:淘宝50元1只狗谁买过 编辑:程序博客网 时间:2024/05/21 11:01

看雪的移动安全挑战赛打了个酱油,只做出前2题,第三体加固了就不知道怎么弄了。

Alicrack1:

1 查看代码:


Str2=table=

Str3=pw

Str1=input

Str4=bytesToAliSmsCode(str2, str1)

 

table 和pw可以由logcat得到。

 

写了个java代码解密:

import java.io.UnsupportedEncodingException; public class Main {     publicstatic void main(String[] args) throws UnsupportedEncodingException {       //System.out.println("Hello World!");        Stringtable = "一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐";        Stringpw = "义弓么丸广之";        for(inti = 0; i < 6; i++)        {           System.out.println(table.indexOf(pw.substring(i,i+1)));        }     }}

运行出来结果为

53 56 49 48 50 54即 581026


 

2. alicrack2

很快定位到比较处


V5为用户输入,v6为offset_628c,当这2个字符串相等时,返回1。

查看offset_628c,字符串为wojiushidaan,但是输入发现不对。但又找不到其它对offset_628c进行引用的地方,奇怪。

 

静态不行,那就动态试试吧。试了下用ida附加上去,发现没法查看进程,应该有反调试。

 

直接操作/proc/<pid>/maps和/proc/<pid>/mem

 

cat /proc/<pid>/maps5b6fa000-5b6fb000 r-xp 00000000 b3:08 56189     /data/app-lib/com.yaotong.crackme-1/libcrackme.so5b6fb000-5b6fc000 rwxp 00001000 b3:08 56189      /data/app-lib/com.yaotong.crackme-1/libcrackme.so5b6fc000-5b6fe000 r-xp 00002000 b3:08 56189     /data/app-lib/com.yaotong.crackme-1/libcrackme.so5b6fe000-5b6ff000 rwxp 00004000 b3:08 56189     /data/app-lib/com.yaotong.crackme-1/libcrackme.so5b6ff000-5b700000 r--p 00004000 b3:08 56189     /data/app-lib/com.yaotong.crackme-1/libcrackme.so5b700000-5b701000 rw-p 00005000 b3:08 56189     /data/app-lib/com.yaotong.crackme-1/libcrackme.so

库加载基地址0x5b6fa000

 

Dump内存中的libcrackme.so库。

dd if=/proc/<pid>/memof=/sdcard/tmp/b.mem bs=1 skip=1534066688 count=20480

查看628c处


>>> 0x5b6fe450-0x5b6fa00017488>>> hex(17488)'0x4450'

字符串在0x4450处。


得到key:

aiyou,bucuoo


0 0
原创粉丝点击