我想先获取一些指定程序的特征并记录到特征列表文件中。然后在一个监控程序中,安系统钩子,钩子函数里先读入特征文件,再获取当前进程,并比较是否在特征列表中,如果在,则杀掉该进程。问题:用什么做特征?我能想到的,一是从程序磁盘文件下手,二是从程序执行时的进程在内存中的数据下手。不知哪一种可行,易行?(从磁盘文件下手,我试过用文件版本信息里的源文件名,但有的程序(Delphi写的程序或其它)里并没有这个,直接用文件名,一改名就抓不着了)望大家给予指点或提示!

解决方案 »

  1.   

    我也要做一个类似的东西,不过是在LINUX下做的,要改动内核,因为要获取运行程序(进程)的特征就要知道其代码段,不进入内核态是无法获取其他进程的代码段的;从外部最多获得一个进程名,这个特征没有什么用。
    可以选择一些特定代码做特征,就好比查毒程序一样;也可以选择一些操作做特征,当用户执行了这些操作后,我就可以确定其进程号,然后结束它。