吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1824|回复: 20

[安卓逆向图文] 8.1.3 Xposed Hook-中(第五十八课)

  [复制链接]
playboy 发表于 2022-6-6 09:15 | 显示全部楼层 |阅读模式

以下为图文内容:
8.1.3 Xposed Hook-中
0x01 Hook复杂参数
我们Hook的时候经常会遇到一些复杂类型的参数,如map、二维数组、自定义类
型和集合等参数,这个时候我们应该如何传入我们的参数列表的字节码?本小节将介绍几
种方法来传入复杂参数的字节码。
在这里我们还是以上一次案例为例
fakename.png
我们这次要Hook 的函数为
complexParameterFunc(String,String,Map,ArrayList),其中的参数有复杂类型参数,
那我们最常规的一种hook参数列表的方式为”类型.class”。代码如下:
[Java] 纯文本查看 复制代码
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import android.util.Log;
public class Hook implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws
Throwable {
if (lpparam.packageName.equals("com.feichen.xposeddemo")){
final Class clazz =
XposedHelpers.findClass("com.feichen.xposeddemo.Demo",lpparam.classLoad
er);
XposedHelpers.findAndHookMethod(clazz,
//Hook参数列表方式一:类型.class
"complexParameterFunc",
String.class,
String[][].class,
Map.class,
ArrayList.class,
new XC_MethodHook(){
public void beforeHookedMethod(MethodHookParam param){
Log.d("Lvmeng","Lvmeng===============before");
Log.d("before-获取参数", ""+param.args[0]);
}p
ublic void afterHookedMethod(MethodHookParam param){
Log.d("Lvmeng","Lvmeng=============after");
Log.d("after-获取参数", ""+param.args[0]);
Log.d("Lvmeng", ""+param.getResult());
}
});
}
}
}

然后运行效果如下:
fakename.png
通过日志输出可以发现我们已经成功hook到complexParameterFunc的参数。
0x02 Hook自定义参数
对于一些自定义类型的参数,很显然类型.class是不可取的,那么我们介绍另外一种
方式,即该方法所在的全路径,还是以complexParameterFunc为例。
[Java] 纯文本查看 复制代码
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
import android.util.Log;
public class Hook implements IXposedHookLoadPackage {
public void handleLoadPackage(final LoadPackageParam lpparam) throws
Throwable {
if (lpparam.packageName.equals("com.feichen.xposeddemo")){
final Class clazz =
XposedHelpers.findClass("com.feichen.xposeddemo.Demo",lpparam.classLoad
er);
XposedHelpers.findAndHookMethod(clazz,
//Hook参数列表方式二:该方法所在的全路径
"complexParameterFunc",
"java.lang.String",
"[[Ljava.lang.String;",
“java.util.Map",
“java.util.ArrayList”,
new XC_MethodHook(){
public void beforeHookedMethod(MethodHookParam param){
Log.d("Lvmeng","Lvmeng===============before");
Log.d("before-获取参数", ""+param.args[0]);
}p
ublic void afterHookedMethod(MethodHookParam param){
Log.d("Lvmeng","Lvmeng=============after");
Log.d("after-获取参数", ""+param.args[0]);
Log.d("Lvmeng", ""+param.getResult());
}
});
}
}
}

然后运行截图如下:
fakename.png
通过日志输出可以发现我们已经成功hook到complexParameterFunc的参数。
另外Hook参数列表即是获取列表的字节码,因此还有两种获取方式,均已获取字符
串列表为例,一种是:
XposedHelpers.findClass("java.lang.String",lpparam.classLoader),
另一种为反射获取:
Class.forName("java.lang.String"),
其中反射函数forName有重载,一个是一个参数的,一个是三个参数的,其中三个参数
的,可以指明classLoader,而我们一般可以选择三个参数的指明我们选取的类加载器。


评分

参与人数 21HB +17 THX +9 收起 理由
消逝的过去 + 2
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
Jawon + 1
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
一路走来不容易 + 1
459121520 + 1
爱汇编爱汇编 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
boot + 1
agan8888 + 1
泄密无花 + 1
Cerolluo + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
xgbnapsua + 2
zyyujq + 1
l278785481 + 1
hbyaojing + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
三月十六 + 1
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
fengyuan0128 + 1
temp + 1
hodada + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
陈沦 发表于 2022-6-6 19:14 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
l278785481 发表于 2022-6-6 21:38 | 显示全部楼层

谢谢大神666
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
天使替我爱你 发表于 2022-6-6 22:08 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-6-7 01:56 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
Wayne 发表于 2022-6-7 08:32 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bnjzzheng 发表于 2022-6-11 10:52 | 显示全部楼层

多谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
天使替我爱你 发表于 2022-6-11 23:26 | 显示全部楼层

谢谢大佬分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
Wayne 发表于 2022-6-12 02:50 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
男同在身边 发表于 2022-6-28 12:25 | 显示全部楼层

感谢分享!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表