【破文作者】   rdsnow[PYG]
【 E-mail 】   rdsnow@163.com
【文章题目】   文件安全专家 V5.9 的简单注册
【软件名称】   文件安全专家5.9
【下载地址】   http://www.adragon.net 或 http://www.ixmx.net/soft/15665.htm 

----------------------------------------------------------------------------------------------
【加密方式】   序列号注册
【破解工具】   FLYOD V1.10
【软件限制】   功能限制
【破解平台】   WinXP SP2

----------------------------------------------------------------------------------------------

【文章简介】

程序VC++编写,无壳,采用了F(用户名)=F(注册码)的注册方法

----------------------------------------------------------------------------------------------
【破解过程】

………………
00410887   .  8BC8            MOV ECX,EAX
00410889   .  E8 96110300     CALL FileSafe.00441A24              ;  取出用户名
0041088E   .  8D4C24 0C       LEA ECX,DWORD PTR SS:[ESP+C]
00410892   .  51              PUSH ECX
00410893   .  68 102B0000     PUSH 2B10
00410898   .  8BCD            MOV ECX,EBP
0041089A   .  E8 A5370300     CALL FileSafe.00444044
0041089F   .  8BC8            MOV ECX,EAX
004108A1   .  E8 7E110300     CALL FileSafe.00441A24              ;  取出注册码
004108A6   .  8B5424 08       MOV EDX,DWORD PTR SS:[ESP+8]
004108AA   .  8B42 F8         MOV EAX,DWORD PTR DS:[EDX-8]
004108AD   .  85C0            TEST EAX,EAX
004108AF   .  0F84 CE000000   JE FileSafe.00410983                ;  检查用户名是否为空
004108B5   .  8B4424 0C       MOV EAX,DWORD PTR SS:[ESP+C]
004108B9   .  8B48 F8         MOV ECX,DWORD PTR DS:[EAX-8]
004108BC   .  85C9            TEST ECX,ECX
004108BE   .  0F84 BF000000   JE FileSafe.00410983                ;  检查注册码是否为空
004108C4   .  57              PUSH EDI
004108C5   .  68 FF000000     PUSH 0FF
004108CA   .  8D4C24 10       LEA ECX,DWORD PTR SS:[ESP+10]
004108CE   .  E8 1F000300     CALL FileSafe.004408F2
004108D3   .  8BD0            MOV EDX,EAX
004108D5   .  83C9 FF         OR ECX,FFFFFFFF
004108D8   .  8BFA            MOV EDI,EDX
004108DA   .  33C0            XOR EAX,EAX
004108DC   .  F2:AE           REPNE SCAS BYTE PTR ES:[EDI]
004108DE   .  F7D1            NOT ECX
004108E0   .  49              DEC ECX
004108E1   .  49              DEC ECX
004108E2   .  74 10           JE SHORT FileSafe.004108F4
004108E4   >  0FBE0411        MOVSX EAX,BYTE PTR DS:[ECX+EDX]
004108E8   .  49              DEC ECX
004108E9   .  8D0480          LEA EAX,DWORD PTR DS:[EAX+EAX*4]
004108EC   .  8D0480          LEA EAX,DWORD PTR DS:[EAX+EAX*4]
004108EF   .  8D3486          LEA ESI,DWORD PTR DS:[ESI+EAX*4]
004108F2   .^ 75 F0           JNZ SHORT FileSafe.004108E4         ;  循环,用户名除第一位外每一位字符的ASC*100,求和
004108F4   >  6A FF           PUSH -1
004108F6   .  8D4C24 10       LEA ECX,DWORD PTR SS:[ESP+10]
004108FA   .  E8 42000300     CALL FileSafe.00440941
004108FF   .  68 FF000000     PUSH 0FF
00410904   .  8D4C24 14       LEA ECX,DWORD PTR SS:[ESP+14]
00410908   .  81CE 19018019   OR ESI,19800119                     ;  将刚才求得的和与0x19800119进行或运算,完成 F(用户名) 
0041090E   .  E8 DFFF0200     CALL FileSafe.004408F2
00410913   .  6A 0A           PUSH 0A
00410915   .  6A 00           PUSH 0
00410917   .  50              PUSH EAX
00410918   .  E8 BBAB0100     CALL FileSafe.0042B4D8              ;  注册码转换为十六进制,完成 F(注册码) 
0041091D   .  83C4 0C         ADD ESP,0C
00410920   .  8D4C24 10       LEA ECX,DWORD PTR SS:[ESP+10]
00410924   .  8BF8            MOV EDI,EAX
00410926   .  6A FF           PUSH -1
00410928   .  E8 14000300     CALL FileSafe.00440941
0041092D   .  3BF7            CMP ESI,EDI                         ;  将 F(用户名) 与 F(注册码) 比较
0041092F   .  5F              POP EDI
00410930   .  6A 40           PUSH 40
00410932   .  68 ACB94600     PUSH FileSafe.0046B9AC
00410937   .  74 15           JE SHORT FileSafe.0041094E          ;  相等就跳到"注册成功"
00410939   .  68 9CB94600     PUSH FileSafe.0046B99C              ;  字符串"注册码不正确"
0041093E   .  8BCD            MOV ECX,EBP
00410940   .  E8 701E0300     CALL FileSafe.004427B5
00410945   .  8BCD            MOV ECX,EBP
00410947   .  E8 8B480300     CALL FileSafe.004451D7
0041094C   .  EB 48           JMP SHORT FileSafe.00410996
0041094E   >  68 90B94600     PUSH FileSafe.0046B990              ;  字符串"注册成功"
00410953   .  8BCD            MOV ECX,EBP
00410955   .  E8 5B1E0300     CALL FileSafe.004427B5

----------------------------------------------------------------------------------------------
【破解心得】

奇怪,这个程序是Anti-OD的,用附加程序会自动关闭自己以及OD,反而直接载入能正常调试,不知道作者是怎么想的;注册方法也不难,那用户名除第一位外的字符ASC相加求和,乘以100,再跟0x19800119(19800119怎么像生日,呵呵!)进行或运算,结果转化为十进制,就得到注册码了,贴上偶写的注册机,偶不会编程,第一次用VC++写代码,高手看了可不要吐。

void CMy001Dlg::OnOK() 
{
  // TODO: Add extra validation here
  
  //CDialog::OnOK();

  UpdateData(true);
  char cName[30];
  int i,nRegcode=0;
  if (m_Edit1==""){
    MessageBox("请输入你的用户名","提示",MB_OK);
    return;
  }
  strcpy(cName,m_Edit1);
  for (i=1;i<m_Edit1.GetLength();i++)  nRegcode += cName[i];
  nRegcode *= 100;  
  nRegcode |=  0x19800119;
  m_Edit2=nRegcode;
  UpdateData(false);
}

注册机就不发了,高手给提提意见.

----------------------------------------------------------------------------------------------
【破解声明】   我是一只小菜鸟,偶得一点心得,愿与大家分享:)

【版权声明】   本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 
----------------------------------------------------------------------------------------------
                                                 文章写于2005-4-25 13:24:26