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

📄 axekgdlg.cpp

📁 破解很多程序的序列号算法程序
💻 CPP
字号:
// axekgDlg.cpp : implementation file

//



#include "stdafx.h"

#include "axekg.h"

#include "axekgDlg.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



/////////////////////////////////////////////////////////////////////////////

// CAboutDlg dialog used for App About



class CAboutDlg : public CDialog

{

public:

        CAboutDlg();



// Dialog Data

        //{{AFX_DATA(CAboutDlg)

        enum { IDD = IDD_ABOUTBOX };

        //}}AFX_DATA



        // ClassWizard generated virtual function overrides

        //{{AFX_VIRTUAL(CAboutDlg)

        protected:

        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

        //}}AFX_VIRTUAL



// Implementation

protected:

        //{{AFX_MSG(CAboutDlg)

        //}}AFX_MSG

        DECLARE_MESSAGE_MAP()

};



CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

        //{{AFX_DATA_INIT(CAboutDlg)

        //}}AFX_DATA_INIT

}



void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

        CDialog::DoDataExchange(pDX);

        //{{AFX_DATA_MAP(CAboutDlg)

        //}}AFX_DATA_MAP

}



BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

        //{{AFX_MSG_MAP(CAboutDlg)

                // No message handlers

        //}}AFX_MSG_MAP

END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////

// CAxekgDlg dialog



CAxekgDlg::CAxekgDlg(CWnd* pParent /*=NULL*/)

        : CDialog(CAxekgDlg::IDD, pParent)

{

        //{{AFX_DATA_INIT(CAxekgDlg)

        m_Name = _T("");

        m_Company = _T("");

        m_Serial = _T("");

        //}}AFX_DATA_INIT

        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32

        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}



void CAxekgDlg::DoDataExchange(CDataExchange* pDX)

{

        CDialog::DoDataExchange(pDX);

        //{{AFX_DATA_MAP(CAxekgDlg)

        DDX_Text(pDX, IDC_EDIT1, m_Name);

        DDX_Text(pDX, IDC_EDIT2, m_Company);

        DDX_Text(pDX, IDC_EDIT3, m_Serial);

        //}}AFX_DATA_MAP

}



BEGIN_MESSAGE_MAP(CAxekgDlg, CDialog)

        //{{AFX_MSG_MAP(CAxekgDlg)

        ON_WM_SYSCOMMAND()

        ON_WM_PAINT()

        ON_WM_QUERYDRAGICON()

        ON_BN_CLICKED(IDOK, OnOk)

        //}}AFX_MSG_MAP

END_MESSAGE_MAP()



/////////////////////////////////////////////////////////////////////////////

// CAxekgDlg message handlers



BOOL CAxekgDlg::OnInitDialog()

{

        CDialog::OnInitDialog();



        // Add "About..." menu item to system menu.



        // IDM_ABOUTBOX must be in the system command range.

        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

        ASSERT(IDM_ABOUTBOX < 0xF000);



        CMenu* pSysMenu = GetSystemMenu(FALSE);

        CString strAboutMenu;

        strAboutMenu.LoadString(IDS_ABOUTBOX);

        if (!strAboutMenu.IsEmpty())

        {

                pSysMenu->AppendMenu(MF_SEPARATOR);

                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

        }



        // Set the icon for this dialog.  The framework does this automatically

        //  when the application's main window is not a dialog

        SetIcon(m_hIcon, TRUE);                 // Set big icon

        SetIcon(m_hIcon, FALSE);                // Set small icon



        // TODO: Add extra initialization here



        return TRUE;  // return TRUE  unless you set the focus to a control

}



void CAxekgDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

        if ((nID & 0xFFF0) == IDM_ABOUTBOX)

        {

                CAboutDlg dlgAbout;

                dlgAbout.DoModal();

        }

        else

        {

                CDialog::OnSysCommand(nID, lParam);

        }

}



// If you add a minimize button to your dialog, you will need the code below

//  to draw the icon.  For MFC applications using the document/view model,

//  this is automatically done for you by the framework.



void CAxekgDlg::OnPaint()

{

        if (IsIconic())

        {

                CPaintDC dc(this); // device context for painting



                SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);



                // Center icon in client rectangle

                int cxIcon = GetSystemMetrics(SM_CXICON);

                int cyIcon = GetSystemMetrics(SM_CYICON);

                CRect rect;

                GetClientRect(&rect);

                int x = (rect.Width() - cxIcon + 1) / 2;

                int y = (rect.Height() - cyIcon + 1) / 2;



                // Draw the icon

                dc.DrawIcon(x, y, m_hIcon);

        }

        else

        {

                CDialog::OnPaint();

        }

}



// The system calls this to obtain the cursor to display while the user drags

//  the minimized window.

HCURSOR CAxekgDlg::OnQueryDragIcon()

{

        return (HCURSOR) m_hIcon;

}



//

//   OK . Here comes the real Key generation code .

//   If u don't understand it too bad . u have to learn more c/c++/asm

//   MegaDoc UCF

//

// My Fist Crack for UCF in order 2 become a member

// This was coded The biggest hurry in 1 H.

// Marq: this is dedicated to ya.

// I included ASM source that code the string to serial.

// Tools used:

// * IDA Pro

// * SI 3







void CAxekgDlg::OnOk()

{

        // TODO: Add your control notification handler code here

char mll[200];

char buf[200];

char final[200];

unsigned int res;

int i;

// get the data's from dialog

UpdateData(TRUE);

// build bufer

strcpy(mll,m_Name);

strcat(mll,m_Company);

strcat(mll,"DENNETTE");



// crypt time

__asm {

        push    esi

        lea     edx, mll

        xor     esi, esi

        cmp     byte ptr [edx], 0

        jz      short loc_4070AF

loc_40708C:

        shl     esi, 4

        inc     edx

        movsx   eax, byte ptr [edx-1]

        add     esi, eax

        mov     eax, esi

        and     eax, 0F0000000h

        jz      short loc_4070A6

        mov     ecx, eax

        shr     ecx, 18h

        xor     esi, ecx



loc_4070A6:

        not     eax

        and     esi, eax

        cmp     byte ptr [edx], 0

        jnz     short loc_40708C



loc_4070AF:

        mov     res, esi

        pop     esi

}

// now we have 32b number let's make a decent serial

sprintf(buf,"%u",res);

// we have 2 arrange that buffer a litle bit to get real serial no.



for ( i = strlen(buf) ; i <9 ; i++)

 strcat(buf,"0");



for ( i = 0 ; i <3 ; i ++)

        final[i]= buf[i];

final[3] = '-';

for ( i = 0 ; i <3 ; i ++)

        final[4+i]= buf[3+i];

final[7] = '-';

for ( i = 0 ; i <3 ; i ++)

        final[8+i]= buf[6+i];

final[12]=0;

// now let the user know his Serial

m_Serial = final;

UpdateData(FALSE);

}

⌨️ 快捷键说明

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