一个Crackme的机器码的生成

 

BOOL CCrackWindowDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 
// 将“关于...”菜单项添加到系统菜单中。

 
// IDM_ABOUTBOX 必须在系统命令范围内。
 ASSERT((IDM_ABOUTBOX & 0xFFF0== IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX 
< 0xF000);

 CMenu
* pSysMenu = GetSystemMenu(FALSE);
 
if (pSysMenu != NULL)
 
{
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  
if (!strAboutMenu.IsEmpty())
  
{
   pSysMenu
->AppendMenu(MF_SEPARATOR);
   pSysMenu
->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }

 }


 
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
 
//  执行此操作
 SetIcon(m_hIcon, TRUE);   // 设置大图标
 SetIcon(m_hIcon, FALSE);  // 设置小图标

 
// TODO: 在此添加额外的初始化代码

 CString str;
 DWORD SeriaNumber 
= NULL;
 
char temp[MAX_PATH];//暂存字符串
 long SeriaNum;

 ::GetVolumeInformation(
"c:/",NULL,NULL,&SeriaNumber,NULL,NULL,NULL,NULL);
 
 
//格式化为字符串
 sprintf(temp,"%x",SeriaNumber);
 
 
for(int i = 0; i < strlen(temp); i++)
 
{
  
if(temp[i] >= 'a' && temp[i] <= 'f')
  
{
   temp[i] 
= temp[i] - 32;//转化为大写
  }

 }


 SeriaNum 
= StrToNum16(temp);//十六进制字符串转化为十进制数字
 
//以十进制形式计算
 SeriaNum = SeriaNum * 12345 + 188968999;//取硬盘序列号*0x3039 + 0xB437027

 
//再次格式化为字符串
 sprintf(temp,"%x",SeriaNum);
 
 
for(int _i = 0; _i < strlen(temp); _i++ )
 
{
  
if(temp[_i] >= 'a' && temp[_i] <= 'f')
  
{
   temp[_i] 
= temp[_i] - 32;
  }

 }

 
 str 
= temp;
 
 SeriaNum 
= StrToNum16(str);//十六进制字符串转化为十进制数字
 
//讲数字格式化为无符号字符串
 str.Format("%u",SeriaNum);
 
//个人习惯问题
 
 Seria.SetWindowText(str.Left(str.GetLength()));
 m_btnOK.SetInactiveBgColor(RGB(
0,0,0));//默认

 
return TRUE;  // 除非设置了控件的焦点,否则返回 TRUE
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值