zoukankan      html  css  js  c++  java
  • keygenme4

    这个KEYGENME  有点简单   但是写注册机有点难度  要求写出随机的注册码

    大体流程:
    00401000 >/$  6A 00         push 0x0                                 ; /Style = MB_OK|MB_APPLMODAL
    00401002  |.  68 00304000   push KeygenMe.00403000                   ; |Title = "ItSecurity.ma KeygenMe (RESTRICTED PATCHING)"
    00401007  |.  68 2D304000   push KeygenMe.0040302D                   ; |Text = "Itsecurity.ma KeygenME Coded by Souhail Hammou ..."
    0040100C  |.  6A 00         push 0x0                                 ; |hOwner = NULL
    0040100E  |.  E8 19020000   call <jmp.&user32.MessageBoxA>           ; MessageBoxA
    00401013  |.  68 60304000   push KeygenMe.00403060                   ;  ASCII "Please type your e-mail: "
    00401018  |.  E8 17020000   call KeygenMe.00401234
    0040101D  |.  68 C8000000   push 0xC8
    00401022  |.  68 60314000   push KeygenMe.00403160                   ;  ASCII "abcdef@qq.com"这是我输入的
    00401027  |.  E8 40020000   call KeygenMe.0040126C
    0040102C  |.  8D05 60314000 lea eax,dword ptr ds:[0x403160]
    00401032  |.  33D2          xor edx,edx
    00401034  |.  33C9          xor ecx,ecx
    00401036  |>  8A18          /mov bl,byte ptr ds:[eax]                ;  计算@前有多少位
    00401038  |.  80FB 40       |cmp bl,0x40
    0040103B  |.  74 0C         |je XKeygenMe.00401049
    0040103D  |.  38D3          |cmp bl,dl
    0040103F  |.  0F84 A6010000 |je KeygenMe.004011EB
    00401045  |.  41            |inc ecx
    00401046  |.  40            |inc eax
    00401047  |.^ EB ED         jmp XKeygenMe.00401036
    00401049  |>  80F9 03       cmp cl,0x3
    0040104C  |.  0F8E B9010000 jle KeygenMe.0040120B                    ;  小于3位就失败
    00401052  |.  68 7A304000   push KeygenMe.0040307A                   ;  ASCII "Please Enter a valid serial: "
    00401057  |.  E8 D8010000   call KeygenMe.00401234                   ;  再输入假码 需要23位
    0040105C  |.  68 C8000000   push 0xC8
    00401061  |.  68 84414000   push KeygenMe.00404184                   ;  ASCII "12345678901234567890123"
    00401066  |.  E8 01020000   call KeygenMe.0040126C
    0040106B  |.  68 84414000   push KeygenMe.00404184                   ; /String = "12345678901234567890123"
    00401070  |.  E8 C3020000   call <jmp.&kernel32.lstrlenA>            ; lstrlenA
    00401075  |.  83F8 17       cmp eax,0x17                             ;  不等于23位就失败
    00401078  |.  0F85 4D010000 jnz KeygenMe.004011CB
    0040107E  |.  8D05 84414000 lea eax,dword ptr ds:[0x404184]
    00401084  |.  33DB          xor ebx,ebx
    00401086  |.  8B18          mov ebx,dword ptr ds:[eax]
    00401088  |.  81FB 4954532D cmp ebx,0x2D535449                       ;  前4位ITS-
    0040108E  |.  0F85 37010000 jnz KeygenMe.004011CB
    00401094  |.  83C0 08       add eax,0x8
    00401097  |.  8038 2D       cmp byte ptr ds:[eax],0x2D               ;  第9位 -
    0040109A  |.  0F85 2B010000 jnz KeygenMe.004011CB
    004010A0  |.  33C9          xor ecx,ecx
    004010A2  |.  33D2          xor edx,edx
    004010A4  |.  B1 03         mov cl,0x3
    004010A6  |.  B2 05         mov dl,0x5
    004010A8  |>  03C2          /add eax,edx                             ;  14位 19位
    004010AA  |.  FEC9          |dec cl
    004010AC  |.  8038 2D       |cmp byte ptr ds:[eax],0x2D              ;  -
    004010AF  |.^ 74 F7         je XKeygenMe.004010A8
    004010B1  |.  80F9 00       cmp cl,0x0
    004010B4  |.  0F85 11010000 jnz KeygenMe.004011CB
    004010BA  |.  8D05 84414000 lea eax,dword ptr ds:[0x404184]
    004010C0  |.  83C0 04       add eax,0x4
    004010C3  |.  8B18          mov ebx,dword ptr ds:[eax]               ;  5-8位
    004010C5  |.  8D0D A8514000 lea ecx,dword ptr ds:[0x4051A8]
    004010CB  |.  8919          mov dword ptr ds:[ecx],ebx
    004010CD  |.  83C0 05       add eax,0x5
    004010D0  |.  8B18          mov ebx,dword ptr ds:[eax]               ;  10-13位
    004010D2  |.  8D0D CC614000 lea ecx,dword ptr ds:[0x4061CC]
    004010D8  |.  8919          mov dword ptr ds:[ecx],ebx
    004010DA  |.  83C0 05       add eax,0x5
    004010DD  |.  8B18          mov ebx,dword ptr ds:[eax]               ;  15-18
    004010DF  |.  8D0D F0714000 lea ecx,dword ptr ds:[0x4071F0]
    004010E5  |.  8919          mov dword ptr ds:[ecx],ebx
    004010E7  |.  83C0 05       add eax,0x5                              ;  20-23
    004010EA  |.  8B18          mov ebx,dword ptr ds:[eax]
    004010EC  |.  8D0D 14824000 lea ecx,dword ptr ds:[0x408214]
    004010F2  |.  8919          mov dword ptr ds:[ecx],ebx
    004010F4  |.  33C0          xor eax,eax
    004010F6  |.  33DB          xor ebx,ebx
    004010F8  |.  33D2          xor edx,edx
    004010FA  |.  33C9          xor ecx,ecx
    004010FC  |.  8D05 A8514000 lea eax,dword ptr ds:[0x4051A8]
    00401102  |.  8B00          mov eax,dword ptr ds:[eax]               ;  EAX 004051A8 ASCII "5678"
    00401104  |.  2D 30303030   sub eax,0x30303030                       ;  -0x30
    00401109  |.  8D15 A8514000 lea edx,dword ptr ds:[0x4051A8]
    0040110F  |.  8902          mov dword ptr ds:[edx],eax
    00401111  |.  8A1A          mov bl,byte ptr ds:[edx]
    00401113  |.  8A4A 01       mov cl,byte ptr ds:[edx+0x1]
    00401116  |.  02D9          add bl,cl                                ;  1 2 相加
    00401118  |.  8A4A 02       mov cl,byte ptr ds:[edx+0x2]
    0040111B  |.  02D9          add bl,cl                                ;  +3位
    0040111D  |.  8A4A 03       mov cl,byte ptr ds:[edx+0x3]
    00401120  |.  02D9          add bl,cl                                ;  加4位
    00401122  |.  80FB 10       cmp bl,0x10                              ;  比较  x010
    00401125  |.  0F85 A0000000 jnz KeygenMe.004011CB
    0040112B  |.  8D15 CC614000 lea edx,dword ptr ds:[0x4061CC]
    00401131  |.  8A1A          mov bl,byte ptr ds:[edx]                 ;  0123
    00401133  |.  80FB 4F       cmp bl,0x4F                              ;  大写O
    00401136  |.  0F85 8F000000 jnz KeygenMe.004011CB
    0040113C  |.  8A4A 01       mov cl,byte ptr ds:[edx+0x1]
    0040113F  |.  02D9          add bl,cl                                ;  相加
    00401141  |.  8A4A 02       mov cl,byte ptr ds:[edx+0x2]
    00401144  |.  02D9          add bl,cl                                ;  加3位
    00401146  |.  8A4A 03       mov cl,byte ptr ds:[edx+0x3]
    00401149  |.  2AD9          sub bl,cl                                ;  减4位
    0040114B  |.  80FB 8F       cmp bl,0x8F                              ;  比较0x8F
    0040114E  |.  75 7B         jnz XKeygenMe.004011CB
    00401150  |.  8D05 F0714000 lea eax,dword ptr ds:[0x4071F0]
    00401156  |.  8B00          mov eax,dword ptr ds:[eax]               ;  5678
    00401158  |.  2D 30303030   sub eax,0x30303030                       ;  -0x30
    0040115D  |.  8D15 F0714000 lea edx,dword ptr ds:[0x4071F0]
    00401163  |.  8902          mov dword ptr ds:[edx],eax
    00401165  |.  8A1A          mov bl,byte ptr ds:[edx]
    00401167  |.  8A4A 01       mov cl,byte ptr ds:[edx+0x1]
    0040116A  |.  02D9          add bl,cl                                ;  12位相加
    0040116C  |.  8A4A 02       mov cl,byte ptr ds:[edx+0x2]
    0040116F  |.  02D9          add bl,cl                                ;  加3位
    00401171  |.  8A4A 03       mov cl,byte ptr ds:[edx+0x3]
    00401174  |.  80E9 02       sub cl,0x2                               ;  4位-0x2
    00401177  |.  02D9          add bl,cl                                ;  相加
    00401179  |.  80FB 10       cmp bl,0x10                              ;  比较0x10
    0040117C  |.  75 4D         jnz XKeygenMe.004011CB
    0040117E  |.  8D05 14824000 lea eax,dword ptr ds:[0x408214]
    00401184  |.  8B00          mov eax,dword ptr ds:[eax]               ;  0123
    00401186  |.  2D 30303030   sub eax,0x30303030
    0040118B  |.  8D15 14824000 lea edx,dword ptr ds:[0x408214]
    00401191  |.  8902          mov dword ptr ds:[edx],eax
    00401193  |.  8A1A          mov bl,byte ptr ds:[edx]
    00401195  |.  8A4A 01       mov cl,byte ptr ds:[edx+0x1]
    00401198  |.  02D9          add bl,cl                                ;  12+
    0040119A  |.  8A4A 02       mov cl,byte ptr ds:[edx+0x2]
    0040119D  |.  02D9          add bl,cl                                ;  +3
    0040119F  |.  8A4A 03       mov cl,byte ptr ds:[edx+0x3]
    004011A2  |.  02D9          add bl,cl                                ;  +4
    004011A4  |.  80FB 12       cmp bl,0x12                              ;  比较0x12
    004011A7  |.  75 22         jnz XKeygenMe.004011CB
    004011A9  |.  EB 00         jmp XKeygenMe.004011AB
    004011AB  |>  68 98304000   push KeygenMe.00403098                   ;  ASCII "Valid Serial (Press Enter To Exit)"
    004011B0  |.  E8 7F000000   call KeygenMe.00401234
    004011B5  |.  68 C8000000   push 0xC8
    004011BA  |.  68 38924000   push KeygenMe.00409238
    004011BF  |.  E8 A8000000   call KeygenMe.0040126C
    004011C4  |.  6A 00         push 0x0                                 ; /ExitCode = 0
    004011C6  |.  E8 67010000   call <jmp.&kernel32.ExitProcess>         ; ExitProcess
    004011CB  |>  68 BB304000   push KeygenMe.004030BB                   ;  ASCII "Invalid Serial (Press Enter To Exit)"
    004011D0  |.  E8 5F000000   call KeygenMe.00401234
    004011D5  |.  68 C8000000   push 0xC8
    004011DA  |.  68 38924000   push KeygenMe.00409238
    004011DF  |.  E8 88000000   call KeygenMe.0040126C
    004011E4  |.  6A 00         push 0x0                                 ; /ExitCode = 0
    004011E6  |.  E8 47010000   call <jmp.&kernel32.ExitProcess>         ; ExitProcess
    004011EB  |>  68 E0304000   push KeygenMe.004030E0                   ;  ASCII "Please Insert a Valid Mail Address (Press Enter To Exit)"
    004011F0  |.  E8 3F000000   call KeygenMe.00401234
    004011F5  |.  68 C8000000   push 0xC8
    004011FA  |.  68 38924000   push KeygenMe.00409238
    004011FF  |.  E8 68000000   call KeygenMe.0040126C
    00401204  |.  6A 00         push 0x0                                 ; /ExitCode = 0
    00401206  |.  E8 27010000   call <jmp.&kernel32.ExitProcess>         ; ExitProcess
    0040120B  |>  68 19314000   push KeygenMe.00403119                   ;  ASCII "Please Enter an email with 4 Characters minimum (Press Enter to Exit)"
    
    ITS-5551-O@11-5553-5553
    

    代码:

    #include <iostream.h>
    #include "StdAfx.h"
    #include <stdlib.h>
    #include <time.h>
    
    int GetRand()
    {
    	int a = rand()%126;
    	if (a <=0x20)
    	{
    		a += 0x20;
    	}
    	return a;
    }
    void main()
    {
    	char xx[]= "ITS-";
    	char Ochar = 'O';
    	//ITS-5551-O@11-5553-5553
    	srand( (unsigned)time( NULL ) );
    
    	for (int i =0 ;i<10;i++)
    	{
    		printf(xx);
    		while (1)//1
    		{
    			int a = GetRand();
    			int b = GetRand();
    			int c = GetRand();
    			int d = GetRand();
    			if ((a-0x30>=0)&&(b-0x30>=0)&&(c-0x30>=0)&&(d-0x30>=0))
    			{
    				if ((a-0x30)+(b-0x30)+(c-0x30)+(d-0x30)==0x10)
    				{
    					printf("%c%c%c%c-",a,b,c,d);
    					break;
    				}
    			}
    		}
    		printf("%c",Ochar);
    		while (1)//2
    		{
    			int b = GetRand();
    			int c = GetRand();
    			int d = GetRand();
    		
    				if ('O'+b+c-d==0x8F)
    				{
    					printf("%c%c%c-",b,c,d);
    					break;
    				}	
    		}
    		while (1)//3
    		{
    			int a = GetRand();
    			int b = GetRand();
    			int c = GetRand();
    			int d = GetRand();
    			if ((a-0x30>=0)&&(b-0x30>=0)&&(c-0x30>=0)&&(d-0x30>=0))
    			{
    				if ((a-0x30)+(b-0x30)+(c-0x30)+(d-0x30)-0x2==0x10)
    				{
    					printf("%c%c%c%c-",a,b,c,d);
    					break;
    				}
    			}
    		}
    		while (1)//4
    		{
    			int a = GetRand();
    			int b = GetRand();
    			int c = GetRand();
    			int d = GetRand();
    		
    			if ((a-0x30>=0)&&(b-0x30>=0)&&(c-0x30>=0)&&(d-0x30>=0))
    			{
    				if ((a-0x30)+(b-0x30)+(c-0x30)+(d-0x30)==0x12)
    				{
    					printf("%c%c%c%c
    ",a,b,c,d);
    					break;
    				}
    			}
    		}
    	}	
    }
    学习了一下怎么用 随机数

  • 相关阅读:
    关于windows客户端网络编程 WSAAsyncSelect函数
    阻塞模式和非阻塞模式
    SRP6协议分析
    普通二叉树转换成二叉查找树方法
    使用openssl库进行开发
    类型转化,网络开发中常见的类型转化
    到底还能够称多久
    权限子系统小结
    使用ASP.NET AJAX开发服务器端事件通知器
    通用权限相关文档的下载
  • 原文地址:https://www.cnblogs.com/zcc1414/p/3982525.html
Copyright © 2011-2022 走看看