吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 5461|回复: 99

[原创逆向图文] Anti Debug:实战讲解

  [复制链接]
1122cf 发表于 2020-9-10 16:40 | 显示全部楼层 |阅读模式

Anti Debug主要是通过各种函数去确定当前进程是否处于被调试的状态。

一.IDA里面静态分析so文件

1.将文件拖入jdax-gui中,进行静态分析,会发现OnCreate里面没多少内容,并且上面加载了so库,如下图所示。

20161102172426817.png

2.将SO文件拖入,找到JNI_OnLoad,如下图所示。

图片1.png

3.按F5查看伪代码,如下图所示。

图片2.png

4.除了动态注册这个参数外,还有两个参数的传递,其中一个是简单的if判断,它使用的是或运算符,只要其中有一个成立,就会成功执行,返回return-1,相反则返回65540,如下图所示。

图片3.png

5.进入第一个anti_time,分析逻辑,如下图所示。

图片4.png

6.先获取线程ip给v0,前面两个gettimeofday的函数,传入两个值进行操作,如下图所示。

图片5.png

7.查看gettimeofday引用,如下图所示。

图片6.png

8.点击进行查看,如下图所示。

图片7.png

9.进来后,查看关键字眼,是和时间相关的,如下图所示。

图片8.png

10.v3和tv分别是两个不同的时间点,分别获取两个时间,lv_sec是秒数,如下图所示。

图片9.png

11.获取两个间隔做差值放到v1寄存器,然后继续if判断,小于零则给上一层的if返回0,反之,直接kill,返回1,如下图所示。

图片10.png

12.查看并分析if的简单判断逻辑,下面有一个for循环,里面又是各种嵌套,如下图所示。

微信图片_20200910161030.png

13.for循环结束后,返回上一层的布尔值,并不是在for的外层,如果for结束后,执行++v4操作,会返回默认值false(布尔值的默认值是false),如下图所示。

图片12.png

14.关键点就在于for循环里面的分析,查看for循环,发现有一个break,在C语言中,for循环里面的break就是跳出for循环的意思,如下图所示。

图片13.png

15.判断成立后会直接break,如下图所示。

图片14.png

在汇编里面将它进行修改,直接break,就可以直接给上一层返回一个false。

16.分析一下,如果v4大于等于v6,v4上面初始值为0,而v6是一个获取得到的返回值,如下图所示。

图片15.png

17.这个位置显示的是什么?如下图所示。

图片16.png

18.查看v3,有v2赋值,v2是一个方法的返回值,如下图所示。

图片17.png

19.回到break的判断,v4固定值0,v6是一个返回值+44,然后整体取地址,这个肯定是大于零的(因为地址不可能是负数),也就是说,这个if判断永远小于零,break永远不会执行。
那么,修改方法有以下几种:
(1)直接把if判断nop掉,也就是进来for循环就直接break;
(2)把判断的大于等于改成小于,也可以执行到break;
(3)直接改动break指令的位置,比如放到for循环外面。

20.继续分析逻辑,这里面有几个linux编程涉及的函数,如下图所示。

图片18.png

pthread_self:获取自己的线程id;
pipe管道:实现进程通信;
pthread_create:创建线程,它有四个参数,查看它的第三个参数,这个是自己的定义的程序,做一些其他操作。

21.同理,我们分析的这个也是在第三个参数,做了一些获取线程的操作,也就是这个函数,如下图所示。

图片19.png

22.继续分析这个函数,如下图所示。

图片20.png

23.点击进入,如下图所示。

图片21.png

24.它的作用就是进出函数时,堆栈是否平衡和数据是否被修改,如下图所示。

图片22.png

25.v0是获取当前进程id,那么这个打印的结果就是当前的进程,如下图所示。

图片23.png

26.调用fork函数,父进程调用fork函数可以创建子进程,那么这个返回值就是子进程,如下图所示。

图片24.png

27.然后一个if判断,如果创建成功,把值最终传给了childpid这个变量,紧接着else,如果没成功,就关闭,如下图所示。

图片25.png

28.else下面还有其他的操作,就是静态so层分析,如下图所示。

图片26.png

二: IDA动态调试
1.在jni_onload处下断点,然后运行到此处,如下图所示。

图片27.png

2.这几个函数就是有反调试函数的地方,如下图所示。

图片28.png

3.直接把这三个函数nop掉,如下图所示。

图片29.png

4.然后F4直接原型到后面的指令,就完美的过掉了反调试,如下图所示。

图片30.png

小结:
本次分享先从java层简单分析到so层,然后静态分析了so里面反调试函数的逻辑,最后通过动态调试演示了如何过掉反调试。

评分

参与人数 31威望 +1 HB +129 THX +19 收起 理由
longge188 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1
sjtkxy + 1 + 1
DDK4282 + 1 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
1418872588 + 1 + 1
创客者V2.0 + 1
459121520 + 1
消逝的过去 + 2
冷亦飞 + 1
纯英文 + 1
zyyujq + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
sherry5566 + 1 + 1 <span class="text2Link">[吾爱汇编论坛<a target="_blank">52HB.COM</a>]-吃水不忘打井人,给个评分懂感恩!</span>.
playboy + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
汇编先行 + 1
饭饭烦 + 1 + 1
temp + 1 + 1
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
爱慧琼 + 1
军工强国 + 1 + 1
風清. + 1
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
上你个大当了 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
noblesport + 2 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
baky1223 + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
CraftDeadMRC + 1
HlccFu + 5 + 1 [快捷评语]--你将受到所有人的崇拜!
Shark恒 + 1 + 100 + 1 [快捷评语]--你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
萌萌的小短腿 发表于 2020-9-12 08:57 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 1122cf 发表于 2020-9-12 09:23 | 显示全部楼层

萌萌的小短腿 发表于 2020-9-12 08:57
羡慕玩安卓的大佬!!!膜拜啊

你也可以啊
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
萌萌的小短腿 发表于 2020-9-12 10:41 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 1122cf 发表于 2020-9-12 10:48 | 显示全部楼层

萌萌的小短腿 发表于 2020-9-12 10:41
我不配啊,现在只会用mt管理器搜些vip啥的。。。

一步一个脚印,慢慢来
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
CraftDeadMRC 发表于 2021-12-29 09:52 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
king51999 发表于 2021-12-29 11:17 | 显示全部楼层

羡慕玩安卓的大佬!!!膜拜啊
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
beijita520 发表于 2021-12-29 19:07 | 显示全部楼层

膜拜大佬,感谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
伤心寂寞冷 发表于 2021-12-30 22:38 | 显示全部楼层

感谢楼主大大分享!学习!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
上你个大当了 发表于 2021-12-31 08:02 | 显示全部楼层

感谢分享!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表