Powered by ThomasKing 2015.04.21. All Rights Reversed
图 3
各种Native方法已经吐出来了。另外,加载过程的调用也已经trace到:
图4
Powered by ThomasKing 2015.04.21. All Rights Reversed
找到了各个native函数,再任意输入查看调用(部分截图):
图 5
调用Base64参数:
[0x80c59851] FindClass(android/util/Base64) [0x40538928]
[0x80c59781] GetStaticMethodID(0x40538928, decode, (Ljava/lang/String;I)[B) [0x4297fef0]
[0x80c1591f] CallStaticObjectMethodV(0x40538928, 0x4297fef0, [L:0x4053a540][I:0x0]) [0x4053a620]
返回的0x4053a620后面被用于验证:
[0x80c8e8a1] FindClass(你好中国) [0x405209f8]
[0x80c8e9cf] GetStaticMethodID(0x405209f8, __x, ([B[B)Z) [0x42974578] [0x80c31633] CallStaticBooleanMethodV(0x405209f8, 0x42974578, [L:0x4053a220][L:0x4053a620]) [False] //比较 比较的返回值为False,已经很明显了吧。。。
限于篇幅,就不详细分析了吧,直接根据log和简单的动态调试即可获得答案:wsfduj。有兴趣的读者自己试试。
鉴于之前发动态链接库有小伙伴说难用,直接上静态链接库文件。
0x04 参考文献
老罗:Dalvik虚拟机的运行过程分析
Dalvik Jni相关源码