本帖最后由 XuanRan 于 2021-7-3 22:49 编辑
软件介绍算法助手是我们开发的一款运行在Android平台上基于Xposed的安卓调试工具,配合Xposed(需要Root或者沙盒环境),通过一系列反射操作,进行应用的安全测试,调试分析,代码定位,是一款不错的调试工具。 工具下载:https://wwa.lanzoui.com/iaouqpzpfwh 功能1、Md5,Sha等信息摘要算法(MessageDigest类) 2、AES、DES,RSA等秘钥算法(Cipher类) 3、Hmac等含有秘钥的哈希算法(Mac类) 4、对话框的定位(Dialog类) 5、Log捕获(LOG类) 7、拦截程序退出(System以及其他类) 8、justTrustMe升级版(可高效自动定位混淆后的okhttp) 9、文件访问记录(File类) 10、自定义Hook,可自行定义hook类,可设置返回值,可拦截执行 11、webViewDebug(使webView可调试) 12、shell命令行纪录 13、……后续会不断进行增加
简单教学
本教程是针对一些小白用户,大佬可绕道。
一、勾选目标应用
打开应用后,要先选择你要hook的目标应用,可借助右上角的搜索快速定位,如果要hook系统应用则需左滑,勾选显示系统应用
二、打开目标应用
1.正如开关界面所说,目标一样必须开启储存权限,如果软件没有权限的话,要自己在AndroidManifest.xml添加一下权限代码,后续版本会免去这个步骤。(另外Lsp框架的用户也需要在作用域里勾选上要hook的应用。)这一步很关键,如果没有开启是无法获取到日志的!!!
PS:开了存储重定向的话,被hook的app,和算法助手,都需要关掉存储重定向!!!
- <!-- 修改或删除您的USB存储设备中的内容 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
复制代码 三、查看结果打开软件触发你要分析的功能(如果是要分析协议就打开aes、des、md5的开关,如果是要定位弹窗就开对话框显示,这里有个小bug,下个版本会修复,总之想要干嘛就开对应的开关),接着回到算法助手点击日志进行查看,这里我们触发了一个aes的算法,可以很明显的看到key和iv以及原本的内容,在最下面还有堆栈调用。 进阶应用
1.以上只是列举了其中一个功能,其他的功能都是大同小异,下面来讲讲自定义Hook这个功能。这个其实跟learnhook、mhook的操作是一样,鉴于一部分人可能没用过,我这里就简单的说一下,因为暂时没啥案例,我就直接照着一段代码讲,思路明白了就可以了。
代码如下:
- .class public Lcom/bean/VipInfo; //类名,这个一般在类中的最顶端
- .super Ljava/lang/Object;
- .source "SourceFile"
- # instance fields
- .field public end_date:Ljava/lang/String;
- .method public isVip()Z isvip是方法名,后面的()里可能会有参数,例如:I,Ljava/lang/String; 有就填没有就不填。Z是返回值的类型,算法助手自动判断无需填写
- .registers 4
- iget-object v0, p0, Lcom/bean/VipInfo;->end_date:Ljava/lang/String;
- invoke-static {v0}, Lcom/utils/StringUtils;->isEmpty(Ljava/lang/String;)Z
- move-result v0
- return v0
- .end method
复制代码
2.假设你已经定位到这个关键方法,只要赋值1就可以破解了,那么碰巧这个软件有签名校验,而你又搞不定,这种时候就需要xposed的hook功能了。 3.复制方法中的几个关键字:Lcom/bean/VipInfo; 和isVip 4.回到算法助手,点击你要hook的软件,打开自定义hook,依次填写(下个版本会兼容java和smali两种格式) 5.最后点击下方的添加就完成了一个自定义的hook 6.另外下方还有两个勾选框,拦截执行:顾名思义就是不让某个方法执行,这个我很少用到,如果有什么骚操作,欢迎补充。 7.另一个则是构造函数,这里介绍一下构造函数的意思:就是函数名与类名相同,无返回值,分有有参和无参构造函数。其中的参数就是hook区别的关键。
最后,教程可能有哪里写得不会,欢迎斧正和补充!也欢迎加入群,一起交流学习。群号:1064330788
|