• 标 题:Crack之亲历手迹4--一个许久以前的心愿-FileSplit2X的注册码生成器 (1千字)
  • 作 者:y97523
  • 时 间:2002-3-9 20:00:01
  • 链 接:http://bbs.pediy.com

Crack之亲历手迹4--一个许久以前的心愿-FileSplit2X的注册码生成器
//-------------------------------------------------
目标程序:FSplit.EXE:2.21 (Build 356)
          可以分割文件,主EXE可以绿色运行
          Visual C++5.0编写,未加壳
破解目标:找到注册码,最好做出注册机
//--------------------------------------------------
注册机代码:
void CFilesplit2XDlg::OnChangeName()
{
        int D1=1,D2=2;
    int D3;
    UpdateData(TRUE);
    if(m_Name!="")
    {
        LPCTSTR  temp=m_Name.GetBuffer(m_Name.GetLength());
        D3=GetmyCode(temp,D1,D2);
        m_Name.ReleaseBuffer();
        m_Code.Format("%d-%d-%d",D1,D2,D3);
    }else
        m_Code="";
    UpdateData(FALSE);
}
密码算法:
int CFilesplit2XDlg::GetmyCode(LPCTSTR Name, int D1, int D2)
{
        __asm
        {
            mov    edi,Name

            mov    ecx, D1
            xor    edx, edx
            lea    eax, [ecx+0xFAC]
            mov    cl, [edi+0]   
            mov    esi, D2
    loc_40687D:
            mov    ebx, eax       
            and    ebx, 0x4000
            cmp    bx, 0x4000
            jz      loc_406890
            add    eax, eax       
            jmp    loc_406899
    loc_406890:
            and    eax, 0x3FFF   
            shl    eax, 1
            or      al, 1
    loc_406899:
            movsx  cx, cl
            xor    eax, esi
            xor    eax, ecx
            mov    cl, [edx+edi+1]
            inc    edx
            test    cl, cl         
            jnz    loc_40687D
            movsx    eax,ax
        };
}
Email:y97523@hotmail.com