如何监控一个程序(Delphi写的)读了哪个(些)硬件信息而生成这台机器的硬件识别码?

如何监控一个程序(Delphi写的)读了哪个(些)硬件信息而生成这台机器的硬件识别码?,第1张

你想做破解啊?

没办法监控的,就算你监控到了又能怎么样?

比如你监控到是读取网卡MAC和硬盘物理序列号

硬件识别码是根据这两样生成的,算法由写的人来定,所以你不可能知道的

DELPHI的程序,如果没有加壳,可以用DEDE反编译的

大部分破解都是将判断语句剔除或修改

比如

if sn=getid then

采集的注册码正确,继续运行

else

begin

showmessage('未注册。。。。。。。')

退出程序

end

将这段剔除,或将=修改为<>都可以OK的,破解方法多种多样,防破解的也多种多样

想学破解,可以去看雪论坛看看,那里这方面高手N多

你需要先进行监视。SHNotify_Register(self.Handle)//注册Shell监视

procedure TForm1.WMShellReg(var Message: TMessage)

var

strPath1, strPath2: string

charPath: array[0..259] of char

pidlItem: PSHNOTIFYSTRUCT

begin

pidlItem := PSHNOTIFYSTRUCT(Message.wParam)

//获得系统消息相关得路径

SHGetPathFromIDList(pidlItem.dwItem1, charPath)

strPath1 := charPath

SHGetPathFromIDList(pidlItem.dwItem2, charPath)

strPath2 := charPath

Memo1.Lines.Add(SHEvEntName(strPath1, strPath2, Message.lParam) + chr(13) + chr(10))

end

后台监控软件 为了达到隐蔽监控的目的 应该满足正常运行时 不显示在任务栏上 在按Ctrl+Alt+Del出现的任务列表中也不显示 管理员可以通过热键调出隐藏的运行界面 要作到这些 必须把当前进程变为一个系统服务 并且定义全局热键

一 把当前进程变为一个系统服务 目的是在任务列表中把程序隐藏起来 调用API函数RegisterServiceProcess实现

二 定义全局热键(本例中定义热键Ctrl+Del+R) 步骤 定义捕获Windows消息WM_HOTKEY的钩子函数 即 procedure WMHotKey(var Msg : MHotKey)message WM_HOTKEY 向Windows加入一个全局原子 Myhotkey: GlobalAddAtom( MyHotkey ) 并保留其句柄 向Windows登记热键 调用API函数RegisterHotKey实现

三 设计界面和源程序 unit Unit interface uses Windows Messages Forms Dialogs Classes Controls StdCtrlstype TForm = class(TForm) Button : TButtonButton : TButtonprocedure FormCreate(Sender: TObject)procedure Button Click(Sender: TObject)procedure Button Click(Sender: TObject)procedure FormClose(Sender: TObjectvar Action: TCloseAction)private {热键标识ID} id: Integerprocedure WMHotKey(var Msg : MHotKey)message WM_HOTKEY{ Privat Declarations} public { Public Declarations} endvar Form : TForm implementation const RSP_SIMPLE_SERVICE= function RegisterServiceProcess (dwProcessID dwType: DWord) : DWordstdcallexternal KERNEL DLL {$R * DFM}

{捕获热键消息} procedure TForm WMHotKey (var Msg : MHotKey)begin if msg HotKey = id then ShowMessage( Ctrl+Alt+R键被按下! )form Visible :=trueend

procedure TForm FormCreate(Sender: TObject)Const {ALT CTRL和R键的虚拟键值} MOD_ALT = MOD_CONTROL = VK_R = begin {首先判断程序是否已经运行} if GlobalFindAtom( MyHotkey ) = then begin {注册全局热键Ctrl + Alt + R} id:=GlobalAddAtom( MyHotkey )RegisterHotKey(handle id MOD_CONTROL+MOD_Alt VK_R)end else haltend

{把当前进程变为一个系统服务 从而在任务列表中把程序隐藏起来} procedure TForm Button Click(Sender: TObject)begin RegisterServiceProcess(GetCurrentProcessID RSP_SIMPLE_SERVICE)form Hideend

procedure TForm Button Click(Sender: TObject)begin closeend{退出时释放全局热键} procedure TForm FormClose(Sender: TObjectvar Action: TCloseAction)begin UnRegisterHotKey(handle id)GlobalDeleteAtom(id)endend

lishixinzhi/Article/program/Delphi/201311/25039


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7771045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存