2015阿里移动安全挑战赛第二题AliCrackme_2之frida解法

在这里插入图片描述
关键函数在securityCheck:放在了native层
在这里插入图片描述
之前的解法就是先nop掉JNI_OnLoad中的反调试,然后再动态调试到securitycheck方法中获取相关寄存器的值。这里学习了frida之后,看看是否能有更加简洁的方式:
在这里插入图片描述
将输入的字符串与v7进行比较,v7又来自于v6,v6的值等于off_628c;
当然,我们已经知道这是错误的值,在动态运行的过程中会对其进行处理,但是我们可以hook这个偏移值:
首先通过导出表函数获取securitycheck函数的值:然后根据函数值算出so基址,加上0x628c偏移,然后使用readPointer读取地址,readUtf8String读取地址中的值:
在这里插入图片描述

在这里插入图片描述

当然,上面是为了学习如何获取导出表函数地址,也可以直接获取so基址加偏移读取值:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42011443/article/details/105897429