一些APK尤其是Android恶意代码会将自身的一些重要的字符串进行加密,加大逆向分析的难度,这类字符串往往数量比较大,很难一个一个进行处理。本文将介绍一种方法来解密这种字符串,并将解密的字符串应用于反编译器中。本次演示的案例来自于一款恶意代码(为了防止风险,不提供恶意代码样本),恶意代码信息如下:
[File Base Info]
File Name: C:Users**fish.apk
Package Name: fdsvcc.bcxa.bvdwq
Main Activity: fdsvcc.bcxa.bvdwq.MainActivity
File Size: 2631444 bytes
MD5: 026d079284beaddf6ffda550bc9e3668
Packed: Not Packed
Min SDK: 15
Target SDK: 28
python解密脚本代码:方法一 方法二
java解密代码:方法一、方法二(example8-decodestr,example8-decodestr2)
一、使用python脚本解密
1、通过GDA->String我们可以看到,该APP的大量字符串做了加密处理。如图:

其中加密字符串上千个,因此需要对其进行自动化批量解密。光标放在[]按下X(字符串交叉引用)我们可以清楚的看到解密函数,其中一个解密函数类似于如下红色矩形框中的函数:

以下我们将以该函数为例,利用该函数来解密所有与其相关的字符串。
双击函数Request.ALLATORIxDEM