资源简介
反调试在代码保护中扮演着很重要的角色,虽然不能完全阻止攻击者,但是还是能加大攻击者的时间成本,一般与加壳结合使用,核心还是加壳部分。
代码片段和文件信息
#include “com_example_zbb_jiagu02_Myndk.h“
#include
#include
#include
#include
#include
#include
#include
#include “android/log.h“
#include
#include
#include
#include
#include
#include
using namespace std;
//ptrace自己使得android_server附加不上
void anti_debug01()
{
ptrace(PTRACE_TRACEME 0 0 0);
}
//检测Tracepid的值
void anti_debug02()
{
try
{
const int bufsize = 1024;
char filename[bufsize];
char line[bufsize];
int pid = getpid();
sprintf(filename “/proc/%d/status“ pid);
FILE* fd = fopen(filename “r“);
if (fd !=NULL)
{
while (fgets(line bufsize fd))
{
if (strncmp(line “TracerPid“ 9) == 0)
{
int statue = atoi(&line[10]);
if (statue != 0)
{
fclose(fd);
int ret = kill(pid SIGKILL);
}
break;
}
}
fclose(fd);
} else
{
// LOGD(“open %s fail...“ filename);
}
} catch (...)
{
}
}
//将文件读入字符串中,c++能用,此处不能包括头文件
/*jstring readFileIntoString(char * filename)
{
ifstream ifile(filename);
//将文件读入到ostringstream对象buf中
ostringstream buf;
char ch;
while(buf&&ifile.get(ch))
buf.put(ch);
//返回与流对象buf关联的字符串
return buf.str();
}
*/
//检测端口号,针对android_server这个端口号
void anti_debug03() {
const int bufsize=512;
char filename[bufsize];
char line[bufsize];
int pid =getpid();
sprintf(filename“/proc/net/tcp“);
FILE* fd=fopen(filename“r“);
if(fd!=NULL){
while(fgets(linebufsizefd)){
if (strncmp(line “5D8A“ 4)==0){
int ret = kill(pid SIGKILL);
}
}
}
fclose(fd);
}
//检测这些调试进程的名字
void anti_debug04(){
const int bufsize = 1024;
char filename[bufsize];
char line[bufsize];
char name[bufsize];
char nameline[bufsize];
int pid = getpid();
//先读取Tracepid的值
sprintf(filename “/proc/%d/status“ pid);
FILE *fd=fopen(filename“r“);
if(fd!=NULL){
while(fgets(linebufsizefd)){
if(strstr(line“TracerPid“)!=NULL)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9093 2016-09-28 22:08 反调试代码.cpp
文件 453026 2017-03-09 11:32 关于反调试方法总结(一)以及源码实现.pdf
相关资源
- 安卓数独游戏源代码直接用
- Xzhi_socket接收与发送图片(终结者)
- aidl实现后台播放的音乐播放器
- MusicPlayOnLine-master
- 安卓ble4.0
- 毕业设计计算机类外文+翻译
- 安卓计步器源代码
- 博客《FlowLayout详解二——FlowLayout实现
- ListView实现字母索引类似通讯录
- H3平台单独编译kernel以及调试驱动的过
- AppInventer.txt
- 简单的日历日程管理小程序
- 安卓贪吃蛇小游戏初学者
- 调用系统资源管理器,并将图片转为
- studio中如何利用Debug模式来调试程序
- cameraplugin.aar
- 智能家居系统QT源代码
- 点击按钮为listview添加数据
- SignApk签名工具
- 可折叠的日历控件Calendar
-
gsnap.tar.gz linux从fr
amebuffer获取image源 - SlidingMenu的aar文件
- DTMF编码发音、捕获解码的DEMO
- NDK Socket通讯小程序
- 夜神模拟器tcpdump抓包教程
- 易书app图书有偿交换系统
- 新浪微博tab菜单
- 用zgf实现触屏控制和虚拟按键
- 用zgf框架实现逐帧动画
- 超级简单的安卓文件浏览器源码适合
评论
共有 条评论