目录
1 搜索大法
假设我们通过抓包得到的请求参数如下图所示
通过多次抓包分析出请求参数中duid
/tyc-hi
/Authorization
这三个是动态加密的参数,需要我们反编译app进行破解。使用jadx打开app进行反编译
打开搜索框搜索加密参数定位关键代码
- 字符串搜索
tyc-hi
/"tyc-hi
,查看搜索结果;
由上图所示,通过搜索tyc_hi
进入到一个类似配置文件的类中,并且我们需要的加密参数赋值给不同的变量。
那么站在开发者的角度想一想,如果在代码中想要使用这三个参数,那么直接调用它们对应的变量即可。
- 在其它地方直接调用
w
,调用方式可能为.w
- 根据前面的搜索
w = "tyc-hi"
,w
最终肯定要被赋值成一个加密后的参数,那么调用方式可能为.w =
进一步缩小了搜索范围。
- 根据以往分析经验,变量赋值可能是在某一个方法里面进行赋值的,例如:在
a
方法里面,b
调用变量w
并赋值为qwe
,赋值方式为a(b.w,qwe)
,那么我们可以搜索.w,
来定位相关代码。
这时需要我们逐个分析来定位相关代码。
- 通过以上搜索如果还是无法准确定位相关代码怎么办???
回想w = "tyc-hi"
被定义在哪个类中,其它地方在调用时调用方式可能为类名.w
那么调用并赋值的方式可能为:
m.w =
m.w,
总结:通过搜索参数来定位相关代码,主要思想是站在开发者的角度考虑如何调用和使用这些参数。
2 栈跟踪法( 动态调试 / 函数调用流程 )
未完待续。。。。。。