YolandaV
可以写个简单app调用pack函数,单独调试,逆向签名算法。
额。调试smail吗?就是这个地方不知道咋调试。我自己逆向分析了一下过程如下,只是找到了位置,但是并不知道咋生成数据
public static boolean a(byte[] arg14, byte[] arg15, byte[] arg16, d arg17, ByteArrayOutputStream arg18, boolean arg19)
这个函数里面调用了pack,并且直接把arg16传到了倒数第二个参数,继续找这个a调用的地方。
然后找到了这个a调用的地方是一个实现了com.tencent.mm.network.c这个接口的对象调用了一个KO的函数。然后找所有实现该接口的对象。
深入找到对应的这个处理,然后就悲催了,好像是发送到一个远程地址然后获取的返回值
public final byte[] KO() {
byte[] v0_1;
Parcel v1 = Parcel.obtain();
Parcel v2 = Parcel.obtain();
try {
v1.writeInterfaceToken("com.tencent.mm.network.IAccInfo_AIDL");
this.mRemote.transact(10, v1, v2, 0);
v2.readException();
v0_1 = v2.createByteArray();
}
catch(Throwable v0) {
v2.recycle();
v1.recycle();
throw v0;
}
v2.recycle();
v1.recycle();
return v0_1;
}