对抗某反调试CM2

【文章标题】: 全新反调试CM

【文章作者】: 半斤八两

【软件名称】: 全新的反调试第1季(无网无壳版).exe

【下载地址】: https://bbs.pediy.com/thread-187142.htm

【使用工具】: IDA、OD、资源工具

【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

--------------------------------------------------------------------------------

【版权声明】: 本文原创于小生我怕怕, 转载请注明作者并保持文章的完整, 谢谢!

 

                                                       2018年11月07日 14:15:52

 

作者需求:

一种全新的反调试思路.

程序主要参考了 tmd和超时代 的思路.

 

 

程序运行起来后.点那个按钮,会触发 MessageBoxA  断点.

如果你能在ollydbg中断下来, 那么,你就搞掂了,如果你搞掂了,记得分离一下  :)

 

 

 

 

 

 

 

 

 

                               By 半斤八兩

                                2014.04.28

 

0、参考资料、预备知识

1、常见进程注入的实现及内存dump分析——反射式DLL注入(下)

网址:来自 <https://bbs.pediy.com/thread-224241.htm>

2、傀儡进程技术实现

网址:来自 <https://www.52pojie.cn/thread-501486-1-1.html>

3、在VC中使用自定义资源,FindResource,LoadResource,LockResource

网址:来自 <https://www.cnblogs.com/gakusei/articles/1352922.html>

4、调试器设计(2)

网站:来自 <https://bbs.pediy.com/thread-107838.htm>

 

 

1、准备工作收集信息

1、软件运行界面

2、资源工具

获取到的信息:

1、里面藏着一个PE文件

2、Dialog里面并没有按钮的选项

3、我们将PE文件导出来为123.exe

3、查看导出来的PE文件信息

1、双击运行是显示错误的

2、我们发现导出来的PE文件里面就有我们需要的按钮

 

2、IDA、OD结合分析

首先想到的是应该先下MessageBoxA、MessageBoxW(当然是没用的)

1、软件操作都是双击完按钮之后触发的,那么我们该如何定位

2、OD、IDA分析上下文

通过F5跟OD大概获取到的信息:

1、程序释放出自身的PE文件

2、sub_401BB0看参数,应该是把PE文件缓冲区跟大小传进去,然后返回个PID

3、附加进程、恢复线程

3、分析sub_401BB0函数

3、1:首先分析sub_401570函数

获取到的信息:

1、拷贝PE基本信息、区段信息

2、程序是自己实现了LoadLibrary函数

 

3、2:分析sub_401990函数

总结:

进行傀儡进程操作

1、分析sub_4018A0函数

PCHunter工具可以看到这个傀儡进程

2、分析sub_401830函数

3、后续都是傀儡进程操作了

 

4、sub_401F10函数调试框架分析

4、1:sub_401D70函数分析

我们在这两处都下断

结合上下文逻辑:

1、B程序无法直接打开

2、A程序又以附加方式打开B,那么就说明A修复了B的BUG

3、我们发现修改上下文的就只有两处,那么我们就在这两处都下断点

代码中断在下面的Context.Eax = sub_401D60(Context.Eax, DebugEvent.dwThreadId);这一句上

那么我们只要知道代码中断的IP地址即可

我们可以通过CONTEXT结构(VS按F12)往上翻

OD查看

出错代码地址:

40145B

 

5、使用CE、IDA等工具查看B进程的内存状态

发现这里面有一个CC断点,导致代码错误的

第一步先把INT改成NOP

第二步有两种选择

1、这两句NOP掉

00401468  |.  33C1          xor eax,ecx

0040146A  |.  35 76983412   xor eax,0x12349876

2、要么就学A程序多加几句汇编代码,再异或回去

00401444      33C1          xor eax,ecx

00401446      35 76983412   xor eax,0x12349876

0040144B      5F            pop edi

0040144C      C2 0400       retn 0x4

0040144F      90            nop

00401450      57            push edi

00401451  |.  BF D80E1400   mov edi,0x140ED8

00401456  |.  8B4424 08     mov eax,dword ptr ss:[esp+0x8]

0040145A    ^ EB E8         jmp short 123.00401444

0040145C      90            nop

0040145D      90            nop

0040145E      90            nop

 

6、完结撒花

猜你喜欢

转载自blog.csdn.net/u014738665/article/details/84575006
今日推荐