⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chardict.cpp

📁 是一个解密用的词典产生工具, 可以产生字符和数字的各种组合.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
											}

											run = true;
											for(j = 0; j < (int)(startEnd[3][1] - startEnd[3][0] + 1); j ++)
											{
												if (count[j] > (int)maxRepeatNum)
												{
													run = false;
													break;
												}
											}
											if (run)
											{
												buffer[posx++] = 0x0d;
												buffer[posx++] = 0x0a;
												WriteStringFile(buffer,posx);
											}
										}
										for(i[2] = startEnd[2][0]; i[2] <= startEnd[2][1]; i[2] ++)
										{
											if (maxPartNumber > 2)
											{
												posx = pos;
												for(j = 0; j < (int)(startEnd[2][1] - startEnd[2][0] + 1); j ++)
													count[j] = 0;

												for(j = 0; j < ((int)maxPartNumber - 2); j ++)
												{
													k = maxPartNumber - j - 1;
													if (numflag[2] == 0)
														buffer[posx++] = numCharacter[i[k]];
													else
														buffer[posx++] = numCharacter2[i[k]];
													count[i[k] - startEnd[2][0]] ++;
												}

												run = true;
												for(j = 0; j < (int)(startEnd[2][1] - startEnd[2][0] + 1); j ++)
												{
													if (count[j] > (int)maxRepeatNum)
													{
														run = false;
														break;
													}
												}
												if (run)
												{
													buffer[posx++] = 0x0d;
													buffer[posx++] = 0x0a;
													WriteStringFile(buffer,posx);
												}
											}
											for(i[1] = startEnd[1][0]; i[1] <= startEnd[1][1]; i[1] ++)
											{
												if (maxPartNumber > 1)
												{
													posx = pos;
													for(j = 0; j < (int)(startEnd[1][1] - startEnd[1][0] + 1); j ++)
														count[j] = 0;

													for(j = 0; j < ((int)maxPartNumber - 1); j ++)
													{
														k = maxPartNumber - j - 1;
														if (numflag[1] == 0)
															buffer[posx++] = numCharacter[i[k]];
														else
															buffer[posx++] = numCharacter2[i[k]];
														count[i[k] - startEnd[1][0]] ++;
													}

													run = true;
													for(j = 0; j < (int)(startEnd[1][1] - startEnd[1][0] + 1); j ++)
													{
														if (count[j] > (int)maxRepeatNum)
														{
															run = false;
															break;
														}
													}
													if (run)
													{
														buffer[posx++] = 0x0d;
														buffer[posx++] = 0x0a;
														WriteStringFile(buffer,posx);
													}
												}
												for(i[0] = startEnd[0][0]; i[0] <= startEnd[0][1]; i[0] ++)
												{
													posx = pos;
													for(j = 0; j < (int)(startEnd[0][1] - startEnd[0][0] + 1); j ++)
														count[j] = 0;

													for(j = 0; j < (12 - (int)maxPartNumber); j ++)
														i[12 - j - 1] = startEnd[12 - j - 1][1] + 1;  //for exit

													for(j = 0; j < (int)maxPartNumber; j ++)
													{
														k = maxPartNumber - j - 1;
														if (numflag[0] == 0)
															buffer[posx++] = numCharacter[i[k]];
														else
															buffer[posx++] = numCharacter2[i[k]];
														count[i[k] - startEnd[0][0]] ++;
													}

													run = true;
													for(j = 0; j < (int)(startEnd[0][1] - startEnd[0][0] + 1); j ++)
													{
														if (count[j] > (int)maxRepeatNum)
														{
															run = false;
															break;
														}
													}
													if (run)
													{
														buffer[posx++] = 0x0d;
														buffer[posx++] = 0x0a;
														WriteStringFile(buffer,posx);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	if (fpx)
		fclose(fpx);

	return 0;
}

void change(unsigned char *in,unsigned char *out)
{
	int i,c;
	for(i = 0; i < 2; i ++)
	{
		c	= in[i] >> 4;
		if (c < 10)
			out[2*i] = '0' + c;
		else
			out[2*i] = 'a' + c - 10;
		c	= in[i] & 0x0f;

		if (c < 10)
			out[2*i+1] = '0' + c;
		else
			out[2*i+1] = 'a' + c - 10;
	}

}



int readLine(unsigned char *buffer, long int buflen, long int begin, long int *end)
{
	if (*end > buflen)
		return FAIL;
	
	long int i = begin;
	while(i < buflen)
	{
		if ((buffer[i] == 0x0d) && (buffer[i+1] == 0x0a))
		{
			i += 2;
			break;
		}
		else
			i++;
	}

	if ((i >= buflen) && (buffer[i - 1] != 0x0a))
			return FAIL;
	else
		*end	= i;

	return OK;
}


int checkStringOK(unsigned char *buffer,const char *name)
{
	int i = 0;
	while (name[i] != 0)
	{
		if (buffer[i] != name[i])
			return FAIL;
		i++;
	}
	if (i == 0) return FAIL;
	else return OK;
}

int getName(unsigned char *buffer, long int begin, long int end, unsigned char *name)
{
	long int i = begin,j;
	while(i < end)
	{
		if (buffer[i] != ':')
			i ++;
		else
		{
			i ++;
			break;
		}
	}
	if (i >= end)
		return FAIL;

	while(i < end)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}
	if (i >= end)
		return FAIL;

	j	= 0;
	while(i < end)
	{
		if ((buffer[i] != ' ') && (buffer[i] != 0x09) && 
			(buffer[i] != 0x0d) && (buffer[i] != 0x0a))
		{
			name[j++]	= buffer[i];
			i ++;
		}
		else
			break;
	}
	name[j]	= 0;

	return OK;
}

int getData(unsigned char *buffer, long int begin, long int end, DWORD *data)
{
	long int i = begin,j;
	unsigned char buf[100];
	while(i < end)
	{
		if (buffer[i] != ':')
			i ++;
		else
		{
			i ++;
			break;
		}
	}
	if (i >= end)
		return FAIL;

	while(i < end)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}
	if (i >= end)
		return FAIL;

	j	= 0;
	while(i < end)
	{
		if ((buffer[i] != ' ') && (buffer[i] != 0x09) && 
			(buffer[i] != 0x0d) && (buffer[i] != 0x0a))
		{
			buf[j++]	= buffer[i];
			i ++;
		}
		else
			break;
	}
	buf[j]	= 0;
	*data	= 0;
	for(i = 0; i < j; i ++)
	{
		*data	= (*data * 10) + (buf[i] - '0');
	}

	return OK;
}

void readPartData(unsigned char *buffer, long int len, DWORD *start, DWORD *end, DWORD *flag)
{
	long int i = 0;
	while(i < len)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}

	*start = 0;
	while ((i < len) && (buffer[i] >= '0') && (buffer[i] <= '9'))
	{
		*start	= (*start * 10) + (buffer[i] - '0');
		i ++;
	}

	while(i < len)
	{
		if (buffer[i] != ',')
			i ++;
		else
			break;
	}
	i ++;

	while(i < len)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}

	*end = 0;
	while ((i < len) && (buffer[i] >= '0') && (buffer[i] <= '9'))
	{
		*end	= (*end * 10) + (buffer[i] - '0');
		i ++;
	}

	while(i < len)
	{
		if (buffer[i] != ',')
			i ++;
		else
			break;
	}
	i ++;

	while(i < len)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}

	*flag = 0;
	while ((i < len) && (buffer[i] >= '0') && (buffer[i] <= '9'))
	{
		*flag	= (*flag * 10) + (buffer[i] - '0');
		i ++;
	}
}

int getDatax(DWORD len, unsigned char *buffer, long int begin, long int end, DWORD *data)
{
	long int i = begin,j,k;
	while(i < end)
	{
		if (buffer[i] != ':')
			i ++;
		else
		{
			i ++;
			break;
		}
	}
	if (i >= end)
		return FAIL;

	while(i < end)
	{
		if ((buffer[i] == ' ') || (buffer[i] == 0x09))
			i ++;
		else
			break;
	}
	if (i >= end)
		return FAIL;

	for(j = 0; j < (long int)len; j ++)
	{
		DWORD *start = data + 3*j;
		DWORD *endx  = data + 3*j + 1; 
		DWORD *flag  = data + 3*j + 2;

		while(i < end)
		{
			if (buffer[i] != '{')
				i ++;
			else
			{
				i ++;
				break;
			}
		}
		k = i;
		while(k < end)
		{
			if (buffer[k] != '}')
				k ++;
			else
				break;
		}
		k -= i;
		readPartData(&buffer[i], k, start, endx, flag);
		i += k;
	}

	return OK;
}

int checkDataOK(unsigned char *buffer, long int *begin, long int end)
{
	long int i = *begin;
	int go = 0;

	if (buffer[i] == '/')
		return FAIL;

	while (i < end)
	{
		while (((buffer[i] == ' ') || (buffer[i] == 0x09)) && (i < end));

		if ((buffer[i] >= '0') && (buffer[i] <= '9'))
		{
				go = 1;
				break;
		}
		i ++;
	}

	if (go)
	{
		*begin	= i;
		return OK;
	}
	return FAIL;
}

int changeData(unsigned char *buffer, long int begin, long int end, unsigned char *bufOut1,unsigned char *bufOut2)
{
	long int i = begin;
	int j = 0;

	while(i < end)
	{
		while ((i < end) && ((buffer[i] == ' ') || (buffer[i] == 0x09)))
			i ++;
		if ((buffer[i] >= '0') && (buffer[i] <= '9') &&
			(buffer[i+1] >= '0') && (buffer[i+1] <= '9') &&
			((buffer[i+2] == ' ') || (buffer[i+2] == 0x09) || (buffer[i+2] == 0x0d)))
		{
			if (j >= 6)
				bufOut2[0]	= (buffer[i] - '0') * 10 + buffer[i+1] - '0';
			else
				bufOut1[j]	= (buffer[i] - '0') * 10 + buffer[i+1] - '0';
			j ++;
			if (j == 7)
				return OK;
			i	= i + 3;
		}
		else
			return FAIL;
	}
	return FAIL;
}

unsigned long int changeData5(unsigned char *pChar)
{
	unsigned long int data;
	int i;
	data	= 0;
	for(i = 0; i < 10; i ++)
	{
		data	= data * 10;
		if ((pChar[i] >= '0') && (pChar[i] <= '9'))
			data	+= (unsigned long int)(pChar[i] - '0');
		else
		{
			data	= data / 10;
			break;
		}
	}
	return data;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -