点击登陆后抓包。
对Error中的u码进行转码。
显示的是应用弹出的弹窗里的文本。
选择Sign进行分析。
对sign的值进行搜索。发现只有一处。
点击红圈里的按钮。选择性的复制网址去jeb中寻找。
寻找后不靠谱,选择寻找Sign
发现有一处比较可疑。
下断点
开启动态调试。注意adb可能会干扰。绿色框框输入包名按下回车。如果下方选项比较多,选择和包名一样的且flag值为D
一次附加不上,就多尝试几次。
签名的算法一般用消息摘要算法。签名的源数据一般来自于数据包。签名之前对源数据进行排序。排序完事之后有可能会在头尾或中间加某些固定字符串。
tostring 处一般会保存结果。
将int改为String
将string对应的值复制到记事本。
复制v6中的值。(直接修改type。可能会使应用停止运行。尤其是在value值是负的时候,)
另一种方法得到参数里的值。
得到每一步骤的参数后可以进行分析了。
也可以尝试用log输出参数里的值。
Jeb动态调试需要先打开应用。在attach。Log则不需要。
用安卓逆向助手反编译dex
找到路径,是最上行的那个。
用Note pad++打开dex中的那个路径。因为和jeb中的不一样,所以搜索部分方法名进行定位。
进行log插桩
重打包dex
替换原文件中的dex
替换可以避免因为签名验证导致应用无法安装。
程序崩溃的两个原因。一个是log的位置不对。还有一个可以多尝试几次。
登录界面的信息可以删掉。
查看fd中抓到的包和ddms log输出是否一致
设置tag为debugger……
选择红圈里上面的那个。
ctrl+a全选复制。
最后复制到记事本里,与fd中的结果进行比对。