APPのキャプチャを分析する前の二つの記事を元に戻し、次のとおりです。
クラックする甲斐新バオアプリのトークンのアルゴリズム- Etherealの分析セクション(a)の
トークンアルゴリズム甲斐新バオアプリハック-リバース記事(2)
Benpianますトークンの静的解析は、その種類を取得するために実際には非常に簡単です。グローバル検索のアイデアにより、直接検索が"token"
直接地図上、どこトークンに。
それは、内部の見て、検索MessageUtil
内部のように、あなたが見ることができMessageUtil
、特定の方法:
具体代码就不贴了,分析到这里发现使用ndk,也就是c编译之后的so文件,这就有点难办了,先不管这个,继续分析下。
static {
System.loadLibrary("encrypt-lib");
}
内部のこのクラスであり、return b.a(str);
特定のアルゴリズム分析である方法。
/* renamed from: a reason: collision with root package name */
public static String f1288a = "CryptoTool_KEY";
public static String b = "CryptoTool_IV";
public static String c = MessageUtil.getKey();
public static String d = MessageUtil.getIV();
private static final String e = "AES/CBC/PKCS5Padding";
private static byte[] f = a.a(c);
private static SecretKeySpec g = new SecretKeySpec({}, "AES");
private static Cipher h;
public static String a(String str) {
try {
if (h == null) {
f = a.a(c);
g = new SecretKeySpec(f, "AES");
h = Cipher.getInstance(e);
h.init(1, g, new IvParameterSpec(a.a(d)));
}
byte[] bytes = str.getBytes("UTF-8");
byte[] bArr = new byte[h.getOutputSize(bytes.length)];
h.doFinal(bArr, h.update(bytes, 0, bytes.length, bArr, 0));
return Base64.encodeToString(bArr, 2);
} catch (Exception e2) {
e2.printStackTrace();
return null;
}
}
私たちは、トークンがAES、特定のキーと暗号化-libの内側にオフセットを使用して暗号化されていることがわかります。
どのように私は、キーを取得し、それをシフトすることができますか?ここでフリーダは抽出フリーダフックの下で行われ、フックとxposed抽出を利用することができます。
白のマイクロチャネル公共番号[白]技術コミュニティへようこそ注意、為替と一緒に学びます