1、在当前的win中,程序A被系统加载并运行后,会有一部分基本上是固定不变的,这主要是代码区,还有一部分是根据需要不停地变的,这是变量区,及其它缓冲区。
2、如果你想的是让代码区不被改动,这个要求很容易达到,因为它是固定的,你只要把这个区域的数据时行一下MD5码的计算,或是使用更快速的某种方法进行一次校验便可。但是基本上你要进行一次完全校验,占用的时间一定是不短的(至少1秒以上),这种做法能保护程序的应有功能不被乱改,但不能保证变量不变乱改。此外相当的低效,很少有人这么做。
3、监视程序的启动,一旦启动把自己的dll hook进去 并拦截teProcessMemory API 看起来是有理的,但存在这样几个问题,首先这种程序一定需要管理员权下才能正常运行,其次,程序X可不可以先对付程序B,再对付程序A呢? 另外,程序B一但起动,某些正常的程序也可能受影响,比如金山快译等。
4、最常见的做法是针对程序X的行为对关键部分的代码进行监控,这样监控的范围就能大大地减少,可以达到0.01秒内完成任务,使用户不会感觉到什么,但这样做的前提是知道程序X的行为具体是什么。
5、其它的通用的做法是针对程序X的特点在内存现运行的程序中进行查找,一但发现进行处理。
6、以上两个方法是最常用的做法。
7、破解与反破解始终是一对死冤家,在当前来说,似乎没有好的解决方法,只能说设法让破解的难度加大!
PS:“程序运行后如何md5效验,这不开玩笑吗?”不是开玩笑,MD5码校验并不专指对一个未运行的文件,MD5码校验是一种算法。将内存中的数据抓出来进行MD5码计算也并不是不可以的,当然,上面说过了,这种计算对机器要求过高,在实时运行中是不科学的,也是不可取的。
monitor.exe是Microsoft服务器 *** 作系统硬件监视服务相关程序进程文件: monitor or monitor.exe
进程名称: Microsoft Monitor
进程类别:存在安全风险的进程
英文描述:
monitor.exe is a service which is a part of the Microsoft Server operating system, and is specifically related to monitoring hardware components for performance bottlenecks.
中文参考:
monitor.exe是Microsoft服务器 *** 作系统硬件监视服务相关程序。
出品者:Microsoft Corp.
属于:Microsoft Windows Server Suites
系统进程:Yes
后台程序:Yes
网络相关:No
常见错误:N/A
内存使用:N/A
安全等级 (0-5): 0
间谍软件:No
广告软件:No
病毒:No
木马:No
On Error Resume NextDim FSO,WS,File,C,H,WMI,Col,Pro,Exist,Fn
Set FSO=WScript.CreateObject("Scripting.FileSystemObject")
Set WS=WScript.CreateObject("WScript.Shell")
Set WMI=GetObject("winmgmts:\\.\root\cimv2")
File="C:\shuijin\xlshuijing.exe"
'程序名
C=Chr(34)
H=vbCrLf
If FSO.FileExists(File)<>True Then subErro
Fn=FSO.GetFile(File).Name
Do
Set Col=WMI.ExecQuery("Select * From Win32_Process Where Name='" & Fn & "'")
Exist=False
For Each Pro In Col
Exist=True
Next
If Exist<>True Then
WS.Run "taskkill.exe /f /im ""firefox.exe"+C,0,True
WS.Run C+File+C,1
End If
Loop
Private Sub subErro()
MsgBox "您指定的文件"+H+File+H+"不存在,无法进行监视!",16,"错误"
WScript.Quit
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)