最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【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、動態(tài)調(diào)試

這道題我在看雪發(fā)過,https://bbs.pediy.com/thread-261372.htm 這里記錄一下個人做題的過程和遇到的問題,不喜勿噴。


解題過程

1、java層

jadx


jeb



手機上有面具的可以新建個android工程,引入so進行調(diào)試



2、native層

(1)check方法定位

方法一

靜態(tài)分析 jnionload
修復前


修復后


查看methods



check->sub_10F00


方法二


使用frIDA動態(tài)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 讓方法不執(zhí)行或者nop方法體

path前


path后


F5



(3)算法識別

在sub_10F00中


這里調(diào)試的時候有固定的組數(shù)賦值


搜索了一下,百度告訴我們這是zuc算法



這是一個對稱算法

(4)動態(tài)調(diào)試

sub_10D24對應是zuc的解密算法,由于是對稱加密,可以使用加密后的字節(jié)進行解密獲得flag,在網(wǎng)上看了一下zuc算法的計算過程,這里有py的實現(xiàn) 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



根據(jù)算法,需要找到 IV KEY 加密字節(jié) 就可以得到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


然后再調(diào)試一邊,用encode替換src,看看是否是原來的src,但是結(jié)果不正確,經(jīng)過反復調(diào)試,發(fā)現(xiàn)IV是固定的,但是KEY是變化的,看了一下key賦值的過程,發(fā)現(xiàn)TracerPid是生成key的一部分


調(diào)試的時候TracerPid 不為0,正確的KEY是TracerPid = 0的時候算出來的TracerPid 修改為0 得到正確的key


F2修改內(nèi)存值


而最后要對比的字節(jié)應該是

? ? 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


按之前的思路,將加密字節(jié)當做src來調(diào)試


獲得flag W3lcomeT0WMCTF!_*Fu2^_AnT1_32E3$


總結(jié)

1、算法識別這塊搜索大法
2、學習了zuc算法


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

【Android CTF】wmctf2020 reverse easy_apk的評論 (共 條)

分享到微博請遵守國家法律
文昌市| 朝阳区| 保亭| 若尔盖县| 高邑县| 衡东县| 元江| 东乌珠穆沁旗| 临安市| 吴堡县| 左权县| 同德县| 宣威市| 丹寨县| 邵东县| 苍山县| 含山县| 鸡东县| 香港 | 建昌县| 青阳县| 赤壁市| 大悟县| 班戈县| 通海县| 驻马店市| 平陆县| 鹤山市| 依安县| 西藏| 洪雅县| 苏州市| 绥江县| 新津县| 冀州市| 资源县| 清流县| 肥城市| 银川市| 敖汉旗| 塘沽区|