资源简介
资源有两部分代码1. 注入的so 测试文件代码 2. 将so 文件注入的代码

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ENABLE_DEBUG 1
#define PTRACE_PEEKTEXT 1
#define PTRACE_POKETEXT 4
#define PTRACE_ATTACH 16
#define PTRACE_CONT 7
#define PTRACE_DETACH 17
#define PTRACE_SYSCALL 24
#define CPSR_T_MASK ( 1u << 5 )
#define MAX_PATH 0x100
#define REMOTE_ADDR(addr local_base remote_base) ( (uint32_t)(addr) + (uint32_t)(remote_base) - (uint32_t)(local_base) )
const char *libc_path = “/system/lib/libc.so“;
const char *linker_path = “/system/bin/linker“;
#define LOG_TAG “DEBUG“
#define LOGD(fmt args...) __android_log_print(ANDROID_LOG_DEBUG LOG_TAG fmt ##args)
#if ENABLE_DEBUG
#define DEBUG_PRINT(format args...) \
printf(format ##args)
#else
#define DEBUG_PRINT(formatargs...)
#endif
int ptrace_readdata(pid_t pid uint8_t *src uint8_t *buf size_t size) {
uint32_t i j remain;
uint8_t *laddr;
union u {
long val;
char chars[sizeof(long)];
} d;
j = size / 4;
remain = size % 4;
laddr = buf;
for (i = 0; i < j; i++) {
d.val = ptrace(PTRACE_PEEKTEXT pid src 0);
memcpy(laddr d.chars 4);
src += 4;
laddr += 4;
}
if (remain > 0) {
d.val = ptrace(PTRACE_PEEKTEXT pid src 0);
memcpy(laddr d.chars remain);
}
return 0;
}
int ptrace_writedata(pid_t pid uint8_t *dest uint8_t *data size_t size) {
uint32_t i j remain;
uint8_t *laddr;
union u {
long val;
char chars[sizeof(long)];
} d;
j = size / 4;
remain = size % 4;
laddr = data;
for (i = 0; i < j; i++) {
memcpy(d.chars laddr 4);
ptrace(PTRACE_POKETEXT pid dest d.val);
dest += 4;
laddr += 4;
}
if (remain > 0) {
d.val = ptrace(PTRACE_PEEKTEXT pid dest 0);
for (i = 0; i < remain; i++) {
d.chars[i] = *laddr++;
}
ptrace(PTRACE_POKETEXT pid dest d.val);
}
return 0;
}
int ptrace_writestring(pid_t pid uint8_t *dest char *str) {
return ptrace_writedata(pid dest str strlen(str) + 1);
}
int ptrace_call(pid_t pid uint32_t addr long *params uint32_t num_params struct pt_regs *regs) {
uint32_t i;
for (i = 0; i < num_params && i < 4; i++) {
regs->uregs[i] = params[i];
}
//
// push remained params onto stack
//
if (i < num_params) {
regs->ARM_sp -= (num_params - i) * sizeof(long);
ptrace_writedata(pid (void *) regs->ARM_sp (uint8_t *) ¶ms[i]
(num_params - i) * sizeof(long));
}
regs->ARM_pc =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 407 2018-09-18 09:27 demo\将so文件注入的代码\jni\Android.mk
文件 68 2018-09-17 17:53 demo\将so文件注入的代码\jni\Application.mk
文件 11937 2018-10-13 09:42 demo\将so文件注入的代码\jni\inject.c
文件 468 2018-09-19 10:12 demo\将so文件注入的代码\jni\inject.h
文件 1243 2011-09-08 15:43 demo\将so文件注入的代码\jni\shellcode.s
文件 399 2018-09-18 10:10 demo\注入的so的代码\jni\Android.mk
文件 68 2018-09-17 17:53 demo\注入的so的代码\jni\Application.mk
文件 451 2018-09-19 16:14 demo\注入的so的代码\jni\payload.c
目录 0 2018-09-19 17:11 demo\将so文件注入的代码\jni
目录 0 2018-09-19 17:12 demo\注入的so的代码\jni
目录 0 2018-09-19 17:11 demo\将so文件注入的代码
目录 0 2018-09-19 17:12 demo\注入的so的代码
目录 0 2018-10-13 09:41 demo
----------- --------- ---------- ----- ----
15041 13
- 上一篇:java实现的计算器界面程序
- 下一篇:JDK8u201全版本包含jre
相关资源
- Android非常漂亮的登录界面
- pc与android通过usb socket实现手机通信
- android毕业设计
- 百度地图自定义Markerandroid
- Android分区工具包
- android-support-v4.jar已打包进去源代码
- u-blox_Android_GNSS_Driver_v3.10驱动源码+中
- 个人根据Android移动开发案例详解手写
- android 视频播放器 项目和原码
- Android【动画】【特效】 17种动画特效
- 基于Android智能家居详细设计(经典)
- android通过JDBC连接Mysql数据库
- Android通讯录的源代码
- android 瀑布流Demo
- 指纹传感器FPC1080在android下的驱动
- delphi xe5 android 调用照相机摄像头拍照
- Android手机连连看游戏源码
- android-sdk-windows v2.3离线完整版
- android 底部弹出菜单(带透明背景)
- Android工程模式简介.rar
- Android蓝牙和Cors网络开发源码
- Android powermanger wakelock
- Android v7的一些jar包
- 最新android supportV7包
- android图片压缩工具类分享
- 单机搭建Android(解决Network is unreach
- Android上监听收到的短信(SMS)
- android电商app源码
- Android代码-多功能拨号盘源码.zip
- printershare直接破解版--11.5(适配andr
评论
共有 条评论