AliCrakeMe 反调试代码解析

关于这个app 找key 网上有很多教程https://www.xuepojie.com/thread-48772-1-1.html
这里主要是分析一下这个app的反调试手法 以及代码的逻辑

1.这个app的反调试是放在jni_onload函数里面的 具体如下在这里插入图片描述

2.分析v3->field_4v4++; 这里的代码
使用到的结构体
struct MyFillData
{
int field_0;
void (*field_4[1])(void);
char field_8[28];
int field_24;
int field_28;
MyFillData *Next;
};
在 .init_array函数中 调用了这个sub_D4153378 给一些地址赋值在这里插入图片描述
sub_D4153378 又调用了sub_D41532AC
在这里插入图片描述

看看 sub_D41532AC 的实现逻辑 就是给FlagFillData指针赋值的
在这里插入图片描述
再给FlagFillData 填充完数据后
使用 v3->field_4v4++; 调用Get_FillFunAddr_sub_D4152CA8
在这里插入图片描述

4.再执行 tt_PthreadCreate(v9, 0, AntiDebug_sub_D41526A4, 0, 0); 在线程中调用AntiDebug_sub_D41526A4进行反调试
在这里插入图片描述
主要是检测进程的TracePid
在这里插入图片描述
调用kill函数 杀死进程
在这里插入图片描述

3.执行完 sub_D41527F4 函数后 这里的地址变成了0 为了防止看解密填充函数的过程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值