首页
社区
课程
招聘
[推荐]unUnpackme
发表于: 2005-9-5 15:59 5717

[推荐]unUnpackme

2005-9-5 15:59
5717
文件采用aspack加壳,具有自效检,脱壳后如文件SIZE变化,程序会自动删除.
you can try it附件:unpackme.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 296
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
???很简单?
附件:try.rar
2005-9-5 21:13
0
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
3
好象没有楼主说的自效检,脱壳后可以运行,莫非是运行一段时间不能够运行了
2005-9-6 12:32
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是具有自效检,脱壳后如文件SIZE变化,程序会自动删除.解除很简单的,可以研究一下它的实现办法!
2005-9-7 17:48
0
雪    币: 217
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
源代码如下:
unit Unit1;
interface
uses
  Windows, StdCtrls, Controls, SysUtils, Variants, Classes, Graphics, Forms,
  Dialogs, ComCtrls, StrUtils, dcInternal, dcFileInfo;
type
  TForm1 = class(TForm)
    edt1: TEdit;
    edt2: TEdit;
    btn1: TButton;
    btn2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    dcFileInfo1: TdcFileInfo;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    function GetHex(const aStr: string): string;
    function FormatHexDisp(const asHex: string): string;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}

function TForm1.FormatHexDisp(const asHex: string): string;
begin
  Result := asHex;
  Result := Trim(Result);
end;

function TForm1.GetHex(const aStr: string): string;
var
  i: Integer;
begin
  for i := 1 to Length(aStr) do
Result := Result + Format('%.2x', [Ord(aStr[i])]);
end;

procedure DeleteMe;
var
  BatchFile: TextFile;
  BatchFileName: string;
  ProcessInfo: TProcessInformation;
  StartUpInfo: TStartupInfo;
begin
  BatchFileName := ExtractFilePath(ParamStr(0)) + '_deleteme.bat';
  AssignFile(BatchFile, BatchFileName);
  Rewrite(BatchFile);

  Writeln(BatchFile, ':try');
  Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
  Writeln(BatchFile,
    'if exist "' + ParamStr(0) + '"' + ' goto try');
  Writeln(BatchFile, 'del %0');
  CloseFile(BatchFile);

  FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);
  StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartUpInfo.wShowWindow := SW_HIDE;
  if CreateProcess(nil, PChar(BatchFileName), nil, nil,
    False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,
    ProcessInfo) then
  begin
    CloseHandle(ProcessInfo.hThread);
    CloseHandle(ProcessInfo.hProcess);
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  tmp: string;
  Name: string;
begin
  Name := Edt1.Text;
  if Length(Name) < 4 then
  begin
    Application.MessageBox('注册名不能少于4个字符,请重新输入注册名!', '提示',
      MB_OK + MB_ICONINFORMATION);
    Edt1.SetFocus;
  end
  else
  begin
    tmp := ReverseString(FormatHexDisp(GetHex(name)));
    Edt2.Text := 'mem4-' + LeftStr(tmp, 4) + '5erpe-' + MidStr(tmp, 5, 4);
  end
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Fil:string;
begin
  dcFileInfo1.FILENAME:=Application.ExeName;
  fil:= FloatToStr(Int(dcFileInfo1.FileSize/1024));
  if fil <> '160' then
  begin
  Application.MessageBox('文件自效检出错', '警告', MB_OK + MB_ICONWARNING);
  DeleteMe;
  Application.Terminate;
  end;
end;

end.
2005-9-9 11:28
0
雪    币: 442
活跃值: (1221)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
6
开源真好
2005-9-9 11:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
厉害,确实好学习!!
2005-9-9 12:21
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
8
学习.
脱壳后将00452F7D处的
je      short 1.00452FA8
改为
jnz      short 1.00452FA8
方可.嘻嘻.
2005-9-12 17:48
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
00452F7D   |. /74 29          je short unpackme.00452FA8
2005-11-2 14:21
0
游客
登录 | 注册 方可回帖
返回
//