【破解日期】 2006年4月6日 22:51
【破解作者】 冷血书生[OCN][DFCG]
【作者邮箱】 meiyou
【作者主页】 meiyou
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 易通文件夹锁2006 V2.8.1
【下载地址】 http://www.shareware.cn/pub/14197.html
【软件大小】 2.68 MB
【加壳方式】 ASPack 2.12 -> Alexey Solodovnikov
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

应lzq1973 兄弟的要求写的,本今晚不想写,虽然简单,但却花掉N个小时,晕啊~没办法,俺还是菜鸟一个!

003CF1E4   A1 C0C93D00   mov eax,dword ptr ds:[3DC9C0]
003CF1E9   8B00         mov eax,dword ptr ds:[eax]
003CF1EB   E8 5C81FEFF   call ETDirLoc.003B734C
003CF1F0   8D45 F4       lea eax,dword ptr ss:[ebp-C]
003CF1F3   E8 54FAFFFF   call ETDirLoc.003CEC4C               ; 获取硬盘ID计算机器码
003CF1F8   8D4D F0       lea ecx,dword ptr ss:[ebp-10]
003CF1FB   8BD7         mov edx,edi
003CF1FD   A1 48DC3D00   mov eax,dword ptr ds:[3DDC48]
003CF202   E8 55FCFFFF   call ETDirLoc.003CEE5C               ; 注册算法CALL
003CF207   8B45 F0       mov eax,dword ptr ss:[ebp-10]           ; 真码
003CF20A   8BD6         mov edx,esi
003CF20C   E8 1759F9FF   call ETDirLoc.00364B28               ; 经典比较
003CF211   0F85 A0000000   jnz ETDirLoc.003CF2B7
003CF217   B2 01       mov dl,1
003CF219   A1 F4D93C00   mov eax,dword ptr ds:[3CD9F4]
    
////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////// 跟进 call ETDirLoc.003CEC4C   ///////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////


003CEC6A   E8 5DFEFFFF   call ETDirLoc.003CEACC
003CEC6F   8D55 F8       lea edx,dword ptr ss:[ebp-8]
003CEC72   8B45 FC       mov eax,dword ptr ss:[ebp-4]
003CEC75   E8 929DF9FF   call ETDirLoc.00368A0C
003CEC7A   8B55 F8       mov edx,dword ptr ss:[ebp-8]
003CEC7D   8D45 FC       lea eax,dword ptr ss:[ebp-4]
003CEC80   E8 3F5BF9FF   call ETDirLoc.003647C4
003CEC85   837D FC 00     cmp dword ptr ss:[ebp-4],0             ; 是否有硬盘?
003CEC89   74 22       je short ETDirLoc.003CECAD
003CEC8B   8D45 F4       lea eax,dword ptr ss:[ebp-C]
003CEC8E   50         push eax
003CEC8F   33C9         xor ecx,ecx
003CEC91   BA 12000000   mov edx,12                           ; edx=12
003CEC96   8B45 FC       mov eax,dword ptr ss:[ebp-4]           ; 硬盘ID转移
003CEC99   E8 FA000000   call ETDirLoc.003CED98               ; 机器码算法CALL
003CEC9E   8B55 F4       mov edx,dword ptr ss:[ebp-C]
003CECA1   B8 48DC3D00   mov eax,ETDirLoc.003DDC48


////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////// 跟进 call ETDirLoc.003CED98   ///////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////



003CEDC3   E8 1C5CF9FF   call ETDirLoc.003649E4               ; 获取长度
003CEDC8   8BF8         mov edi,eax                                 ; 转移
003CEDCA   85FF         test edi,edi
003CEDCC   7E 61       jle short ETDirLoc.003CEE2F
003CEDCE   BE 01000000   mov esi,1                                 ; esi=1
003CEDD3   8B45 FC       mov eax,dword ptr ss:[ebp-4]
003CEDD6   0FB64430 FF   movzx eax,byte ptr ds:[eax+esi-1]       ; 依次取硬盘ID ASCII值
003CEDDB   99         cdq
003CEDDC   F77D F8       idiv dword ptr ss:[ebp-8]               ; /12
003CEDDF   8BDA         mov ebx,edx                             ; 结果转移
003CEDE1   33DE         xor ebx,esi                               ; ebx xor esi
003CEDE3   837D F4 01     cmp dword ptr ss:[ebp-C],1             ; 与1比较
003CEDE7   75 2A       jnz short ETDirLoc.003CEE13           ; 不相等就跳,如果不跳,就走下面的计算
003CEDE9   8BC3         mov eax,ebx
003CEDEB   B9 24000000   mov ecx,24
003CEDF0   99         cdq
003CEDF1   F7F9         idiv ecx
003CEDF3   8BDA         mov ebx,edx
003CEDF5   8D45 F0       lea eax,dword ptr ss:[ebp-10]
003CEDF8   8A93 30C63D00   mov dl,byte ptr ds:[ebx+3DC630]
003CEDFE   E8 095BF9FF   call ETDirLoc.0036490C
003CEE03   8B55 F0       mov edx,dword ptr ss:[ebp-10]
003CEE06   8B45 08       mov eax,dword ptr ss:[ebp+8]
003CEE09   E8 DE5BF9FF   call ETDirLoc.003649EC
003CEE0E   8B45 08       mov eax,dword ptr ss:[ebp+8]
003CEE11   EB 18       jmp short ETDirLoc.003CEE2B
003CEE13   8D55 EC       lea edx,dword ptr ss:[ebp-14]
003CEE16   8BC3         mov eax,ebx
003CEE18   E8 0B9EF9FF   call ETDirLoc.00368C28               ; 将值转化为十进制
003CEE1D   8B55 EC       mov edx,dword ptr ss:[ebp-14]
003CEE20   8B45 08       mov eax,dword ptr ss:[ebp+8]
003CEE23   E8 C45BF9FF   call ETDirLoc.003649EC
003CEE28   8B45 08       mov eax,dword ptr ss:[ebp+8]
003CEE2B   46         inc esi
003CEE2C   4F         dec edi
003CEE2D ^ 75 A4       jnz short ETDirLoc.003CEDD3           ; 循环计算
003CEE2F   33C0         xor eax,eax
003CEE31   5A         pop edx
003CEE32   59         pop ecx
003CEE33   59         pop ecx
003CEE34   64:8910       mov dword ptr fs:[eax],edx
003CEE37   68 51EE3C00   push ETDirLoc.003CEE51
003CEE3C   8D45 EC       lea eax,dword ptr ss:[ebp-14]
003CEE3F   BA 02000000   mov edx,2
003CEE44   E8 0759F9FF   call ETDirLoc.00364750
003CEE49   C3         retn

////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////// 跟进 call ETDirLoc.003CEE5C   ///////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////

003CEE9F   E8 405BF9FF   call ETDirLoc.003649E4
003CEEA4   85C0         test eax,eax
003CEEA6   0F84 A2000000   je ETDirLoc.003CEF4E
003CEEAC   8D45 E4       lea eax,dword ptr ss:[ebp-1C]
003CEEAF   E8 7858F9FF   call ETDirLoc.0036472C
003CEEB4   8B45 FC       mov eax,dword ptr ss:[ebp-4]
003CEEB7   E8 285BF9FF   call ETDirLoc.003649E4
003CEEBC   8945 EC       mov dword ptr ss:[ebp-14],eax
003CEEBF   8B45 F8       mov eax,dword ptr ss:[ebp-8]
003CEEC2   E8 1D5BF9FF   call ETDirLoc.003649E4
003CEEC7   8945 E8       mov dword ptr ss:[ebp-18],eax
003CEECA   BF 01000000   mov edi,1
003CEECF   BB 01000000   mov ebx,1
003CEED4   C745 F0 0100000>mov dword ptr ss:[ebp-10],1           ; [ebp-10]=1
003CEEDB   8B45 FC       mov eax,dword ptr ss:[ebp-4]
003CEEDE   0FB64438 FF   movzx eax,byte ptr ds:[eax+edi-1]       ; 依次取机器码ASCII值
003CEEE3   2B45 F0       sub eax,dword ptr ss:[ebp-10]                 ; eax-[ebp-10]
003CEEE6   03C7         add eax,edi                                       ; eax+edi
003CEEE8   8B55 F8       mov edx,dword ptr ss:[ebp-8]
003CEEEB   0FB6541A FF   movzx edx,byte ptr ds:[edx+ebx-1]       ; 依次取用户名ASCII值
003CEEF0   33C2         xor eax,edx                                     ; eax xor edx
003CEEF2   03C3         add eax,ebx                                   ; eax+edx
003CEEF4   99         cdq
003CEEF5   33C2         xor eax,edx                                   ; eax xor edx
003CEEF7   2BC2         sub eax,edx                                   ; eax-edx
003CEEF9   8BF0         mov esi,eax                                     ; eax转移
003CEEFB   8BC6         mov eax,esi
003CEEFD   B9 24000000   mov ecx,24                                 ; ecx=24
003CEF02   99         cdq
003CEF03   F7F9         idiv ecx                                       ; /24
003CEF05   8BF2         mov esi,edx                                   ; edx为结果
003CEF07   8D45 E0       lea eax,dword ptr ss:[ebp-20]
003CEF0A   8A96 30C63D00   mov dl,byte ptr ds:[esi+3DC630]         ; 从密码表取相应的位数
003CEF10   E8 F759F9FF   call ETDirLoc.0036490C
003CEF15   8B55 E0       mov edx,dword ptr ss:[ebp-20]
003CEF18   8D45 E4       lea eax,dword ptr ss:[ebp-1C]
003CEF1B   E8 CC5AF9FF   call ETDirLoc.003649EC
003CEF20   3B7D EC       cmp edi,dword ptr ss:[ebp-14]
003CEF23   7D 03       jge short ETDirLoc.003CEF28
003CEF25   47         inc edi
003CEF26   EB 05       jmp short ETDirLoc.003CEF2D
003CEF28   BB 01000000   mov ebx,1
003CEF2D   3B5D E8       cmp ebx,dword ptr ss:[ebp-18]
003CEF30   7D 03       jge short ETDirLoc.003CEF35
003CEF32   43         inc ebx
003CEF33   EB 05       jmp short ETDirLoc.003CEF3A
003CEF35   BB 01000000   mov ebx,1
003CEF3A   FF45 F0       inc dword ptr ss:[ebp-10]
003CEF3D   837D F0 15     cmp dword ptr ss:[ebp-10],15
003CEF41 ^ 75 98       jnz short ETDirLoc.003CEEDB
003CEF43   8B45 F4       mov eax,dword ptr ss:[ebp-C]
003CEF46   8B55 E4       mov edx,dword ptr ss:[ebp-1C]
003CEF49   E8 3258F9FF   call ETDirLoc.00364780
003CEF4E   33C0         xor eax,eax
003CEF50   5A         pop edx
003CEF51   59         pop ecx
003CEF52   59         pop ecx
003CEF53   64:8910       mov dword ptr fs:[eax],edx
003CEF56   68 70EF3C00   push ETDirLoc.003CEF70
003CEF5B   8D45 E0       lea eax,dword ptr ss:[ebp-20]
003CEF5E   BA 02000000   mov edx,2
003CEF63   E8 E857F9FF   call ETDirLoc.00364750
003CEF68   C3         retn

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

机器码算法总结:

(1)(硬盘IDASCII值/12) xor esi(esi初始为1,其后为累加值)
(2)每一次的计算结果转换为十进制后连接起来,就是机器码了


注册码算法总结:

(1)(机器码ASCII值 xor 用户名ASCII值 + n(n第一次为1,第二次为2,第三次为3,……) )/24
(2)每一次的结果结果去查密码表,每一次所查的结果连接起来即为注册码



密码表: CM5EQ9RPZ6DV4B3ULC7YSG8KFNA1HIG2JOT

////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
--------------------------------------------------------------------------------
【破解总结】


没啥好总结,纯属娱乐!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!