生活服务
算法助手pro是一款专注于安卓逆向开发的工具类软件,其最新版本已适配安卓14系统。用户可借助该软件进行算法分析,学习各类相关编程知识;软件能将密钥、密文等要素关联整合,便于快速运行操作,助力用户更高效地使用各类扩展程序与功能。对安卓逆向开发感兴趣的用户,不妨体验算法助手pro。
步骤一:激活模块
1、因为这个程序属于xposed模块,所以肯定得先激活模块才行。本教程默认各位读者已经具备Xposed环境,因此不会讲解xposed的安装步骤。
2、这里以Lsp框架为例,开启算法助手模块,然后在作用域里勾选你需要Hook的App(经典Xposed只需直接激活模块即可)
3、模块激活成功后,标题信息会呈现为“算法助手”;要是尚未激活,标题就会以红色字体显示“模块未激活”
提示:(部分机型与框架可能存在激活后仍显示未激活的情况,若您确认已完成激活,可尝试直接使用)
步骤二:算法助手里打开开关
1、打开算法助手后,在应用列表中找到需要进行Hook操作的应用并点击进入,随后开启总开关(若不开启,所有相关配置均无法生效)
2、将总开关开启后,再打开需要使用的相关功能开关,比如“弹窗定位”
3、勾选完毕以后,运行被Hook的App
4、返回算法助手界面,切换至日志列表,逐个点击进入,即可查看详细的日志信息。
Tips:(安卓11的用户,如果设备被Hook,需要开启存储权限,并且不要开启存储重定向,这样才能正常生成日志)
步骤三:堆栈分析与代码定位
堆栈的介绍
这个环节,有开发经验的小伙伴可以直接略过啦。调用堆栈对咱们开发人员来说简直是“老熟人”,毕竟大家一整天都在跟Bug打交道,代码一跑起来满眼都是它,懂的都懂~(手动狗头)
在日志详情的末尾,能看到调用堆栈,这个调用堆栈有什么作用呢?又该如何理解它呢?
实际上,调用堆栈的结构如下所示:类名.方法名(源文件名:行数)
那怎么看呢?从下往上看!!!
类1的方法1(类1.java文件的第100行)、类2的方法2(类2.java文件的第55行)以及类3的方法3(类3.java文件的第76行)
比如这个例子:
1、首先调用了类3的方法3
2、然后调用了类2的方法2
3、最后调用了类1的方法1
那么,我们已经清楚,类3的方法3中调用了方法2,但方法3的代码或许相当多,我该如何知晓它具体在哪个位置调用了方法2呢?
这时候行数的重要性就体现出来了,从行数能看到,类3的第76行调用了方法2。
堆栈实战分析
还是刚才那个例子,关于弹窗定位的日志信息,通常我们只需要查看最后几行就行。
LspHooker_.makeText(Unknown Source:18)com.junge.test.MainActivity.onResume(MainActivity.java:24)android..Instrumentation.callActivityOnResume(Instrumentation.java:1454)android..Activity.performResume(Activity.java:8050)
最后两行属于安卓系统类,这些我们用不上,也没必要去查看。
从前面两行内容来看,能够发现,MainActivity的onResume方法中调用了makeText,而依据(MainActivity.java:24)这一标识,可知是在MainActivity类的第24行执行了makeText的调用操作。
接下来我们进行反编译操作并加以验证,在smali代码里找到MainActivity类,然后搜索.line 24这一行。
可以用Jadx查看java代码,从中也能看到第24行调用了makeText。
提示:目前MT管理器在将代码转为Java格式时,还无法自动识别出行号信息。
提示:很多程序在编译完成后,源文件名和代码行数这类信息会被清除掉,因此堆栈分析只能作为辅助排查问题的手段,不必过于依赖它。关键还是要掌握通过梳理代码逻辑来分析和定位问题的能力。
进阶使用教程:自定义Hook的使用
Hook,实际上可以理解成拦截函数,当成功拦截到目标函数后,无论是想要修改它的返回值,还是阻止它执行,都是能够实现的。
在选好算法助手后,把功能列表滑到最底部,能看到一个“添加自定义”按钮,点击进入后会跳转到配置界面,接着就可以进行hook配置了。
package com.junge.test;import android.os.Bundle;import android.widget.Toast;import androidx.compat..AppCompatActivity;public class MainActivity extends AppCompatActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public String test(String name) { return \\\'你好:\\\' + name; } public void onResume { super.onResume; Toast.makeText(this, test(\\\'张三\\\'), 1).show; }}
还是拿这段代码举例,进入对应的Activity之后,会调用test函数,同时传入‘张三’,接着弹出提示;而test函数原本返回的是‘你好+姓名’,我希望借助hook技术来修改它的返回值,把返回值改成‘hook返回值成功’,应该怎么操作呢?
配置如下:
java格式:
类名:com.junge.test.MainActivity
方法名:test
参数类型:java.lang.String
返回值:成功获取hook返回值smali格式:
类名:Lcom/junge/test/MainActivity
方法名:test
参数类型:Ljava/lang/String;
返回值:hook返回值成功提示:采用smali格式时,务必完整填写参数类型,其中包含分号。
1、因为这个程序属于xposed模块,所以肯定得先激活模块才行。本教程默认各位读者已经具备Xposed环境,因此不会讲解xposed的安装步骤。
2、这里以Lsp框架为例,开启算法助手模块,然后在作用域里勾选你需要Hook的App(经典Xposed只需直接激活模块即可)
3、模块激活成功后,标题信息会呈现为“算法助手”;要是尚未激活,标题就会以红色字体显示“模块未激活”
提示:(部分机型与框架可能存在激活后仍显示未激活的情况,若您确认已完成激活,可尝试直接使用)

1、设备上需要安装xposed环境,并激活模块
2、开启算法助手,选定要进行hook操作的目标程序,打开应用开关,对应的功能可根据需求自行选择
3、启动目标程序后,返回算法助手,就能在日志面板查看相关信息
1、能够运用各类系统框架,这些框架不仅用起来格外顺手,功能还十分强大。
2、依据用户的具体需求进行调整,协助大家自动完成调试与运行的操作。
3、软件的专业性非常强,能帮助你更好地分析和调试程序。
1、能够帮助用户更好的去运行,速度特别的快。
2、能够帮你记录下每一次分析得出的结果,用户若有需要,还可以导出相关的数据。
3、可协助分析手机中的程序代码,以便更好地为开发人员的研究工作提供支持。
1、AES、DES,RSA等秘钥算法(Cipher类)
2、justTrustMe升级版(能够高效自动定位经过混淆处理的okhttp)
3、拦截程序退出(System以及其他类)
4、Md5、Sha等信息摘要算法(MessageDigest类)
5、自定义Hook:支持自行定义Hook类,能够设置返回值,并且可以对执行过程进行拦截
6、Hmac等含有秘钥的哈希算法(Mac类)
7、文件访问记录(File类)
8、对话框的定位(Dialog类)
9、Log捕获(LOG类)
v1.0.7版本
支持Android14
支持运行Frida脚本
新增web算法自吐
支持通过选择函数进行Hook
Reqable联动
算法助手Pro的开关同步到Lsposed
增加注入成功提示(可在设置中关闭)
日志的调用堆栈中支持快速添加Hook
修复RSA签名数据、加密数据重复的bug
修复导出的日志中无调用堆栈的bug
其他bug修复
龙虾部署让openclaw接入本地教程!
近期”龙虾“热度暴涨,openclaw这款被大众称作"小龙虾
WorkBuddy免部署腾讯版“小龙虾”上线,下载即用!
3月9日,腾讯云正式发布全场景AI智能体WorkBuddy,
龙虾部署安装教程!龙虾部署条件详解!
此文章中提到的在最近科技圈爆火的“龙虾&rdqu
龙虾部署调动openclaw用豆包模型生成视频详解!
OpenClaw因红色龙虾图标被网友亲切称为"小龙虾",是一
千问春节瓜分30亿红包火热进行,第二阶段即将开启!
相信经过几天的互联网ai红包的攻击,很多小伙伴都收获满满,而
千问红包怎么领?活动时间与攻略详解
据阿里云数据显示,千问在2月6日上线的「30 亿免单」活动,