注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

android实现进程注入  

2013-10-29 13:38:31|  分类: Android开发与逆 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转自:http://www.cnblogs.com/steveray/archive/2013/01/27/2878953.html

http://www.cnblogs.com/jinshelangjun/archive/2013/01/09/2852493.html

实验环境:ubuntu12.04 + eclipse + ADT + NDK

 在android平台上实现进程注入与在linux上实现进程注入非常相似,但是又不完全相同。本文将详细介绍android平台下进程注入的实现方法。

首先下载libinject包,下载地址为:http://download.csdn.net/download/ljhzbljhzb/3680780,采用这个包可以帮助我们省去不少时间。

在NDK安装成功之后,将其自带的实例中的HelloJni导入到eclipse中,编译运行,如果出现“Hello from Jni”则表明系统环境配置成功。

下载的libinject包中总共有三个文件inject.c/inject.h/shellcode.s,我们将inject.c中的代码拷贝到hello-jni.c中,将inject.h中的代码拷贝到hello-jni.h中,并将shellcode.s整个文件复制到HelloJni工程的jni文件夹下。同时在jni文件夹下新建一文件,命名为Android.mk,文件内容为:

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:=hello-jni

LOCAL_SRC_FILES:=\

      hello-jni.c \

      shellcode.s

include $(BUILD_SHARED_LIBRARY)

保存即可。在hello-jni.c中修改代码,将main函数删除,添加以下函数

jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
pid_t target_pid;
target_pid = find_pid_of("/system/bin/servicemanager");
int success = inject_remote_process( target_pid, "/dev/yuki/payload.so", "hook_entry", "I'm parameter!", strlen("I'm parameter!") );

if(success!=0)
return (*env)->NewStringUTF(env, "failure");
else
return (*env)->NewStringUTF(env, "success");
}

接下来打开terminal , 进入HelloJni工程所在目录,输入命令:ndk-build

生成libs文件夹,里面包含我们需要的libhello-jni.so,在eclipse中刷新工程,编译运行即可。

程序源码下载地址:http://download.csdn.net/detail/jinshelangjun_/4976715


  评论这张
 
阅读(52)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017