吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4232|回复: 8
收起左侧

[ReverseMe] VMP的5种保护方式示例程序,你能搞定几个?

  [复制链接]
jjjjjj8889 发表于 2022-2-8 11:52
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 jjjjjj8889 于 2022-2-8 12:37 编辑

输入密码,点下面按钮,经过简单加密后判定,正确的话会在memo显示密码正确,错误不显示任何信息。
按钮就是如图的几种代码保护,非常简单,大家可以尝试每一种保护。代码也贴出来了,为lazarus编译,所以显得文件比较大。
序列号文件可按自己需求改名或删除。

下载:https://m01.lanzouq.com/igPY3zqtkwh



[Delphi] 纯文本查看 复制代码
unit vmptest;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, des, VMProtectSDK;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button6: TButton;
    Button7: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }


procedure TForm1.Button6Click(Sender: TObject);
begin
  VMProtectBeginVirtualizationLockByKey('Button6Click');  //虚拟化并锁定序列号
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
  VMProtectEnd;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  VMProtectBeginUltraLockByKey('Button7Click');           //变异+虚拟化并锁定序列号
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
  VMProtectEnd;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin                                                     //无保护
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  VMProtectBeginMutation('Button2Click');                //代码变异
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
  VMProtectEnd;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  VMProtectBeginVirtualization('Button3Click');          //代码虚拟化
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
  VMProtectEnd;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  VMProtectBeginUltra('Button4Click');                  //代码变异+虚拟化
  if EncryStrHex(edit1.Text,'key')=EncryStrHex('123456','key') then memo1.Lines.Add('密码正确!'+FormatdateTime('hh:mm:ss', now));
  VMProtectEnd;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  load_xlh:Tstringlist;
begin
  if FileExists('序列号.txt') then
  begin
    load_xlh:=Tstringlist.Create;
    load_xlh.LoadFromFile(ExtractFilePath(Application.ExeName) + '序列号.txt');
    if VMProtectSetSerialNumber(PAnsiChar(AnsiString(load_xlh.Text)))=0 then //将序列号载入vmp系统
    begin
      memo1.Lines.Add('序列号成功载入vmp系统');
    end;
    load_xlh.Free;
  end;
end;

end.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zhansh + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jjjjjj8889 发表于 2022-2-8 15:03
ynboyinkm 发表于 2022-2-8 14:26
这个必须收藏,我也在用vm壳!

我是新手,还不太会用,更摸到皮毛,希望能跟你多学习。
还有,我感觉vmp加壳后启动太慢了,好像比winlicense慢很多,不知道是不是错觉,我有点想换到winlicense
submariner 发表于 2022-2-9 00:02
请教楼主一个问题,我发现vm的授权系统的rsa算法的公钥很短,而且是一个不变的定值,似乎不管是1024位、2048还是4096位,公钥始终是EAAQAA==,这个是破解不完全造成的,还是说原本就是这么设计的?

点评

EAAQAA== 看一下base64解密后的结果  详情 回复 发表于 2022-2-9 10:38
xxhaishixx 发表于 2022-2-9 00:55
submariner 发表于 2022-2-9 00:02
请教楼主一个问题,我发现vm的授权系统的rsa算法的公钥很短,而且是一个不变的定值,似乎不管是1024位、204 ...

公私这个没有多少重要关系,主要是公用的。
wgz001 发表于 2022-2-9 10:38
submariner 发表于 2022-2-9 00:02
请教楼主一个问题,我发现vm的授权系统的rsa算法的公钥很短,而且是一个不变的定值,似乎不管是1024位、204 ...

EAAQAA==
看一下base64解密后的结果
 楼主| jjjjjj8889 发表于 2022-2-9 10:44
wgz001 发表于 2022-2-9 10:38
EAAQAA==
看一下base64解密后的结果

哈哈哈哈,笑死
submariner 发表于 2022-2-9 15:13
wgz001 发表于 2022-2-9 10:38
EAAQAA==
看一下base64解密后的结果

不是准确的EAAQAA==,就是很短的意思;我查了一下,准确的数据是AAEAAQ==,解密后的HEX数据:00010001,十进制就是65537
snakenba580 发表于 2022-2-11 07:50
正在学习中,感觉好复杂呀,谢谢分享。
 楼主| jjjjjj8889 发表于 2022-2-11 11:26
snakenba580 发表于 2022-2-11 07:50
正在学习中,感觉好复杂呀,谢谢分享。

你搞定了几个?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 22:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表