前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

防止用DeDe软件反编译delphi程序--童继龙(Drate)-信息化随笔 正在加载数据... 防止用DeDe软件反编译delphi程序 [ 2010-1-7 14:05:00 | By: 童继龙 ] 这里有一篇防止用DeDe软件反编译delphi程序~用『』里的是我的注释,其余的是原创作~ Program Project1; Uses  Forms,  windows,  sysutils,  Unit1 In 'Unit1.pas' {Form1},  Unit2 In 'Unit2.pas' {Form2}; RegisterServiceProcess(dwProcessId, dwType: dword): Integer; Stdcall;  External 'kernel32.dll'{$R *.RES}Var  HMUTEX: HWND;  RET: INTEGER;  hCurrentWindow: HWnd; //反编译要的  szText: Array[0..254] Of char; //反编译要的Begin  Application.Initialize;  APPLICATION.TITLE := 'delphi葵花宝典 设计:张国鹏';  RegisterServiceProcess(GetCurrentProcessID, 1); //让程序在Ctl+Alt+Del中消失. 『我们可以看到作者用RegisterServiceProcess把程序注册成了WINDOWS服务程序~』 『但大家都知道这个函数包含在kernel32里,而且只在98/ME中管用~』 『所以并不要把这项作为反编译的关键,可以说可有可无~』   //防止反编译开始  hCurrentWindow := GetWindow(APPLICATION.Handle, GW_HWNDFIRST); 『由上面知道作者想知道自己的程序窗口是不是最顶级的窗口』   While hCurrentWindow <> 0 Do  Begin    If GetWindowText(hCurrentWindow, @szText, 255) > 0 Then      If pos('DeDe', StrPas(@szText)) <> 0 Then 『如果不是,则获取现在顶机窗体的标题,在做判断是不是"DeDe"』       Begin        APPLICATION.MESSAGEBOX('想反编译我?没那么容易!',          '哈哈......你这家伙!', mb_ok);        //closewindow(hCurrentWindow);//使该程序窗口最小化        enablewindow(hCurrentWindow, false);        //使该程序的窗口不能被激活 如果能获取该程序的线程ID号,则可以使该程序又不能使用,又不能关闭,酷吧? 『以上这两句是对DEDE的处理~』 『closewindow:为把制定的窗口最小化,但窗口不会从内存中清除~』 『enablewindow:指定的窗口里允许/禁止所鼠标和键盘的输入,false肯定是不能了~』         halt;      End;    hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT);  End;  //防止反编译结束  //防止程序的二次运行  HMUTEX := CREATEMUTEX(Nil, FALSE, 'delphi葵花宝典 设计:张国鹏');  RET := GETLASTERROR;  If RET <> ERROR_ALREADY_EXISTS Then  Begin    Application.CreateForm(TForm1, Form1);    // Application.CreateForm(TForm2, Form2);    Application.Run;  End  Else    APPLICATION.MESSAGEBOX('程序已经运行!', '提示', mb_ok);  releasemutex(hmutex); End. 『谈谈我的看法,这种方法也许是一种简单的防止反编译的做法,但由于过于简单了,』『到现在就不是很有用了,也许可以对付一些初学的朋友,我们可以看到查找窗口的名』『字为"DEDE"也就是说它只是一个字符串,在程序中没有很重要的地位,也就是不耽误』『程序的运行,我们可以借助一些软件把程序中所有的"DEDE"改为别的字符,呵呵,这』『程序可是没有逻辑思维的,改后可就对"DEDE"没有办法了^_^~~~~~~』 阅读全文 | 回复(0) | 引用通告 | 编辑 标签:开发语言 上一篇:远程线程嵌入技术 下一篇:硬盘结构简介 发表评论: 昵称: 密码: 主页: 标题: 正在加载数据... 正在加载数据... 时 间 记 忆 正在加载数据... 最 新 评 论 正在加载数据... 专 题 分 类 正在加载数据... 最 新 日 志 正在加载数据... 最 新 留 言 正在加载数据... 搜 索 正在加载数据... 用 户 登 录 正在加载数据... 友 情 连 接 博 客 信 息 正在加载数据...