- UID
 - 1481
 
 注册时间2005-5-8
阅读权限20
最后登录1970-1-1
以武会友 
   
 
 
 
TA的每日心情  | 衰 2024-4-11 22:10 | 
|---|
 
  签到天数: 53 天 [LV.5]常住居民I  
 | 
 
【破文作者】   rdsnow[PYG] 
 
【 E-mail 】   [email protected] 
 
【文章题目】   文件安全专家 V5.9 的简单注册 
 
【软件名称】   文件安全专家5.9 
 
【下载地址】   http://www.adragon.net 或 http://www.ixmx.net/soft/15665.htm  
 
---------------------------------------------------------------------------------------------- 
【加密方式】   序列号注册 
 
【破解工具】   FLYOD V1.10 
 
【软件限制】   功能限制 
 
【破解平台】   WinXP SP2 
 
---------------------------------------------------------------------------------------------- 
【软件简介】 
 
文件安全专家基本功能如下:1. 禁止复制文件,被保护的文件不能被复制到任何存储设备上,更有效的保护您的机密文件;2. 禁止读文件,充分保护机密文件,被文件防火墙保护的文件内容不能被Windows和其它任何软件读取;3. 禁止文件被修改,被保护的文件不能被Windows和其它任何软件修改;4. 禁止删除文件,被保护的文件不能被Windows和其它任何软件删除;5. 硬盘写保护,有效避免恶意病毒和黑客软件的破坏,文件防火墙保护硬盘不被改写和破坏;6. 硬盘资料禁止复制和读取,保护机密文件不被复制和非法传播;7. 隐藏文件,被隐藏的文件不能被Windows和其它任何软件找到;8. 可执行代码的保护功能,您可以自定义可以运行的程序,对于有害和可疑软件文件防火墙进行过滤,有效禁止其运行。 
 
【文章简介】 
 
程序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 
 
[ Last edited by rdsnow on 2005-6-11 at 05:26 PM ] |   
 
 
 
 |