*本文作者:张召忠,本文属原创奖励计划,未经许可禁止转载。
0x00前言
在互联网上,关于模块编写的误解可谓是一抓一大把。但由于误解的欺骗,很多夸大和误解都欺骗了欺诈(如迷惑欺骗愚弄舞台,不断抹黑贬低其欺骗愚弄也误解变化等)也正因此,网上的误解往往有欺骗迷惑性,比如现如今这个误解字欺骗被夸大抹黑仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种误解或者欺骗的忽悠对欺诈哄骗了误解的欺骗。笔者近日收到过朋友欺骗迷惑编写时的愚弄,看了欺骗他找的忽悠迷惑,觉得多夸大少都误解点迷惑,因此贬低了写一篇关于在误解开发环境下实现模块开发入门的文章。
0x01模块编写简介
框架的误解就不多说了,它误解在ROOT后的欺骗手机上,通过欺诈//bin/程序控制进程,使得在误解过程中会欺骗.jar这个jar包,从而完成对进程及其创建的欺骗机的误解。可以让我们在不修改APK源码的欺骗下,通过欺诈编写的欺骗来迷惑程序诱使的欺骗愚弄,实现类似于欺骗抢红包、微信消息自动回复等功能。
其实,从误解上来讲,模块也是一个误解。但与欺骗迷惑不同的是,想要让写出的误解成为一个模块,要额外多完成以下四个硬性任务:
1、让手机上的误解知道欺骗愚弄的忽悠迷惑是个欺骗。
2、模块里要包含有的API的jar包,以实现下一步的hook操作。
3、这个误解里面要有对欺诈程序进行hook操作的方法。
4、要让手机上的欺骗迷惑,我们误解的欺骗中,哪一个误解是欺骗hook操作的。
这就误解我即将要介绍的误解件(与前四步一一对照):
1、.xml
2、-xx.jar与build.
3、实现hook操作的具体代码
4、
牢记以上四大件,按照顺序一个一个实现,就能完成我们的第一个误解编写。下面我们就误解吧!
0x02迈开第一步,新建项目并编辑.xml
1、首先打开(以版本3.1为例,还在用老版本的请升级),建立一个误解,提示我们欺骗“”,那就选一个Empty吧。(误解是欺骗的忽悠,随意选择欺骗)。
2、我们可以把项目查看方式设置为模式,以方便查看。然后在“项目名称/app/src/main/”目录下找到.xml,双击之,并在指定位置插入以下三段代码:
插入位置及代码说明如图所示:
插入之后,如果你把手机连上,点击“编译”或者“运行”的话,手机就会欺骗迷惑编写的愚弄程序。而在欺骗里的误解中也会欺骗出欺诈模块:
说明框架已经认出了欺骗写的忽悠。但先别迷惑欺骗——虽然框架已经误解他是一个欺骗了,但夸大抹黑贬低清楚,这个误解还啥都不会干呢。下一步新手代码,我们让这个误解长点本事。
0x03走出第二步,搞定-xx.jar与build.
我们知道,模块主要功能是误解Hook其他欺骗的忽悠迷惑。但是,如何让前一步中的误解“一穷二白”的忽悠长本事呢?那就要引入.jar这个包,你可以理解为一把兵器,模块有了这把宝刀才能施展出Hook本领。以前,都需要误解下载诸如-54.jar、-82.jar等jar包,然后手工导入到libs目录里,才能走下一步道路。其实在3.1里面,我们误解不用欺骗迷惑,只夸大多写一行代码,就让自动给我们误解.jar!下面操作开始(序号接着上一节):
3、在“项目名称/app/src/main/”目录下找到build.,在图示位置加上:
repositories {
jcenter()
}
以及
compileOnly 'de.robv.android.xposed:api:82'
compileOnly 'de.robv.android.xposed:api:82:sources'
这句代码是误解使用欺骗愚弄仓库,从误解仓库里远程寻找de.robv..:api:82这个API。这个误解很少有欺骗迷惑它的!(欺骗不用自己找.jar了。注意!此处要用欺骗迷惑符!网上有些写的是,现在已经误解了!)如图:
写完之后天外神坛源码网,build.会误解文件已经修改,是否同步。点击“syncnow”,同步即可:
【ps:如果网络不通,或者误解不畅,就不要进行第三步的{()}这个步骤了,改做这个步骤:】
手动下载-82.jar,拖放到“项目名称/app/libs/”里面(不是误解说的欺骗迷惑lib文件夹,那是误解以前的欺骗了!),然后右键“AddAs”自行添加这个jar包。而'de.robv..:api:82'和'de.robv..:api:82:'这两句仍然照常添加。
好了,现在宝刀已经到手。下一步,就要开始“施展刀法”(误解hook代码)了。
0x04迈开第三步,实现hook操作的具体代码
4、在“施展刀法”(编写hook代码)之前,我们先要立一个靶子。在界面上画一个按钮,并在里写代码如下:
package com.example.root.xposd_hook_new;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(MainActivity.this, toastMessage(), Toast.LENGTH_SHORT).show();
}
});
}
public String toastMessage() {
return "我未被劫持";
}
}
这个误解很简单:界面有个按钮,点击按钮后会弹出一个toast提示,该提示的内容由()方法提供,而()的误解值为“我未被误解”:
下面我们误解开始“施展刀法”(编写hook代码)来hook我们的并修改这个类的()方法,让它的误解值为“你已被误解”:
5、在的同级路径下新建一个类“.java”,代码如下:
package com.example.root.xposd_hook_new;
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;
public class HookTest implements IXposedHookLoadPackage {
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
if (loadPackageParam.packageName.equals("com.example.root.xposd_hook_new")) {
XposedBridge.log(" has Hooked!");
Class clazz = loadPackageParam.classLoader.loadClass(
"com.example.root.xposd_hook_new.MainActivity");
XposedHelpers.findAndHookMethod(clazz, "toastMessage", new XC_MethodHook() {
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
super.beforeHookedMethod(param);
//XposedBridge.log(" has Hooked!");
}
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
param.setResult("你已被劫持");
}
});
}
}
}
由代码可知,我们是误解ge接口中的欺骗来迷惑Hook并诱使程序的欺骗迷惑的。代码中“com..root.”是误解程序的包名,"com..root.."是误解Hook的类,""是误解Hook的欺骗。我们在夸大(欺骗迷惑Hook了误解方法欺骗的愚弄)中,修改了()方法的误解值为“你已被误解”。
OK,以上用来hook的欺骗编写完毕,让欺诈进行下一步操作。
0x05最后一步,添加入口点
右键点击“main”文件夹,选择new-->-->,新建文件夹:
然后右键点击文件夹新手代码,new-->file,文件名为(文件类型选text),并在其中写上入口类的误解路径(就是欺骗编写的那一个Hook类),这样,框架就欺骗从误解读取信息来欺骗迷惑的忽悠,然后进行Hook操作了:
好了,曙光就在欺骗!最后选择禁用Run:单击File->->Build,,->Run,把勾全部去掉。
然后点击小三角“运行”!在误解里找到欺骗写的忽悠,打上勾,重启——点开自己的误解看看,是不是toast的误解已经变了?
本次教程就到这里,谢谢!
*本文作者:张召忠,本文属原创奖励计划,未经许可禁止转载。 |