-
-
[原创]自己动手写”Hshield”:第一章:立即动手写一个最让人看不起的”Hshield
-
发表于:
2010-5-19 13:42
8744
-
[原创]自己动手写”Hshield”:第一章:立即动手写一个最让人看不起的”Hshield
自己动手写”Hshield”保护软件
第一章:立即动手写一个最让人看不起的”Hshield”
千里之行始于足下.
---古代人说的
1,1, 准备工作.
出于写程序,准备工作就跑不开硬件,软件这两方面。我们来看一下:
1,硬件
。一台计算机(Windows操作系统)
2,软件
。安装正版编程软件Microsoft Visual C++ 6.0(若是中国人可以安装翻版的)
。随便一个没anti-debug .的调试器. (若没,可使用本人在附件中“赠送”的OD)
1,2. 1分钟完成的”Hshield”
你相信不相信,一个”Hshield”关键只要 7 句话 ,请看。
代码1-1 \chapter\a\HideDll\HideDll.cpp
我们的最让人看不起眼的”Hshield”核心代码
证明其有Hshield功能的步骤:
1,先随意打开一个标题为”Test”的被保护进程(若无者,有空者可自制,但我已把这个放在源码Test)
图1-1 :Test 作为测试程序
图1-2: 用冰丸查看Test线程模块
用OD调试. 正常附加之后. 再F9运行.程序是绝无反应. (在tool里边有od.exe)
(嘻嘻,因为它还没有 我们的”Hshield”保护)
图1-3: 用OD调试Test 无反应
2,同样.我们先打开程序 Test
这次先打开launcher.exe –向Test发射.
图1-4 :发射程序launcher
成功保护后会这样的提示:
图 1-5: Launcher成功向Test加载我们的”Hshield”
(可以把launcher.exe关闭)
图 1-6: 用冰丸查看被发射后的Test线程模块
之后用OD附加,F9运行程序.你还会显然发现其中的变化
图1-5:OD调试Test被检测发现
看.我们的“Hshield”就是这么牛X. 一个待启动线程DLL,一个发射台..然我还是自已表达太复杂了.
还是把问题用另一种方式表达.会简单些
1.3 思路整理;
图1-6: 各程序之间的关系
此刻从整体而言 “Hshield”最需要思考的是: HideDll.dll .它的代码强度决定着整个”Hshield”的反调试强度.
读者可以通过 附加的源码. 任意增加检测调试器的方法. 组成自已特色的”Hshield”
(发射台,Test普通程序是次支,可以管可不管.).
1,4理解与扩展.
如果对”Hshield”所用的技术.
1,创建远程线程.
2,检测调试器.
对远程线程不熟可以读读<<Window高级编程指南>> --第18章 打开进程边界
看看出<<Cracking, The Anti.>>可以检测调试器.解惑..
////////后记//////////
第一次发文.才发现写文是件很累很累的事..
明明做起来是很简单的事情.. 如果要用文字表达.则是很复杂的事.
资料引用说明:
反调试:
1、<<脱壳的艺术>> hawking
2、<<windows anti-debugger reference>> Angeljyt
3、http://bbs.pediy.com
4、<<软件加密技术内幕>> 看雪学院
5、<<ANTI-UNPACKER TRICKS>> Peter Ferrie
6, <<Cracking, The Anti.>>
国内也已经有脱壳大牛 shellwolf 编写“反调试技巧总结-原理和实现“作整体总结
编程资料:<<Window高级编程指南>> --第18章 打开进程边界
Jeffrey Richter[美] 著
(网上皆其有下载)
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课