资源简介
反调试在代码保护中扮演着很重要的角色,虽然不能完全阻止攻击者,但是还是能加大攻击者的时间成本,一般与加壳结合使用,核心还是加壳部分。

代码片段和文件信息
#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
相关资源
- AsyncTask文件控制暂停和继续,在状态
- 汉印A300 CPCL协议 android 热敏打印app(
- 自定义VIewGroup实现仿淘宝商品详情页
- Genymotion-ARM-Translation_v1.1
- 黑客大曝光:移动应用安全揭秘及防
- superCleanMaster仿360清理大师
- 简易手机通讯录
- 安卓期末项目--记账本app.zip
- 中兴盒子不开启adb情况下抓取日志和
- 手机通讯录
- usb扫描枪数据获取解析
-
两个Strings.xm
l的比较 - 使用Intent拨打电话
- 安卓项目英汉词典
- 实现了基础的登录页面,支持记住密
- 移动应用开发课程设计
- ListView应用
- 移动点餐系统 新手学习。。。。
- 基于安卓开发的校园通移动应用.rar
- 基于移动平台的轻博客系统开发与设
- 使用canvas画线,位移,旋转,绘制五
- QXDM user guide
- 选择日期时间对话框,解决弹出键盘
- 基于安卓平台的校园通软件设计—毕
- 安卓版天气预报小应用
- 安卓通讯录简易实现
- wifi打开获取变慢的解决demo
- 安卓微积分计算器
- Emmagee安卓性能测试源码学习
- 实现简单的语音合成代码
评论
共有 条评论