阿里移动安全挑战赛第二题研究小结

1、取巧的方法

因为不太会看汇编指令,所以看了别人的解题思路后,自己想了个取巧的方法。o(╯□╰)o

之前学习的过程中学会了不少指令,例如strings,列出文件中所有字符串。突然想起来可以导出apk运行时so文件的内存(其实也是现学的- -'),

验证了一次后被比较的字符串就存放在内存中了,于是使用dd命令将内容导入SD卡:

root@android:/ # dd if=/proc/2829/mem of=/sdcard/hah.mem bs=1 skip=1750364160 count=28672

对小白来说,查pid啊,dd命令的格式啊都是现查的。虽然很白痴,但是用几次就熟悉了,慢慢积累。

skip是so文件的起始位置,count是拷贝的blocks 个块,其实拷贝so文件的起始位置之差最好吧。

然后使用strings命令:

 strings -n 4 -o hah.mem | grep -v _ | grep -v .so | grep -v /

打印出的字符串如下,附带了所在位置:

  3577 jolin
  3702 free
  3707 dlsym
  3715 malloc
  4321 raise
  4702 abort
  4732 memcpy
 13754 u,bucuoo
 15477 Qffffff
 42120 aiyou,bucuoo
 42170 s!#L
 42226 9X,+(X=!)
 42247 cOXt
 42263 .6gq
 42356 LNAt
 42404 9HbB
 42420 BMAE
 42425 3:*8(-&
 42435 "@%%7)B
 52120 wojiushidaan
 52170 s!#L
 52226 9X,+(X=!)
 52247 cOXt
 52263 .6gq
 52356 LNAt
 52404 9HbB
 52420 BMAE
 52425 3:*8(-&
 52435 "@%%7)B
 57722 !@Kx'@e
 57736 $@=P
 57756 $@@a%@
 61224 XO%@9
 61242 %@}5&@
 61252 %@$b%@
 61271 O%@|`%@
 61314 kill
 61321 %s %d
 61327 dlsym
 61335 fopen
 61343 fgets
 61351 sleep
 61357 getpid
 61366 strstr
 61375 sscanf
 61404 yaotong
 61414 sprintf
 61424 lrand48
 61434 mprotect
 61445 TracerPid
 61457 cacheflush
 61554 SecurityCheck Started...

当然,是出了答案才去研究的,所以过滤的“_”,“/”,“.so”字符串可能并不具有通用性。

用肉眼看,以及对密码内容可能性的猜解,即使挨个试也不算太耗时间。嗯嗯。就是这么简单粗暴。

 

2、貌似冠军给出的另类解法:

  参考:http://drops.wooyun.org/tips/5409

  修改so文件中的比较部分,利用之前的日志打印函数,将被比较的字符串打印出来。自己试了下,可行,也简单高效。

 

3、某师兄写的解题思路,绕过调试,然后改so文件。由于刚开始连ida如何attach 手机apk都不懂,后来attach上了因为反调试也没能正常加载。

所以只是看了看。日后学得更多了,再回头研究。

  参考:http://secauo.com/2015-Mobile-Security-Challenge-2.html

 

4、某同仁提供的思路,使用adbi框架,hook程序读取状态信息的操作函数fopen,这样就能正常attach到程序上。

其实对于小白来说,接受一种新的解题思路,比做出来题目还要有意义。所以自己编译了下adbi框架(幸好之前装了ndk编译环境T.T)。

基本学会了这个框架的使用方法,看了看原理,内联hook,虽然到现在还是云里雾里的,至少会简单使用了。

 

  因为至今还未attach到程序上过,也不知道attach之后如何操作、查看变量内容。但至少通过这一研究过程学习咯:

    ida attach程序的方法

    修改so文件的方法(使用010或ida)

    adbi框架的使用方法

    strings指令的使用

    dd命令的使用

    查看pid的方法

  虽然一直以来都没真正接触过逆向,相信慢慢的,也会越懂越多,越深入的。加油↖(^ω^)↗

    

posted @ 2015-07-30 17:46  静静静流  阅读(471)  评论(0编辑  收藏  举报