http://blog.androidcrack.com/index.php/archives/39/
在Unidbg文章中, 我们尝试过多次主动调用, 文中可以发现, 只有253b8c85
这个的key是不变的.
Unidbg运行一遍,搜索运行下这个Key, 我们在下面的堆栈中, 可以看到memcpy的调用地址为0x0498ec
Unidbg trace整个流程, 在010editor中搜索253b8c85
可以发现,我们这个数据首次发现的位置位于0x1bfb54
偏移处.
可以知道我们的结果是由 0xa53b8c85
& 0x7fffffff
得到的.
[14:54:36 435][libshpssdk.so 0x1bfb54] [ab010b0a] 0x401bfb54: "and w11, w13, w11" w13=0x7fffffff w11=0xa53b8c85 => w11=0x253b8c85 // w11 = w13 & w11
w13又是固定的. 所以我们需要找到0xa53b8c85
是如何生成的
💡分析trace, 我们应该以结果为导向. 只关注于我们需要的数据. 一些其他无用的运算我们应该选择性跳过. 一行行分析下去十分的疲惫.
搜索0xa53b8c85
, 找到第一次出现的地方.
w14 = w1 + w14
, w1 比较简单, 我们先分析复杂的.
[14:54:36 426][libshpssdk.so 0x1bfe28] [2e000e0b] 0x401bfe28: "add w14, w1, w14" w1=0x65 w14=0xa53b8c20 => w14=0xa53b8c85
搜索