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\n",a,b,c,d);
					break;
				}
			}
		}
	}	
}
学习了一下怎么用 随机数

转载于:https://www.cnblogs.com/zcc1414/p/3982525.html

羽翼随机抽取器是一款适用于在聚会,婚礼,庆典,电视节目,单晚会、婚庆、商场、超市,会议,课堂,等场合的软件工具。适用于课堂选择同学名字、知识竞赛、工程招标、专家库抽取、活动抽奖、抽取号码等等用途。 羽翼随机抽取器特点 可据你所定义的抽取范围及步长随机生成数值并支持工程管理。 可选择“抽数字”、“抽名字”、“抽名字”、"抽奖品"等多种摇奖方式,设置摇奖方式参数,适用面广。 可设置滚动文字字体的名称,大小,颜色,滚动框的大小。 软件内置多种外观主题,可自行选择。 在抽奖过程中可设置为不屏蔽或屏蔽已抽名单。 可以锁定抽奖列表,防止他人修改。 抽奖名单可通过EXCEL、Word、TXT 导入、编辑,方便修改。 支持抽奖界面(前台)与控制界面(后台)分别显示在两个显示器中。 自动保存抽取记录,方便查看。 可复制或保存中奖名单。 支持使用快捷键对软件进行各种操作。 可随时修改抽取名单。 支持隐私保护,保护他人的隐私。 自动保存当前软件设置。 支持工程保存,方便下次打开时“直接使用”。 可根据客户的需要定制开发,软件界面及其他均可定制开发。 羽翼随机抽取器 v5.2.5版本更新 修复了初始化软件出错的问题。 修复了部分漏洞。 修复了部分注册软件启动出错的问题。 优化了导入文件功能。 优化了导入姓名功能。 羽翼随机抽取器截图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值