對于Delphi程序,通常我們可以通過DeDe來查找關鍵點。即使使用了Anti-DeDe技術(例如使用黑夜彩虹的Anti_DeDe v0.1,
見http://www.unpack.cn/viewthread.php?tid=14650&highlight=%2B%BA%DA%D2%B9%B2%CA%BA%E7 處理過程序),還是可以
通過資源編輯工具+16進制編輯工具來查找關鍵點(詳見《加密與解密》Ⅱ第7章)
那么假若我們不在Delphi生成的事件過程中寫代碼,而是自己處理消息呢?
我做了一個實驗,在Delphi中新建一個工程
代碼如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
private
{ Private declarations }
procedure OwnProcess(var Msg:TMessage);Message WM_COMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.OwnProcess(var Msg:TMessage);
begin
if (Msg.LParam=Button1.Handle)
then
MessageBox(Form1.Handle,'O,ye!','Test',MB_OK);
end;
end.
我在窗體上放了兩個Button,但是只響應一個Button被點擊
編譯出程序之后,用資源編輯工具查看,沒有OnClick事件了(這個當然拉!)
再用DeDe反編譯查看,同樣找不到任何關鍵信息,如下圖
shot.JPG下載此附件需要消耗2Kx,下載中會自動扣除。當然,要找到這個程序的關鍵點很容易,因為有字符參考和對話框,若沒有這些呢?
希望大家能想出Anti這一小技巧的技巧(^_^)
這個程序見這里
Project1.rar下載此附件需要消耗2Kx,下載中會自動扣除。