首页
社区
课程
招聘
[原创]CRC32CrackMe的SDK源码。
发表于: 2007-8-22 09:22 16258

[原创]CRC32CrackMe的SDK源码。

2007-8-22 09:22
16258

【说明】应用密码学系列的CrackeMe现在采用方法的是先提供编译好的程序给大家实验,然后我会逐一写出破文,CrackMe的源码也会跟在破文的后面发布出来。代码写的很烂的说,大家凑合着看吧。

// CRC32CrackMe.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"

HINSTANCE hInst;
HICON	hIcon;
HWND  hMain;

//比较两个字符串
BOOL GetStrCmp(LPCTSTR OneStr,LPCTSTR TwoStr)
{
	char str1[256]={0};
	char str2[256]={0};
	lstrcpy(str1,OneStr);
	lstrcpy(str2,TwoStr);
	if (strlen(str1)==strlen(str2))
	{
		for(int i=0;i<strlen(str1);i++)
		{
			if (str1[i]!=str2[i])
			{
				return FALSE;
			}
		}
		return TRUE;
	}
	else
	{
		return FALSE;
	}
}

//动态生成CRC32的码表
unsigned long Crc32Table[256];
void GetCRC32Table()
{
   int i,j;
   unsigned long Value;
   for (i = 0; i < 256; i++)
    {
        Value = i;
        for (j = 0; j < 8; j++)
        {
            if (Value & 1)
                Value = (Value >> 1) ^ 0xEDB88320;
            else
                Value >>= 1;
        }
        Crc32Table[i] = Value;
    }
}

//获取字符串CRC32校验值
void GetCrc32(LPCTSTR InStr,LPTSTR OutStr)
{
	GetCRC32Table();
	ULONG  crc=0xffffffff;
	unsigned char* buffer;
	buffer = (unsigned char*)InStr;
	int len=strlen(InStr);
	for(int i=0; i<len; i++)
	{
		crc = (crc >> 8) ^ Crc32Table[(crc & 0xFF) ^ *buffer++];
	}
	char value[10]={0};
	//转换成16进制字符串
	itoa(crc^0xffffffff,value,16);
	//小写字符转换成大写字符
	for(i=0;i<strlen(value);i++)
	{
		value[i]=toupper(value[i]);
	}
	lstrcpy(OutStr,value);
}

//窗口过程
LRESULT DlgProc(HWND hDlg,UINT uiMsg,WPARAM wParam,LPARAM lParam)
{
	char szUser[256]={0};
	char szCode[256]={0};
	char szTemp[256]={0};
	switch(uiMsg)
	{
	case WM_INITDIALOG:
		//加载图标
		hIcon = LoadIcon(hInst,(LPCTSTR)IDI_ICON);
		SendMessage(hDlg,WM_SETICON,TRUE,(WPARAM)hIcon);
		break;
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
		case IDC_TRIALBTN:
			//取用户并判断是否为空
			GetDlgItemText(hDlg,IDC_EDIT1,szUser,256);
			if (strlen(szUser)<1)
			{
				MessageBox(hDlg,"用户名不能为空请输入!","注册提示",MB_OK | MB_ICONINFORMATION);
				return FALSE;
			}
			//取注册码并判断是否为空
			GetDlgItemText(hDlg,IDC_EDIT2,szCode,256);
			if (strlen(szCode)<1)
			{
				MessageBox(hDlg,"注册码不能为空请输入!","注册提示",MB_OK | MB_ICONINFORMATION);
				return FALSE;
			}
			GetCrc32(szUser,szTemp);
			if (GetStrCmp(szCode,szTemp)==TRUE)
			{
				MessageBox(hDlg,"恭喜你,注册码正确!","注册提示",MB_OK | MB_ICONINFORMATION);
			}
			else
			{
				MessageBox(hDlg,"注册码错误,继续加油!","注册提示",MB_OK | MB_ICONINFORMATION);
			}
			break;
		case IDC_CLOSEBTN:
			EndDialog(hDlg,0);
			break;
		default:
			break;
		}
		break;
	case WM_CLOSE:
		EndDialog(hDlg,0);
		break;
	}
	return FALSE;
}

//入口函数
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	hInst=GetModuleHandle(0);
	DialogBoxParam(hInst,MAKEINTRESOURCE(IDD_MAINDLG),0,(DLGPROC)DlgProc,0);
	ExitProcess(0);
	return 0;
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (20)
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
2
支持你的密码学系列CrackMe源码及破文。
2007-8-22 12:25
0
雪    币: 148
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
走过路过, 看过.
然后 回贴是一种美德.

感谢谢楼主出品的密码学系统的CM.
2007-9-6 14:06
0
雪    币: 148
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
走过路过, 看过.
然后 回贴是一种美德.

感谢谢楼主出品的密码学系列的CM.
2007-9-6 14:07
0
雪    币: 104
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢楼主!
2007-9-12 14:48
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持源码
学习
2007-10-20 11:21
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
这叫做明码比较
2007-10-20 13:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
支持源码
学习  
支持源码
学习  
2008-1-2 19:55
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
9
学习学习
2008-1-3 16:26
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
10
受益非浅啊。谢谢老手。
2008-2-15 08:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习中!!!!!!!
2008-2-17 11:57
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
支持楼主!!写得不错,也很详细哦!!
2008-5-8 18:28
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
支持楼主。感谢为我们这些菜鸟提供。学习资料。
2008-9-14 12:47
0
雪    币: 209
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
支持楼主~希望你能写出更多的分析~哈哈
2008-9-14 15:58
0
雪    币: 605
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢为我们这些菜鸟提供学习资料
2008-10-1 20:55
0
雪    币: 314
活跃值: (10)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
16
正在研究,当不知道这个密码时如何得出密码,当知道一个密码时,能否得出多组密码
2008-10-3 21:37
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
直接 将return改掉!!
2008-11-6 18:57
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
没学过编程看不懂.不过支持下楼主.
2008-11-7 12:37
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
走过路过, 看过.
然后 回贴是一种美德.

感谢谢楼主出品的密码学系统的CM
2010-12-9 06:35
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
20
希望多多开源呵呵,谢谢拉,其实我已经抄楼主的算法几次拉
2010-12-31 21:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢谢楼主出品的密码学系统的CM.
2012-6-2 23:12
0
游客
登录 | 注册 方可回帖
返回
//