android实现进程注入
2013-01-09 11:08
429 查看
实验环境: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
在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
相关文章推荐
- 【android学习】安卓设备实现触摸事件的监听,跨进程事件注入
- Android中实现对/system/bin/surfaceflinger进程进行拦截和注入
- Android中实现so注入进程
- android平台上实现进程注入
- android实现进程注入
- android实现进程注入
- Android 通过JNI实现守护进程(上)
- 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
- Android应用中通过AIDL机制实现进程间的通讯实例
- android 通过AlarmManager实现守护进程
- Android实现双进程守护
- windows sdk编程系列文章 ---- 利用APC实现向一个运行中的进程注入自己的代码
- Android AIDL实现两个APP间的跨进程通信实例
- Android实现双进程守护
- Android Binder实现的进程间IPC过程概要
- Android中通过进程注入技术修改广播接收器的优先级
- Android---44---使用AIDL Service 实现跨进程调用Service
- Android应用中通过AIDL机制实现进程间的通讯实例
- Android进程性能监控工具Honeybadger实现
- android 进程注入流程