♂成成の 发表于 2016-8-20 14:47

易语言软件反调试六种试方法

搬运工而已...不知道有没有人发过....没有的话请收下我的膝盖
给点爱心行不行
=======================================================================================
[*]

[*]
[*].版本 2
[*]
[*].子程序 第一法_内存分配反调试, 逻辑型
[*].参数 最小值, 整数型
[*].参数 最大值, 整数型
[*].局部变量 min, 整数型
[*].局部变量 max, 整数型
[*]
[*]GetProcessWorkingSetSize (GetCurrentProcess (), min, max)
[*]' 输出调试文本 (min, max)
[*]返回 (min ≠ 最小值 或 max ≠ 最大值)
[*]
[*]
[*].子程序 第二法_子窗口反调试
[*]
[*]EnumChildWindows (GetDesktopWindow (), 到整数 (&子窗口监控子程序), 0)
[*]
[*]
[*].子程序 第三法_时间差反调试, 逻辑型
[*].局部变量 ctt, FILETIME
[*].局部变量 ett, FILETIME
[*].局部变量 ktt, FILETIME
[*].局部变量 utt, FILETIME
[*].局部变量 stt, SystemTime
[*].局部变量 ntt, SystemTime
[*].局部变量 qtt, 双精度小数型
[*]
[*]GetLocalTime (ntt)
[*]GetProcessTimes (GetCurrentProcess (), ctt, ett, ktt, utt)
[*]FileTimeToSystemTime (ctt, stt)
[*]qtt = 到数值 (ntt.wSecond) × 1000 + ntt.wMilliseconds - 到数值 (stt.wSecond) × 1000 - stt.wMilliseconds
[*]返回 (qtt > 300 或 qtt < 0)
[*]
[*]
[*].子程序 第四法_启动信息反调试, 逻辑型
[*].局部变量 启动信息, STARTUPINFO
[*]
[*]GetStartupInfo (启动信息)
[*]返回 (启动信息.dwX ≠ 0 或 启动信息.dwY ≠ 0 或 启动信息.dwXCountChars ≠ 0 或 启动信息.dwYCountChars ≠ 0 或 启动信息.dwFillAttribute ≠ 0 或 启动信息.dwXSize ≠ 0 或 启动信息.dwYSize ≠ 0)
[*]
[*]
[*].子程序 第五法_时间间隔反调试, 逻辑型
[*]
[*]返回 (GetTickCount () - GetTickCount () ≠ 0)
[*]
[*]
[*].子程序 第六法_检测调试器反调试, 逻辑型
[*]
[*].如果真 (是否为调试版 ())
[*]    返回 (假)
[*].如果真结束
[*]返回 (IsDebuggerPresent ())
[*]
[*]
[*].子程序 子窗口监控子程序, 整数型
[*].参数 hwnd, 整数型
[*].参数 lParam, 整数型
[*].局部变量 X, 整数型
[*].局部变量 sSave, 文本型
[*]
[*]sSave = 取空白文本 (GetWindowTextLength (hwnd) + 1)
[*]GetWindowText (hwnd, sSave, 取文本长度 (sSave))
[*]sSave = 删首尾空 (取文本左边 (sSave, 取文本长度 (sSave) - 1))
[*].计次循环首 (取文本长度 (sSave) - 2, X)
[*]    .如果真 (到小写 (取文本中间 (sSave, X, 3)) = “cpu”)
[*]      信息框 (“子窗口监控” + #发现, 0, )
[*]      返回 (1)
[*]    .如果真结束
[*]
[*].计次循环尾 ()
[*].计次循环首 (取文本长度 (sSave) - 4, X)
[*]    .如果真 (到小写 (取文本中间 (sSave, X, 5)) = “smart”)
[*]      信息框 (“子窗口监控” + #发现, 0, )
[*]      返回 (1)
[*]    .如果真结束
[*]
[*].计次循环尾 ()
[*]返回 (1)
[*]

xiaohong 发表于 2016-8-27 06:16

原理是啥

KaQqi 发表于 2016-8-30 11:46

这些代码不是万能的。两次shift+f9就行。再说我们静态调试不就得了,用不着动态

laoxing 发表于 2016-8-20 15:05

看不懂- -    好吧我小白一枚   留给有需要的人

福仔 发表于 2016-8-20 15:14

看起来好乱.....没看懂

zcm2005 发表于 2016-8-20 15:21

讲讲原理呗

我来看看看 发表于 2016-8-20 15:24

鼓励转贴优秀软件安全工具和文档!

lan2602144404 发表于 2016-8-20 15:24

收藏了,谢谢分享

sdsd8402 发表于 2016-8-20 16:54

lz能不能讲下原理,看都看不懂诶

憋哥 发表于 2016-8-20 17:56

原理是啥

逆天昊龙 发表于 2016-8-20 18:01

谢谢分享
页: [1] 2
查看完整版本: 易语言软件反调试六种试方法