目录(?)[-] TLS技术简介 1 TLS回调函数 2 TLS的数据结构 具体实现及原理 1 VS2015 X64 release下的demo 2 回调函数的具体实现 21 使用IsDebuggerPresent检测调试器 22 使调DebugPort检测调试器 实际测试 1 测试直接执行 2 测 ...
总结了一下网上的反调试技术,记录一下 一、使用WindowsAPI : 1.IsDebuggerPresent 2.CheckRemoteDebuggerPresent ->call NtInformationProcess( 2参数ProcessInformationClass) 3.NTQuer ...
分类:
其他好文 时间:
2017-09-08 10:11:34
阅读次数:
144
在逆向过程中经常会遇到反调试,如下段代码: 0008bd8e movs r1, #0xa ; argument #2 for method imp___symbolstub1__dlopen 0008bd90 blx imp___symbolstub1__dlopen 0008bd94 movw r ...
分类:
移动开发 时间:
2017-07-05 00:25:47
阅读次数:
192
最后一次异常法 如果我们在脱壳的过程中发现目标程序产生大量异常的话,就可以使用最后一次异常法,我们来看一个例子,名字叫做”bitarts_evaluations.c”。 我们还是使用Patch过的OD来加载它,并且配置好反反调试插件。 然后将EXCEPTIONS菜单项中的忽略各个异常的选项都勾选上, ...
分类:
其他好文 时间:
2017-06-24 17:22:12
阅读次数:
164
http://www.cnblogs.com/jiaoxiake/p/6818786.html内容如下 导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1. 需要动态调试 2. 对抗反调试方案 为了提高工作效率, ...
分类:
移动开发 时间:
2017-06-21 22:59:30
阅读次数:
347
0x00前言 一个安卓应用可以被调试的条件是应用AndroidManifest.xml显示指定android:debuggable="true",如果没有设置android:debuggable的值,则默认android:debuggable="false",所以发布的应用大部分都是不可调试的,如果 ...
分类:
移动开发 时间:
2017-06-02 17:48:44
阅读次数:
324
导语: 上一篇我们分析android脱壳使用对dvmDexFileOpenPartial下断点的原理,使用这种方法脱壳的有2个缺点: 1. 需要动态调试 2. 对抗反调试方案 为了提高工作效率, 我们不希望把宝贵的时间浪费去和加固的安全工程师去做对抗。作为一个高效率的逆向分析师, 笔者是忍不了的,所 ...
分类:
移动开发 时间:
2017-05-06 23:08:20
阅读次数:
401
反调试方案: 我们最通常使用的动态工具是IDA, IDA的动态调试端口默认为23946,我们可以通过/pro/net/tcp 查看android 系统所有TCP Socket 启动android_server之后,/proc/net/tcp ,端口号是0x5D8A,十进制为23946 我们可以利用默 ...
分类:
移动开发 时间:
2017-05-03 13:25:37
阅读次数:
279
反调试原理很多时候,我们都需要进行修改修改应用程序的指令,然后重打包运行,重新打包就需要充签名。 利用签名的变化我们用于反调试。反调试实现代码如下:为了更加隐藏,比较函数可能在SO层进行实现,如下, 还可以实现的更隐藏解决方案:通过全局搜索getPackageInfo 等关键字,找到相关逻辑。 然后... ...
分类:
移动开发 时间:
2017-05-02 14:58:01
阅读次数:
161