软件保护之杀死Crack相关进程

原创 2004年05月12日 18:28:00

软件保护之杀死Crack相关进程

     
             SunHai

   开发工具:Microsoft Visual Studio .NET 2003
   操作系统:Windows XP

 

  序开发三个永恒的主题是:
  一.程序的功能及创意
  二.程序的推广
  三.程序的保护
  
  理论上说,不存在不能被Crack的程序。所谓的防Crack,只是增加Crack的难度而已。

                 用Process类管理进程

  Process 类提供对本地和远程进程的访问并使您能够启动和停止本地系统进程。

  Process 组件提供对正在计算机上运行的进程的访问。用最简短的话来说,进程就是当前运行的应用程序。线程是操作系统向其分配处理器时间的基本单位。线程可执行进程的任何一部分代码,包括当前由另一线程执行的部分。

  对于启动、停止、控制和监视应用程序等任务, Process 组件是很有用的工具。使用 Process 组件,可以获取当前运行的进程的列表,或者启动新的进程。 Process 组件用于访问系统进程。初始化 Process 组件后,可使用该组件来获取有关当前运行的进程的信息。此类信息包括线程集、加载的模块(.dll 和 .exe 文件)和性能信息(如进程当前使用的内存量)。

  如果在系统中用引号声明了一个路径变量,则在启动该位置中的任何进程时,必须完全限定该路径。否则,系统将找不到该路径。例如,如果 c:/mypath 不在您的路径中,而您使用引号添加它( path = %path%;"c:/mypath" ),则在启动 c:/mypath 中的任何进程时,您必须完全限定它们。

  进程组件同时获取有关一组属性的信息。 Process 组件获取有关任一组的一个成员的信息后,它将缓存该组中其他属性的值,并且在您调用 Refresh 方法之前,不获取有关该组中其他成员的新信息。因此,不保证属性值比对 Refresh 方法的最后一次调用更新。组细分与操作系统有关。

  系统进程在系统上由其进程标识符唯一标识。与许多 Windows 资源一样,进程也由其句柄标识,而句柄在计算机上可能不唯一。句柄是表示资源标识符的一般术语。即使进程已退出,操作系统仍保持进程句柄,该句柄通过 Process 组件的 Handle 属性访问。因此,可以获取进程的管理信息,如 ExitCode (通常,或者为零表示成功,或者为非零错误代码)和 ExitTime 。句柄是非常有价值的资源,所以句柄泄漏比内存泄漏危害更大。                   
   


                 自动停止Crack有关进程

     我们可用Process 类检测进程,发现Crack有关进程,即作出相应措施。比如停止Crack相关进程,退出软件,给出警告,把正式版变为试用版……(你可不要告诉我你会调用Format D:)。

  可通过两种方法利用 Process 组件停止进程。使用哪种方法取决于所停止的进程的类型:

  • 如果进程有图形用户界面,则调用 CloseMainWindow 方法。该方法向进程的主窗口发送一个关闭请求,其行为与从用户界面中选择“关闭”命令相同。使用该方法使目标程序有机会在清除操作中提示用户保存任何没有保存的数据。
  • 如果进程没有用户界面,则调用 Kill 方法。 警告 调用 Kill 方法将在不提示保存更改的数据的情况下,立即停止进程。任何没有保存的数据将丢失。

  我把Crack相关进程分为四类:
   反编译
   跟踪调试
   监视
   其他


   只有真正的Crack高手才真正懂得如何防Crack。我们首先要知道常见的Crack相关软件及其进程名,特别是.Net下的Crack相关软件。我并不懂Crack,这里只列出我所掌握的一些情况,希望大家一起来补充完善。

  这里主要用到 Process.MainWindowTitle 属性获取进程的主窗口标题。

    [Visual Basic] Public ReadOnly Property MainWindowTitle As String   
  
  仅当进程有图形界面时,该进程才具有与其关联的主窗口。如果关联进程没有主窗口(因而 MainWindowHandle 为零),则 MainWindowTitle 为空字符串 ("")。如果刚启动了一个进程,并且想使用其主窗口标题,则请考虑使用 WaitForInputIdle 方法让进程完成启动,从而确保创建了主窗口句柄。否则,系统将引发异常。

  Windows 98 平台说明: 如果在启动进程时 ProcessStartInfo.UseShellExecute 设置为 true ,则此属性在此平台上不可用。

Private Sub close()

  Dim pProcess() As Process 
  pProcess = Process.GetProcesses() '获取当前所有进程
  Dim All As Integer
  Dim myArray() As String = _
  {"Assembly View", "Anakrino", "Borg", "PEBrowse", "ProcessDasm", "VirtualCode", "Dasm", "IDA", _
   "FrogsICE", "DriverWorkbench", "OllyDbg", "twx", "TRW", "SoftICE", "NTICE", "SICE", _
   "API Monitor", "ApiHooks", "APIS", "API-Log", "APISpy", "ExeSpy", "File Monitor", "RegistryMonitor",    "MemoryMonitor", "Regmon", "Regshot", "RegSnap", "RegSpy", "Res Spy", _
   "crack", "破解", "sn", "SN"}

    For All = 0 To pProcess.Length() - 1
      For Kill As Integer = 0 To myArray.Length - 1
        If InStr(pProcess(All).MainWindowTitle, myArray(Kill).ToString) Then
          pProcess(All).Kill()       '杀死Crack相关进程
          End                '退出软件。这里你还可以加上其他措施
        'MsgBox(pProcess(All).MainWindowTitle)
        End If
      Next
    Next

  

  

                
    

                               2004年5月11日

我的QQ:  26624998
我的网站:
http://blog.csdn.net/2066/

软件保护之杀死Crack相关进程

 软件保护之杀死Crack相关进程                  屠恩海(SunHai)    开发工具:Microsoft Visual Studio .NET 2003   操作系统:Wind...
  • yiruoyun
  • yiruoyun
  • 2004年10月21日 23:03
  • 785

linux学习笔记(七)linux下杀死tomcat进程,关闭tomcat

首先查找tomcat进程id ps -ef|grep java 可能会查出很多例如: root      1974     1  0 17:47 ?        00:00:03 ../j...
  • hijiankang
  • hijiankang
  • 2011年08月27日 18:31
  • 2948

一条命令杀死指定名字的进程

ps -fe|grep mini_http_server | awk '!/grep/ {print $2}' | sed 's/^/kill -2 /' |sh
  • ligengyong2010
  • ligengyong2010
  • 2015年07月28日 10:21
  • 588

如何干掉360杀毒的进程

近日无事研究怎么干掉360杀毒,呵呵,真的纯粹是为了兴趣 普通的任务管理器里,无法干掉360杀毒的进程,OpenProcess()操作提示 “拒绝访问”,看来肯定是用驱动做了保护程序。 ...
  • jackyvan
  • jackyvan
  • 2010年07月22日 10:59
  • 3281

杀死tomcat 进程

cd /java/tomcat 执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.out ...
  • pdh123456
  • pdh123456
  • 2015年02月06日 12:59
  • 5365

linux一次杀死多个进程

ps -ef |grep hello |awk '{print $2}'|xargs kill -9
  • u010837612
  • u010837612
  • 2016年09月07日 18:41
  • 757

如何保证进程不被杀死的几个办法

前言 开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家…虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就...
  • lixuce1234
  • lixuce1234
  • 2017年06月05日 13:17
  • 495

java 杀死指定进程

import java.io.BufferedReader; import java.io.InputStreamReader; public class Test {            ...
  • xwq911
  • xwq911
  • 2016年04月13日 15:05
  • 406

Win7系统激活工具之小马工具-您关闭了软件保护服务,请在服务中开启后重新激活

使用小马工具激活
  • hezikui1987
  • hezikui1987
  • 2014年06月02日 17:13
  • 42500

如何杀死含有redis的所有进程

如何杀死含有redis的所有进程 假设此类进程有近百条。 方法1: 此方法是现在常用的,也会用的。 ps -ef|grep redis kill -9 pid //好吧,一百多个进程,你...
  • onedaycbfly
  • onedaycbfly
  • 2017年09月12日 23:47
  • 996
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件保护之杀死Crack相关进程
举报原因:
原因补充:

(最多只允许输入30个字)