• 标 题:黄金内存 V3.1 破解教程
  • 作 者:kyc
  • 时 间:2004-12-13,23:13
  • 链 接:http://bbs.pediy.com

【破解作者】 kyc[dfcg][czg]
【作者邮箱】 muyang008@163.com
【使用工具】 old1.10c
【破解平台】 win2003
【软件名称】 黄金内存 V3.1 
【下载地址】http://www.skycn.com/soft/14815.html
【软件简介】黄金内存可以整理/回收/清理系统的物理内存,提高内存分配命中率,提高使用效率,
    防止由于内存泄漏造成的内存不足。全图形化界面,让操作者对系统当前状态一目了然,令您爱不释手。
    内存整理:可了解内存及CPU的使用情况,及时整理内存,调整物理内存的使用性能。
    进程管理:可查看系统中正在运行的进程及内存情况,找出耗费内存的大户,并可以随时终止; 
    服务管理:可管理XP/2000中的服务项目,将不用的服务停止,加快启动速度,节省内存。 
    启动管理:可以将随机动项目延时启动或暂停启动,极大提高启动速度。
【软件大小】 768 KB
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】


根据序列号错误对 CTRL+N
名称位于 Memory_B,项目 146
 地址=0042D37C
 区段=.rdata
 类型=导入
 名称=MFC42.#4224_CWnd::MessageBoxA查找导入参考
参考位于Memory_B:.text 到 MFC42.#4224_CWnd::MessageBoxA
地址       反汇编                                        注释
00404F1A   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00405863   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00405B82   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004061C2   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00406304   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0040CA0C   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0040CD27   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004130AF   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041321D   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041C1C1   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041C47D   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041C640   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041C8CD   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041CBAA   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041CE4D   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041D8CC   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0041DD8D   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00421F38   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00422029   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004220C7   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0042422D   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>
004275EC   jmp dword ptr ds:[<&MFC42.#4224_CWnd::Messag  MFC42.#4224_CWnd::MessageBoxA
全部下断

123456-123456-123456-123456
------------------------------------------------------------------------------
004131FD    .  E8 00430100   call <jmp.&MFC42.#858_CString::operator=>
00413202    .  8D4C24 10     lea ecx,dword ptr ss:[esp+10]
00413206    .  885C24 34     mov byte ptr ss:[esp+34],bl
0041320A    .  E8 ED420100   call <jmp.&MFC42.#800_CString::~CString>
0041320F    .  8B5424 0C     mov edx,dword ptr ss:[esp+C]
00413213    .  6A 00         push 0
00413215    .  68 38634300   push Memory_B.00436338                              ;  ASCII "Memory Booster"
0041321A    .  52            push edx
0041321B    .  8BCE          mov ecx,esi
0041321D    .  E8 CA430100   call <jmp.&MFC42.#4224_CWnd::MessageBoxA>             断在这里
向上看
---------------------------------------------------------------------------------
00412FD0    .  6A FF         push -1                                             ;  F2   下断
00412FD2    .  68 609C4200   push Memory_B.00429C60                              ;  SE handler installation
00412FD7    .  64:A1 0000000>mov eax,dword ptr fs:[0]
00412FDD    .  50            push eax
00412FDE    .  64:8925 00000>mov dword ptr fs:[0],esp
00412FE5    .  83EC 24       sub esp,24
00412FE8    .  53            push ebx
00412FE9    .  56            push esi
00412FEA    .  8BF1          mov esi,ecx
00412FEC    .  8D4C24 08     lea ecx,dword ptr ss:[esp+8]
00412FF0    .  E8 19450100   call <jmp.&MFC42.#540_CString::CString>
00412FF5    .  8D4424 08     lea eax,dword ptr ss:[esp+8]
00412FF9    .  8BCE          mov ecx,esi
00412FFB    .  50            push eax
00412FFC    .  68 5C040000   push 45C
00413001    .  C74424 3C 000>mov dword ptr ss:[esp+3C],0
00413009    .  E8 A2480100   call <jmp.&MFC42.#3097_CWnd::GetDlgItemTextA>       ;  ECX=假码
0041300E    .  51            push ecx
0041300F    .  8D5424 0C     lea edx,dword ptr ss:[esp+C]
00413013    .  8BCC          mov ecx,esp
00413015    .  896424 14     mov dword ptr ss:[esp+14],esp
00413019    .  52            push edx
0041301A    .  E8 CB440100   call <jmp.&MFC42.#535_CString::CString>
0041301F    .  E8 4C1A0000   call Memory_B.00414A70                              ;  F7       关键算法进入
00413024    .  83C4 04       add esp,4
00413027    .  85C0          test eax,eax
00413029    .  0F84 6E010000 je Memory_B.0041319D
=========================================================================call Memory_B.00414A70
00414A70   /$  6A FF         push -1
00414A72   |.  68 C89E4200   push Memory_B.00429EC8                              ;  SE handler installation
00414A77   |.  64:A1 0000000>mov eax,dword ptr fs:[0]
00414A7D   |.  50            push eax
00414A7E   |.  64:8925 00000>mov dword ptr fs:[0],esp
00414A85   |.  51            push ecx
00414A86   |.  56            push esi
00414A87   |.  51            push ecx
00414A88   |.  8D4424 1C     lea eax,dword ptr ss:[esp+1C]
00414A8C   |.  8BCC          mov ecx,esp
00414A8E   |.  896424 08     mov dword ptr ss:[esp+8],esp
00414A92   |.  50            push eax
00414A93   |.  C74424 18 000>mov dword ptr ss:[esp+18],0
00414A9B   |.  E8 4A2A0100   call <jmp.&MFC42.#535_CString::CString>
00414AA0   |.  E8 DBFCFFFF   call Memory_B.00414780                              ;  F7             关键算法进入
00414AA5   |.  83C4 04       add esp,4
00414AA8   |.  8D4C24 18     lea ecx,dword ptr ss:[esp+18]
00414AAC   |.  8BF0          mov esi,eax
00414AAE   |.  C74424 10 FFF>mov dword ptr ss:[esp+10],-1
00414AB6   |.  E8 412A0100   call <jmp.&MFC42.#800_CString::~CString>
00414ABB   |.  8B4C24 08     mov ecx,dword ptr ss:[esp+8]
00414ABF   |.  8BC6          mov eax,esi
00414AC1   |.  64:890D 00000>mov dword ptr fs:[0],ecx
00414AC8   |.  5E            pop esi
00414AC9   |.  83C4 10       add esp,10
00414ACC   \.  C3            retn

=========================================================================call Memory_B.00414780
00414780   /$  6A FF         push -1
00414782   |.  68 B09E4200   push Memory_B.00429EB0                              ;  SE handler installation
00414787   |.  64:A1 0000000>mov eax,dword ptr fs:[0]
0041478D   |.  50            push eax
0041478E   |.  64:8925 00000>mov dword ptr fs:[0],esp
00414795   |.  83EC 38       sub esp,38
00414798   |.  53            push ebx
00414799   |.  55            push ebp
0041479A   |.  8D4424 50     lea eax,dword ptr ss:[esp+50]                       ;  eax=假码
0041479E   |.  8D4C24 08     lea ecx,dword ptr ss:[esp+8]
004147A2   |.  50            push eax
004147A3   |.  C74424 4C 000>mov dword ptr ss:[esp+4C],0
004147AB   |.  E8 3A2D0100   call <jmp.&MFC42.#535_CString::CString>
004147B0   |.  8B4C24 08     mov ecx,dword ptr ss:[esp+8]                        ;  eCx=假码
004147B4   |.  C64424 48 01  mov byte ptr ss:[esp+48],1
004147B9   |.  8379 F8 11    cmp dword ptr ds:[ecx-8],11                         ;  不能小于17位
004147BD   |.  0F8C 64020000 jl Memory_B.00414A27
004147C3   |.  68 F8764300   push Memory_B.004376F8                              ;  第7位看有没有-,没有就失败
004147C8   |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+C]                        ;  eCx=假码
004147CC   |.  E8 672D0100   call <jmp.&MFC42.#2764_CString::Find>
004147D1   |.  83CD FF       or ebp,FFFFFFFF
004147D4   |.  3BC5          cmp eax,ebp
004147D6   |.  0F84 63020000 je Memory_B.00414A3F
004147DC   |.  6A 05         push 5
004147DE   |.  6A 2D         push 2D
004147E0   |.  8D4C24 10     lea ecx,dword ptr ss:[esp+10]                       ;  第14位看有没有-,没有就失败
004147E4   |.  E8 6F310100   call <jmp.&MFC42.#6662_CString::Find>
004147E9   |.  3BC5          cmp eax,ebp
004147EB   |.  0F84 4E020000 je Memory_B.00414A3F
004147F1   |.  6A 0B         push 0B
004147F3   |.  6A 2D         push 2D
004147F5   |.  8D4C24 10     lea ecx,dword ptr ss:[esp+10]                       ;  看有没有-,没有就失败
004147F9   |.  E8 5A310100   call <jmp.&MFC42.#6662_CString::Find>
004147FE   |.  3BC5          cmp eax,ebp
00414800   |.  0F84 39020000 je Memory_B.00414A3F
00414806   |.  33DB          xor ebx,ebx                                         ;  EBX清零
00414808   |>  8AD3          /mov dl,bl                                          ;  DL=BL
0041480A   |.  6A 01         |push 1
0041480C   |.  80C2 61       |add dl,61                                          ;  DL+0X61(a)
0041480F   |.  8D4C24 0C     |lea ecx,dword ptr ss:[esp+C]
00414813   |.  885424 1C     |mov byte ptr ss:[esp+1C],dl                        ;  [esp+1c]=dl
00414817   |.  8B4424 1C     |mov eax,dword ptr ss:[esp+1C]                      ;  eax=[esp+1c]
0041481B   |.  50            |push eax                                           ;  看有没有a,b,c,d..............z
0041481C   |.  E8 37310100   |call <jmp.&MFC42.#6662_CString::Find>
00414821   |.  3BC5          |cmp eax,ebp
00414823   |.  0F85 16020000 |jnz Memory_B.00414A3F                              ;  看有没有小写字母没有继续找有就失败
00414829   |.  43            |inc ebx                                            ;  EBX++
0041482A   |.  83FB 1A       |cmp ebx,1A                                         ;  EBX小于1A=26D吗
0041482D   |.^ 7C D9         \jl short Memory_B.00414808
0041482F   |.  33DB          xor ebx,ebx                                         ;  EBX清零
00414831   |>  8ACB          /mov cl,bl
00414833   |.  6A 01         |push 1
00414835   |.  80C1 41       |add cl,41
00414838   |.  884C24 1C     |mov byte ptr ss:[esp+1C],cl
0041483C   |.  8B5424 1C     |mov edx,dword ptr ss:[esp+1C]
00414840   |.  52            |push edx
00414841   |.  8D4C24 10     |lea ecx,dword ptr ss:[esp+10]
00414845   |.  E8 0E310100   |call <jmp.&MFC42.#6662_CString::Find>              ;  看有没有A,B,C,D..............Z
0041484A   |.  3BC5          |cmp eax,ebp
0041484C   |.  0F85 ED010000 |jnz Memory_B.00414A3F                              ;  看有没有大写字母没有继续找有就失败
00414852   |.  43            |inc ebx
00414853   |.  83FB 1A       |cmp ebx,1A
00414856   |.^ 7C D9         \jl short Memory_B.00414831
00414858   |.  56            push esi
00414859   |.  57            push edi
0041485A   |.  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]
0041485E   |.  E8 AB2C0100   call <jmp.&MFC42.#540_CString::CString>
00414863   |.  8D4C24 18     lea ecx,dword ptr ss:[esp+18]
00414867   |.  C64424 50 02  mov byte ptr ss:[esp+50],2
0041486C   |.  E8 9D2C0100   call <jmp.&MFC42.#540_CString::CString>
00414871   |.  8D4C24 14     lea ecx,dword ptr ss:[esp+14]
00414875   |.  C64424 50 03  mov byte ptr ss:[esp+50],3
0041487A   |.  E8 8F2C0100   call <jmp.&MFC42.#540_CString::CString>
0041487F   |.  8D4424 20     lea eax,dword ptr ss:[esp+20]
00414883   |.  B3 04         mov bl,4                                            ;  BL=4
00414885   |.  6A 05         push 5
00414887   |.  50            push eax
00414888   |.  8D4C24 18     lea ecx,dword ptr ss:[esp+18]                       ;  eCx=假码
0041488C   |.  885C24 58     mov byte ptr ss:[esp+58],bl
00414890   |.  E8 9D2C0100   call <jmp.&MFC42.#4129_CString::Left>
00414895   |.  50            push eax                                            ;  EAX=前5位注册码
00414896   |.  8D4C24 20     lea ecx,dword ptr ss:[esp+20]
0041489A   |.  C64424 54 05  mov byte ptr ss:[esp+54],5
0041489F   |.  E8 5E2C0100   call <jmp.&MFC42.#858_CString::operator=>
004148A4   |.  8D4C24 20     lea ecx,dword ptr ss:[esp+20]
004148A8   |.  885C24 50     mov byte ptr ss:[esp+50],bl
004148AC   |.  E8 4B2C0100   call <jmp.&MFC42.#800_CString::~CString>
004148B1   |.  8D4C24 20     lea ecx,dword ptr ss:[esp+20]
004148B5   |.  6A 05         push 5
004148B7   |.  51            push ecx
004148B8   |.  8D4C24 18     lea ecx,dword ptr ss:[esp+18]
004148BC   |.  E8 BF2F0100   call <jmp.&MFC42.#5710_CString::Right>
004148C1   |.  50            push eax                                            ;  EAX=后5位注册码
004148C2   |.  8D4C24 18     lea ecx,dword ptr ss:[esp+18]
004148C6   |.  C64424 54 06  mov byte ptr ss:[esp+54],6
004148CB   |.  E8 322C0100   call <jmp.&MFC42.#858_CString::operator=>
004148D0   |.  8D4C24 20     lea ecx,dword ptr ss:[esp+20]
004148D4   |.  885C24 50     mov byte ptr ss:[esp+50],bl
004148D8   |.  E8 1F2C0100   call <jmp.&MFC42.#800_CString::~CString>
004148DD   |.  6A 05         push 5
004148DF   |.  8D5424 24     lea edx,dword ptr ss:[esp+24]
004148E3   |.  6A 06         push 6
004148E5   |.  52            push edx
004148E6   |.  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]
004148EA   |.  E8 63300100   call <jmp.&MFC42.#4278_CString::Mid>                ;  第2组首5位
004148EF   |.  50            push eax
004148F0   |.  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]
004148F4   |.  C64424 54 07  mov byte ptr ss:[esp+54],7
004148F9   |.  E8 042C0100   call <jmp.&MFC42.#858_CString::operator=>
004148FE   |.  8D4C24 20     lea ecx,dword ptr ss:[esp+20]
00414902   |.  885C24 50     mov byte ptr ss:[esp+50],bl
00414906   |.  E8 F12B0100   call <jmp.&MFC42.#800_CString::~CString>
0041490B   |.  8B7C24 1C     mov edi,dword ptr ss:[esp+1C]                       ;  EDI=前5位
0041490F   |.  8BCD          mov ecx,ebp
00414911   |.  33C0          xor eax,eax                                         ;  EAX=0
00414913   |.  8D5424 24     lea edx,dword ptr ss:[esp+24]
00414917   |.  F2:AE         repne scas byte ptr es:[edi]
00414919   |.  F7D1          not ecx
0041491B   |.  2BF9          sub edi,ecx                                         ;  EDI=前5位
0041491D   |.  8BC1          mov eax,ecx
0041491F   |.  8BF7          mov esi,edi                                         ;  ESI=EDI=前5位
00414921   |.  8BFA          mov edi,edx
00414923   |.  8D5424 30     lea edx,dword ptr ss:[esp+30]
00414927   |.  C1E9 02       shr ecx,2                                           ;  ECX SHR 2
0041492A   |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds:[esi]
0041492C   |.  8BC8          mov ecx,eax                                         ;  ECX=EAX=6
0041492E   |.  33C0          xor eax,eax                                         ;  EAX=0
00414930   |.  83E1 03       and ecx,3                                           ;  ECX AND 3=2
00414933   |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[esi]
00414935   |.  8B7C24 18     mov edi,dword ptr ss:[esp+18]                       ;  第2组首5位
00414939   |.  8BCD          mov ecx,ebp
0041493B   |.  F2:AE         repne scas byte ptr es:[edi]
0041493D   |.  F7D1          not ecx
0041493F   |.  2BF9          sub edi,ecx
00414941   |.  8BC1          mov eax,ecx
00414943   |.  8BF7          mov esi,edi
00414945   |.  8BFA          mov edi,edx
00414947   |.  C1E9 02       shr ecx,2                                           ;  ECX SHR 2
0041494A   |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds:[esi]
0041494C   |.  8BC8          mov ecx,eax
0041494E   |.  33C0          xor eax,eax                                         ;  EAX=0
00414950   |.  83E1 03       and ecx,3                                           ;  ECX AND 3=2
00414953   |.  8D5424 3C     lea edx,dword ptr ss:[esp+3C]
00414957   |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[esi]
00414959   |.  8B7C24 14     mov edi,dword ptr ss:[esp+14]                       ;  EDI=后5位注册码
0041495D   |.  8BCD          mov ecx,ebp
0041495F   |.  F2:AE         repne scas byte ptr es:[edi]
00414961   |.  F7D1          not ecx
00414963   |.  2BF9          sub edi,ecx
00414965   |.  8BC1          mov eax,ecx
00414967   |.  8BF7          mov esi,edi                                         ;  ESI=EDI=前5位
00414969   |.  8BFA          mov edi,edx
0041496B   |.  C1E9 02       shr ecx,2                                           ;  ECX SHR 2
0041496E   |.  F3:A5         rep movs dword ptr es:[edi],dword ptr ds:[esi]
00414970   |.  8BC8          mov ecx,eax
00414972   |.  83E1 03       and ecx,3
00414975   |.  F3:A4         rep movs byte ptr es:[edi],byte ptr ds:[esi]
00414977   |.  8B3D 94D64200 mov edi,dword ptr ds:[<&MSVCRT.atoi>]               ;  msvcrt.atoi挑选整数的函数
0041497D   |.  8D4C24 24     lea ecx,dword ptr ss:[esp+24]
00414981   |.  51            push ecx                                            ; /s
00414982   |.  FFD7          call edi                                            ; \atoi
00414984   |.  8D5424 34     lea edx,dword ptr ss:[esp+34]
00414988   |.  8BE8          mov ebp,eax                                    ;  EBP=第一组5位码变为整数
0041498A   |.  52            push edx
0041498B   |.  FFD7          call edi
0041498D   |.  8BF0          mov esi,eax                                    ;  ESI=第2组5位码变为整数(从第7位取)
0041498F   |.  8D4424 44     lea eax,dword ptr ss:[esp+44]
00414993   |.  50            push eax
00414994   |.  FFD7          call edi                                       ;  EAX=后5位注册码变为整数
00414996   |.  33F5          xor esi,ebp                                    ;  ESI^EBP
00414998   |.  83C4 0C       add esp,0C
0041499B   |.  81F6 ACD30000 xor esi,0D3AC                                  ;  ESI^0D3AC
004149A1   |.  C64424 50 03  mov byte ptr ss:[esp+50],3
004149A6   |.  5F            pop edi
004149A7   |.  3BF0          cmp esi,eax                                    ;  ESI==EAX 关键比较
004149A9   |.  5E            pop esi
004149AA   |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+C]
004149AE   |.  75 56         jnz short Memory_B.00414A06
=============================================================================================================
总结:
根据上述算法很容易得到注册机下面是注册机C代码。
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
void main( void )
{
  char str1[6],str2[6];
  int i1,i2,i3; 
    char *s1=str1;
  char *s2=str2;
  cout<<"请输入数字首位必须带-"<<endl;
    cin>>s1;
  if(strlen(s1)>5||strlen(s1)<5) 
  {
    cout<<"必须是5位";
    return;
  }
  cin>>s2;
  
  if(strlen(s2)>5||strlen(s2)<5) 
    {
    cout<<"必须是5位";
    return;
  }


           /* Test of atoi */
   i1 = atoi( s1 );
   i2 = atoi( s2 );
   i3=i1^i2;
   i3=i3^0x0D3AC;
   cout<<""<<i1<<"*"<<i2<<"*"<<"-"<<i3<<endl;
   cout<<"*代表任意非字母字符或数字"<<endl;

  
}


可用的注册码

-12312-456456-50865
注册信息保留在注册表的
HKLM_SOFTWARE_MemIdle_MemIdleSN
删除后提示未注册。
======================================================================================