今天在群里看到大家发的一个链接,一个病毒的显示方式,挺好玩的,模仿写了下。
http://mt.sohu.com/20150517/n413220620.shtml?qq-pf-to=pcqq.c2c
这个实现的难度不大,主要是思路上面能够理解就非常简单了。
根据截图来看,主要也就是文字方面的更改,那么我们可以直接考虑android中如何给TextView进行赋值的操作。
TextView.setText(CharSequence)
这个方法就可以实现对其显示文字的赋值,所以使用了substrate框架简单编写了下hook脚本。
[Java] 纯文本查看 复制代码 public class Main {
public static void initialize() {
MS.hookClassLoad("android.widget.TextView", new MS.ClassLoadHook() {
@Override
public void classLoaded(Class<?> arg0) {
// TODO Auto-generated method stub
Method smstest ;
try {
smstest=arg0.getMethod("setText", CharSequence.class);
} catch (SecurityException e) {
// TODO Auto-generated catch block
smstest=null;
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
smstest=null;
e.printStackTrace();
}
if(smstest!=null){
final MS.MethodPointer old = new MS.MethodPointer();
MS.hookMethod(arg0, smstest, new MS.MethodHook() {
@Override
public Object invoked(Object arg0, Object... arg1)
throws Throwable {
// TODO Auto-generated method stub
Log.d("ggz","i am hook in------->");
String bb=(String)arg1[0];
Log.d("ggz","string is----->"+bb);
bb="爱破解,爱鬼哥";
Log.d("ggz","now string is --->"+bb);
return old.invoke(arg0, bb);
}
}, old);
}
}
});
}
}
然后我们运行看下我们定义的Log日志:
日志正常显示了,那么我们就看下手机的效果图:
好了,跟病毒样式一模一样。
如果病毒来做的话,可以直接通过自定义的hook方式来实现,不依靠这些公开的注入框架如Xposed,Cydia Substrate,可以通过自己编写的注入框架也可以很方便的来实现这个原理。
关于hook如何使用,我的博客里面也有简单介绍Cydia Substrate的从头教学,大家有兴趣的可以看下。
本文仅供研究而已,请勿进行非法用途。
转载请注明链接~
|