让delphi程序体无完肤!--太厉害了!悲伤中...(146分)

  • 主题发起人 主题发起人 xtok
  • 开始时间 开始时间
X

xtok

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi做的第一个小程序,加密时连学再做用了三天时间,当时乐观地估计:破解
版出来至少也得一周以后吧!三天后放眼一看:满大街都是破解版!庆幸的是这些破解
版采用的是爆破手段,没有发现注册机。
于是抽出大约一周的时间了解了一下加密加壳方面的资料,ASPack,Armadillo等所有
能找到的软件逐个测试,然后从网上找了个DEDE软件反编译,DEDE告诉我:这不是
delphi编的东东。哈哈,笨蛋!破解者吹得天花乱坠的DEDE也不过如此而已。
今天无意中在网上发现一个介绍DEDE的文章,一看版本好象升级了,于是搜索了一下
,网上已有3.5版的下载,再看我测试用的那个版本--原来是一个老掉牙的版本!难道?
...下载了一个3.2版本的DEDE,没加壳的被扒光衣服!加了壳的被脱去了上衣!...再试
,又从网上随便找了个脱ASPack壳的只有十多K的软件,把自己所做的程序逐个反编
译--全部给脱光了!
脱了个精光并不是什么大不了的事情,可这不是在浴池里啊:(
脱个精光也没什么大不了,可如果是被扒光那该是什么滋味?!
软件被破解是很正常的事,但如果其他软件的破解版千呼万唤始出来且犹抱琵琶半遮面
,而你一登台便被别人扒个精光,你还敢轻易露面吗?!水平之间相差太多也就太没面
子了吧!
不甘心,于是找了一个资深软件公司的软件--一所名牌大学所属公司,据称其软件经过
多道高科技加密手段。用同样的软件来做了个测试,我心情有所好转--同样一觅无余!
--别骂我幸灾乐祸,换成你遇到这样的事情没准你头上会起个大包--在天花板上撞的。
我没时间也没兴趣去研究破解,但对破解这玩艺基本上是个白痴的我居然可以在两个小
时内用了两个小软件把delphi做的程序脱个精光。如果是遇到有时间有兴趣去研究破解
的不同志呢?如果遇到有一定经验的破解者呢?...
软件被破解再所难免!但在别人扒自己衣服的时候总不能逆来顺受吧,打不过他,至少
也得让他满脸开花吧。
呵呵,看来我真的要抽出一定的时间去研究一下如何加密了,哪天你遇到一个脸开花的
人,呵呵,说不定就是我打的:)
 
我一般做企业的独特的软件,就是破解了也没有用,应该那是针对那个企业写的.
我之所以没有开发共享软件,是应该中国的解密工夫实在是太高了.
而且没人愿意买正版.
 
我目前也是如此考虑,但如果根本不加密的话也不太现实。
给你的软件脱了壳,你的程序设计框架基本上一觅无余,而用delphi做的程序
贵在思路。
 
破解高手N多
 
呵呵。正所谓“魔高一尺,道高一丈”啊。没必要在这方面太下功夫了。如果真有更多的人破解你的程序,这说明你的程序还是对他们有吸引力的,这也是好事嘛。呵
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
楼主语语真诙谐!!!!
 
我是文科出身,去年5月份才接触delphi,还请各位多多指教:)
 
防止用DeDe软件反编译delphi程序

张国鹏
防止用DeDe软件反编译delphi程序 OK
Program Project1;
Uses
  Forms,
  windows,
  sysutils,
  Unit1 In 'Unit1.pas' {Form1},
  Unit2 In 'Unit2.pas' {Form2};
Function 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中消失.
  //防止反编译开始
  hCurrentWindow := GetWindow(APPLICATION.Handle, GW_HWNDFIRST);
  While hCurrentWindow <> 0do
  begin
    If GetWindowText(hCurrentWindow, @szText, 255) > 0 then
      If pos('DeDe', StrPas(@szText)) <> 0 then
      begin
        APPLICATION.MESSAGEBOX('想反编译我?没那么容易!',
          '哈哈......你这家伙!', mb_ok);
        //closewindow(hCurrentWindow);//使该程序窗口最小化
        enablewindow(hCurrentWindow, false);
          //使该程序的窗口不能被激活 如果能获取该程序的线程ID号,则可以使该程序又不能使用,又不能关闭,酷吧?
        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.
 
晕,楼上这种办法防止反编译也太弱了些吧?
 
国情使然
请楼主节哀顺便!
 
多人接受答案了。
 
后退
顶部