欢迎光临散文网 会员登陆 & 注册

【Android CTF】wmctf2020 reverse easy_apk

2020-08-11 17:11 作者:吾爱破解论坛  | 我要投稿

作者论坛账号:neilwu


题目

wmctf2020 reverse easy_apk
题目地址:

https://adworld.xctf.org.cn/match/contest_challenge?event=146&hash=684a58cc-1140-4937-99f2-ef347d777d9f.event


考查知识点:

1、算法识别

2、动态调试

这道题我在看雪发过,https://bbs.pediy.com/thread-261372.htm 这里记录一下个人做题的过程和遇到的问题,不喜勿喷。


解题过程

1、java层

jadx


jeb



手机上有面具的可以新建个android工程,引入so进行调试



2、native层

(1)check方法定位

方法一

静态分析 jnionload
修复前


修复后


查看methods



check->sub_10F00


方法二


使用frIDA动态hook RegisterNatives

[RegisterNatives] java_class: com.WM.one.Native name: check sig: (Ljava/lang/String;)Z fnPtr: 0x72afe26f00 module_name: libnative-lib.so module_base: 0x72afe16000 offset: 0x10f00


(2)init_array



sub_D994中会kill进程


这里需要path so 让kill不成功,使用 RET C0 03 5F D6 让方法不执行或者nop方法体

path前


path后


F5



(3)算法识别

在sub_10F00中


这里调试的时候有固定的组数赋值


搜索了一下,百度告诉我们这是zuc算法



这是一个对称算法

(4)动态调试

sub_10D24对应是zuc的解密算法,由于是对称加密,可以使用加密后的字节进行解密获得flag,在网上看了一下zuc算法的计算过程,这里有py的实现 https://baike.baidu.com/item/%E7%A5%96%E5%86%B2%E4%B9%8B%E7%AE%97%E6%B3%95%E9%9B%86/7177910?fr=aladdin



根据算法,需要找到 IV KEY 加密字节 就可以得到flag


IV


KEY


0000007FF0435C00 IV

0000007FF0435C10 KEY


zuc_encrypt


zuc_encrypt(v7, (__int64)&key, 354339, 24, 1, 256, (unsigned __int64)&src, (unsigned __int64)&encode);



src 是 01234567890123456789012345678912

encode


然后再调试一边,用encode替换src,看看是否是原来的src,但是结果不正确,经过反复调试,发现IV是固定的,但是KEY是变化的,看了一下key赋值的过程,发现TracerPid是生成key的一部分


调试的时候TracerPid 不为0,正确的KEY是TracerPid = 0的时候算出来的TracerPid 修改为0 得到正确的key


F2修改内存值


而最后要对比的字节应该是

    v11 = unk_296C0;

    v12 = unk_296D0;

    result = (unsigned int)sub_DB8C(&v11, &encode, 0x20LL) == 0;


0x2B, 0x31, 0xA9, 0x7F, 0x7A, 0x85, 0x71, 0xED, 0x06, 0x83, 0x72, 0xDB, 0x52, 0xC5, 0xC9, 0xCD,0xC2, 0x2A, 0x66, 0xF0, 0x46, 0xAF, 0x9A, 0x5F, 0xA6, 0x5F, 0x63, 0xB2, 0x3B, 0x2E, 0x8B, 0xCA


按之前的思路,将加密字节当做src来调试


获得flag W3lcomeT0WMCTF!_*Fu2^_AnT1_32E3$


总结

1、算法识别这块搜索大法
2、学习了zuc算法


原文地址:https://www.52pojie.cn/thread-1243722-1-1.html

【Android CTF】wmctf2020 reverse easy_apk的评论 (共 条)

分享到微博请遵守国家法律