From 53ae0bd58a33901eaba47d2656e4495a7f90f428 Mon Sep 17 00:00:00 2001 From: Cool-Y <1072916769@qq.com> Date: Mon, 1 Apr 2019 15:38:49 +0800 Subject: [PATCH] Site updated: 2019-04-01 15:38:40 --- 2019/03/28/逆向工程实验/index.html | 7 +++++-- search.xml | 2 +- sitemap.xml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/2019/03/28/逆向工程实验/index.html b/2019/03/28/逆向工程实验/index.html index 94b2c098..82f526bd 100644 --- a/2019/03/28/逆向工程实验/index.html +++ b/2019/03/28/逆向工程实验/index.html @@ -96,7 +96,7 @@ - + @@ -523,7 +523,10 @@
  • 检测NTGlobalFlag
    1. -
    2. 系统痕迹检测
      通常,我们使用调试工具来分析程序,但这些工具会在系统中驻留一些痕迹。程序通过搜索这种系统的痕迹,来确定你是否试图分析它。例如,查找调试器引用的注册表项。同时,程序也可以查找系统的文件和目录,查找当前内存的痕迹,或者查看当前进程列表,更普遍的做法是通过FindWindows来查找调试器。

      识别调试器的行为

      在逆向工程中,可以使用断点或单步调试来帮助分析,但执行这些操作时,会修改进程中的代码。因此可以使用几种反调试技术探测INT扫描、完整性校验以及时钟检测等几种类型的调试器行为。
    3. +
    4. 系统痕迹检测
      通常,我们使用调试工具来分析程序,但这些工具会在系统中驻留一些痕迹。程序通过搜索这种系统的痕迹,来确定你是否试图分析它。例如,查找调试器引用的注册表项。同时,程序也可以查找系统的文件和目录,查找当前内存的痕迹,或者查看当前进程列表,更普遍的做法是通过FindWindows来查找调试器。
    5. +
    +

    识别调试器的行为

    在逆向工程中,可以使用断点或单步调试来帮助分析,但执行这些操作时,会修改进程中的代码。因此可以使用几种反调试技术探测INT扫描、完整性校验以及时钟检测等几种类型的调试器行为。

    +
    1. INT扫描
      调试器设置断点的基本机制是用软件中断INT 3,机器码为0xCC,临时替换程序中的一条指令。因此可以通过扫描INT 3修改来检测。
    2. 执行代码校验和检查
      与INT扫描目的相同,但仅执行机器码的CRC或MD5校验和检查。
    3. 时钟检测
      被调试时,进程的运行速度大大降低,常用指令有:rdstc QueryPerformanceCounter GetTickCount,有如下两种方式探测时钟:
    4. diff --git a/search.xml b/search.xml index c35c476b..399c2ea0 100644 --- a/search.xml +++ b/search.xml @@ -3,7 +3,7 @@ <![CDATA[逆向工程与软件破解]]> %2F2019%2F03%2F28%2F%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E5%AE%9E%E9%AA%8C%2F - + 二进制 diff --git a/sitemap.xml b/sitemap.xml index 206e3ffd..6ac66528 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,7 +4,7 @@ https://cool-y.github.io/2019/03/28/%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E5%AE%9E%E9%AA%8C/ - 2019-04-01T07:26:01.149Z + 2019-04-01T07:30:54.095Z