libinject的编译
libinject是一個Android進程注入實例,其下載地址為:http://download.csdn.net/download/ljhzbljhzb/3680780
libinject的編譯需要NDK開發(fā)環(huán)境,在NDK安裝成功之后,可以先將其自帶的實例中的HelloJni導(dǎo)入到eclipse中,編譯運行,如果出現(xiàn)“Hello from Jni”則表明系統(tǒng)環(huán)境配置成功。
libinject包中總共有三個文件inject.c、inject.h、shellcode.s,我們將inject.c和shellcode.s復(fù)制到HelloJni工程的jni文件夾下,將inject.h改名為com_example_hellojni_HelloJni.h復(fù)制到HelloJni目錄下。在jni文件夾下新建一個名稱為Android.mk的文件,文件內(nèi)容為:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c \
shellcode.s
LOCAL_LDLIBS := -lm -llog
include $(BUILD_SHARED_LIBRARY)
工程目錄結(jié)構(gòu)如下圖所示:
然后,修改hello-jni.c文件代碼,將main函數(shù)刪除,添加以下函數(shù)
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");elsereturn (*env)->NewStringUTF(env, "success"); }然后再cygwin中進入HelloJni工程所在目錄,輸入命令:ndk-build,生成libs文件夾,里面包含我們需要的libhello-jni.so,在eclipse中刷新工程,編譯運行即可。
?
總結(jié)
以上是生活随笔為你收集整理的libinject的编译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配套自测连载(三)
- 下一篇: 孕妇梦到杀猪见血好不好