发新帖

【转载文章】简单android病毒分析并实现其效果

[复制链接]
3023 0
看到鬼哥博客一篇文章,转载一下。~

今天在群里看到大家发的一个链接,一个病毒的显示方式,挺好玩的,模仿写了下。


http://mt.sohu.com/20150517/n413220620.shtml?qq-pf-to=pcqq.c2c





这个实现的难度不大,主要是思路上面能够理解就非常简单了。


根据截图来看,主要也就是文字方面的更改,那么我们可以直接考虑android中如何给TextView进行赋值的操作。


TextView.setText(CharSequence)


这个方法就可以实现对其显示文字的赋值,所以使用了substrate框架简单编写了下hook脚本。



[java] view plaincopy


  • <span style="font-size:18px;">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);   
  •                      
  •                 }  
  •                   
  •             }      
  •         
  •       });  
  •             
  •       }  
  •             
  •          
  •   
  • }  
  • </span>  





然后我们运行看下我们定义的Log日志:




日志正常显示了,那么我们就看下手机的效果图:






好了,跟病毒样式一模一样。


如果病毒来做的话,可以直接通过自定义的hook方式来实现,不依靠这些公开的注入框架如Xposed,Cydia Substrate,可以通过自己编写的注入框架也可以很方便的来实现这个原理。


关于hook如何使用,我的博客里面也有简单介绍Cydia Substrate的从头教学,大家有兴趣的可以看下。


本文仅供研究而已,请勿进行非法用途。


举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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