vipcrack 发表于 2014-12-17 06:49

160个CrackMe[77 fireworx.9]算法分析+注册机源码

160个CrackMe算法分析+注册机源码

算法分析+delphi内联汇编注册机源码
00455437|.8D45 F4       lea   eax, dword ptr
0045543A|.8B4D F8       mov   ecx, dword ptr          ;堆栈 ss:=0096AFDC, (ASCII "BCG")
0045543D|.8B55 FC       mov   edx, dword ptr          ;堆栈 ss:=0096AFC4, (ASCII "vipcrack")
00455440|.E8 6BE6FAFF   call    00403AB0
00455445|.8D55 F0       lea   edx, dword ptr
00455448|.8B83 CC020000 mov   eax, dword ptr
0045544E|.E8 D1E1FCFF   call    00423624
00455453|.8B45 F0       mov   eax, dword ptr
00455456|.E8 4522FBFF   call    004076A0
0045545B|.8B45 F0       mov   eax, dword ptr
0045545E|.E8 01E6FAFF   call    00403A64
00455463|.8BF0          mov   esi, eax                         ;ESI是输入的假码长度,最大长度为9,超过9就不是合法的integer,控制下面的循环次数
00455465|.85F6          test    esi, esi
00455467|.7E 75         jle   short 004554DE
00455469|.BF 01000000   mov   edi, 0x1
0045546E|>8B45 F4       /mov   eax, dword ptr       ;堆栈 ss:=0096AFEC, (ASCII "vipcrackBCG")
00455471|.E8 EEE5FAFF   |call    00403A64
00455476|.50            |push    eax                           ;用户名公司名字符串长度B
00455477|.6BC7 7B       |imul    eax, edi, 0x7B                  ;edi=1
0045547A|.5A            |pop   edx
0045547B|.8BCA          |mov   ecx, edx                        ;edx=0000000B
0045547D|.99            |cdq
0045547E|.F7F9          |idiv    ecx
00455480|.C1E0 05       |shl   eax, 0x5
00455483|.2D 5C112C00   |sub   eax, 0x2C115C
00455488|.05 B02E8700   |add   eax, 0x872EB0
0045548D|.83F0 12       |xor   eax, 0x12
00455490|.8945 E8       |mov   dword ptr , eax       ;eax=005B1EA6 (5971622)
00455493|.8D55 EC       |lea   edx, dword ptr
00455496|.8B45 E8       |mov   eax, dword ptr
00455499|.E8 D221FBFF   |call    00407670                        ;获取10进制数据
0045549E|.8D55 E4       |lea   edx, dword ptr
004554A1|.8B83 CC020000 |mov   eax, dword ptr
004554A7|.E8 78E1FCFF   |call    00423624
004554AC|.8B45 E4       |mov   eax, dword ptr
004554AF|.8B55 EC       |mov   edx, dword ptr        ;正确注册码 (ASCII "5971622")
004554B2|.E8 BDE6FAFF   |call    00403B74
004554B7|.75 21         |jnz   short 004554DA
004554B9|.6A 00         |push    0x0
004554BB|.8D55 E4       |lea   edx, dword ptr
004554BE|.8B83 E8020000 |mov   eax, dword ptr
004554C4|.E8 5BE1FCFF   |call    00423624
004554C9|.8B45 E4       |mov   eax, dword ptr        ; |
004554CC|.66:8B0D 10554>|mov   cx, word ptr          ; |
004554D3|.B2 02         |mov   dl, 0x2                         ; |
004554D5|.E8 1EC2FEFF   |call    004416F8                        ; \fireworx.004416F8
004554DA|>47            |inc   edi
004554DB|.4E            |dec   esi
004554DC|.^ 75 90         \jnz   short 0045546E
注册机源码
procedure TForm1.Button1Click(Sender: TObject);
var
   s:String;
   a,i,b:Integer;
begin
   if (Edit1.Text='') or (Edit2.Text='')then exit;
   s:=Edit1.Text+Edit2.Text;
   a:=length(s);
   randomize;
   i:=random(9)+1;
   asm
      pushad
      mov    eax,a
      mov    edi,i
      imul   eax,edi,$7B
      mov    ecx,a
      cdq
      idiv   ecx
      shl    eax,5
      sub   eax, $2C115C
      add   eax, $872EB0
      xor   eax, $12
      mov   b,eax
      popad
   end;
   Edit3.Text:=inttostr(b);

end;



Scar-疤痕 发表于 2014-12-17 06:56

感谢楼主分享!辛苦了!

520Kelly 发表于 2014-12-17 12:43

继续膜拜算法帝啊、、感谢分享

晓铭丶 发表于 2014-12-20 06:52

完全看不懂!!

别管我了行 发表于 2022-2-24 03:59

军工强国 发表于 2022-2-24 21:58

感谢楼主分享新技能!努力学习ing!

zg2600 发表于 2022-6-21 19:40

[吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!

曾经沧海 发表于 2022-10-8 18:24

感谢楼主分享,学到老!

一生逍遥 发表于 2022-11-30 06:57

楼主辛苦了,谢谢分享!

曾经沧海 发表于 2023-3-29 19:26

看了楼主的帖子。打算去自己练一下。
页: [1] 2
查看完整版本: 160个CrackMe[77 fireworx.9]算法分析+注册机源码