出售本站【域名】【外链】

首页 AI人工智能软件 qqAI人工智能 微信AI人工智能 抖音AI人工智能 快手AI人工智能 云控系统 手机AI人工智能

HermesAgent群控系统使用教程

2022-05-19

HermesAgent是virjar大神写的一个Android群控系统,基于xposed+RPC真现办法级其它群控。HermesAgent是hermes系统的客户端模块,他是种植正在手机里面的一个agent,同时也是一个xposed的模块插件。

一、本理

agent自身启动了一个service,agent插件模块将会主动注册钩子函数,并且和service通信。Android方法外部乞求可以通过露出正在agent上面的一个http端口,和agent通信,而后agent和目的apkRPC。 如此真现外部乞求到任何一个app的任何罪能的外部挪用。

HermesAgent群控系统使用教程

二、运用教程 2.1 拆置

下载hermesagent名目源码,编译后拆置得手机上,而后正在Xposed模块界面开启hermesagent模块,重启手机既可。

2.2 代码编写

原教程以挪用我前面写的Xposed Hook教程《Xposed框架Hook Demo真例教程》中MainActivity类中的toastMsg办法为例

正在hookagent包下新建类TestAgent,真现AgentCallback接口,并重写targetPackageName、needHook、invoke、onXposedHotLoad四个办法。

targetPackageName办法返回目的APK包名,此处为”com.hyb.hookdemo”;

needHook办法返回一个boolean类型,一个app可能有多个进程,当进程为你须要hook的进程时,返回True;

invoke办法为远程挪用时执止的办法,可依据你乞求中传入的参数反射挪用你hook到的目的办法,归正办法的执止结因;

onXposedHotLoad办法内部可编写详细的hook代码,可对目的办法停行hook,并存储办法对象和类对象,以便invoke办法中挪用;

详细代码见文章最后。

2.3 测试

HermesAgent群控系统使用教程

ps:假如挪用后,返回异样,则可能是未hook到办法招致办法对象为空,你须要如今HookDemo步调中点击按钮挪用一次,使Xposed能Hook到办法并保存办法。

三、最末代码 package com.virjar.hermes.hermesagent.hookagent; import com.virjar.hermes.hermesagent.aidl.InvokeRequest; import com.virjar.hermes.hermesagent.aidl.InvokeResult; import com.virjar.hermes.hermesagent.plugin.AgentCallback; import com.virjar.hermes.hermesagent.plugin.SharedObject; import org.apache.commons.lang3.StringUtils; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; /** * HookDemo Test * * @author HuaYunBin */ public class TestAgent implements AgentCallback { private Object toastMsgMethodObject; private Method toastMsgMethod; @Override public String targetPackageName() { return "com.hyb.hookdemo"; } @Override public boolean needHook(XC_LoadPackage.LoadPackageParam loadPackageParam) { return StringUtils.equalsIgnoreCase(loadPackageParam.processName, "com.hyb.hookdemo"); } @Override public InvokeResult invoke(InvokeRequest invokeRequest) { String returnMsg = null; try { returnMsg = (String) toastMsgMethod.invoke(toastMsgMethodObject); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } return InvokeResult.success(returnMsg, SharedObject.context); } @Override public void onXposedHotLoad() { ClassLoader classLoader = SharedObject.loadPackageParam.classLoader; try { Class clazz = classLoader.loadClass("com.hyb.hookdemo.MainActivity"); XposedHelpers.findAndHookMethod(clazz, "toastMsg", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { super.beforeHookedMethod(param); } @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param); toastMsgMethodObject = param.thisObject; toastMsgMethod = (Method) param.method; } }); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }

热门文章

随机推荐

推荐文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网