shenhaiyu 发表于 2006-12-15 14:03:12

易通电脑锁2006 V5.7.0.1 一劳永逸的自注册破解方法

【破文标题】易通电脑锁2006 V5.7.0.1 一劳永逸的自注册破解方法
【破文作者】藍色の夢
【作者邮箱】[email protected]
【作者主页】https://www.chinapyg.com
【破解工具】OD,W32Dasm,ASPackDie
【破解平台】XP SP2
【软件名称】易通电脑锁2006 V5.7.0.1
【软件大小】3256K
【原版下载】http://www.etongsoft.net
【保护方式】壳,注册码,伪装文件夹
【软件简介】
    易通电脑锁软件集电脑使用时间管理、定时系统控制亲作、多任务管理亲作、系统保护与修复、
日志记录与查询等一系列普通而实用的功能,是您电脑安全和使用管理的全新解决方案。
    1.灵活的电脑使用时间管理:通过时间分段和累计使用时间两种时间控制方式对电脑的使用时间
进行全方位的控制管理。时间分段控制提供了7*24小时的时间控制表。用户可随意地设置每天电脑
使用时间段,系统为您提供了三种电脑状态选择,分别为:电脑正常使用状态、电脑锁定状态、电
脑关机状态。累计使用时间控制提供了每天累计使用电脑时间表,用户可随意地设置每天使用电脑
的总时间。当用户设置的累计时间使用完后,电脑将处于选择锁定计算机或关闭计算机状态。
    2.全面的定时系统控制:本功能提供了自定、累计、延时、开机、系统无亲作等五种定时控制方
式。定时任务提供了定时关机、重启、注销、锁定、待机、休眠、打开程序或文件、关闭程序、提
醒等亲作任务。
    3.贴心的多任务控制管理:您可以随意地按每年、每月、每周、每天、每小时等时间控制方式来
制定任务。可以添加、修改、删除定时任务。控制任务提供了定时关机、重启、注销、锁定、待机
、休眠、打开程序或文件、关闭程序、提醒等亲作任务。
    4.方便的一键控制亲作:你可以随意地设置关闭计算机、重启计算机、锁定计算机、注销计算机
、待机、休眠的热键,通过您设置的热键,就可以快捷地执行关闭、重启、注销、锁定、待机、休
眠计算机的功能。
    5.强大的系统保护与修复:Internet Explorer就是大家常说的IE浏览器,绝大多数用户都是使用
IE来浏览网页的。上网带来的主要问题就是安全问题,由于病毒或某些恶意程序给系统注册表造成
损坏,导致系统的某些重要功能被更改,给用户造成损失,您通过本功能就可轻松应对这些烦人的
事了。
    6.详细的日志记录与查询:系统为您提供了计算机开关机日志和整个 Windows 系统的文件亲作
日志供用户统计查看。计算机开关机日志可以让你方便、详细地了解到您计算机的使用时间情况;
Windows文件亲作日志可以让你全面的了解到整个系统的文件亲作情况。
    7.神奇的定时开机设置:本功能主要是让计算机定时自动开机。要实现自动开机,主板必须有相
应的支持才行,近几年生产的主板绝大多数都支持自动开机,我们只要在BIOS中进行相应设置即可
。不过不同主板、不同版本的BIOS设置方法会有所不同。一般常见的有以下三种品牌的CMOS:
Awards / AMIBIOS / Phoenix。

【破解声明】就在前两天刚刚破解了易通文件夹锁,感觉意由未尽,于是一鼓作气干脆再来一个!

=========================================================
【破解过程】

【分析过程】
    前两天发表“易通文件夹锁2006 V3.0.5.0 一劳永逸的自注册破解方法”这篇文章的时候就有个想
法,是不是易通所有软件的注册方式都一样呢,于是上网下载,安装后惊奇的发现易通电脑锁注册
界面与文件夹锁惊人的相似,干脆一不做二不休一齐干掉它!

    跟踪安装后发现在system32目录下写了个 CLockLogOn.dll 文件,用 PE-Scan 一看又是 ASP 的
壳,同样使用ASPackDie轻松搞定(不知为何易通所有软件都是ASP的壳,号称反汇编多强多强,连
个自主开发的壳都没有...当然,对于我们来说是件好事。为什么要脱它的壳?根据文件夹锁的破解
经验,猜想的注册程序就在这里,后面证明猜想成立,呵呵),启动OD调试,什么?找不到安装路
径!居然隐藏了安装文件夹,显示系统和所有隐藏文件后又发现双击进去就是控制面板(天,弄得这
么复杂有什么用啊,不如干脆用自己开发的文件夹锁加个密多安全啊,呵呵),这个好解决,右击
易通电脑锁 快捷方式,选属性->查找目标,怎么样,打开安装目录了吧,轻松跳过文件夹加密(这
方法绝对比在命令行下进去快n倍)!
    启动OD,调用 CLockSvr.exe ,F9运行。。。什么,又被检查到了,居然还是反调试,没办法,
先隐藏OD吧(不会?看看前辈们的文章吧,这可是破解的基本功)。运行一看还是不行,弹不出注册
对话框,居然做得这么复杂!!无意中发现运行 CLock.exe 也能弹出注册对话框,挂OD一看居然
成功运行了。呵呵,漏洞百出啊。
    接下来有两种方法定位:
    1.下bp MessageBoxA断点。
    2.根据前一篇文章中的 某些 ASCII 进行字符串定位(参看下文的代码注释)。
    然后 F9 运行并填入假码 11111-22222-33333-44444 后断下,打开反汇编窗口,找到如下代码
进行分析(注册名:shenhaiyu)。

==========================================================

018E2E9A    8BC0            mov eax,eax                        ; 注册算法入口
018E2E9C    55            push ebp
018E2E9D    8BEC            mov ebp,esp
018E2E9F    B9 0B000000   mov ecx,0B
018E2EA4    6A 00         push 0
018E2EA6    6A 00         push 0
018E2EA8    49            dec ecx
018E2EA9^ 75 F9         jnz short clocklog.018E2EA4
018E2EAB    53            push ebx
018E2EAC    8BD8            mov ebx,eax
018E2EAE    33C0            xor eax,eax
018E2EB0    55            push ebp
018E2EB1    68 1E318E01   push clocklog.018E311E
018E2EB6    64:FF30         push dword ptr fs:
018E2EB9    64:8920         mov dword ptr fs:,esp
018E2EBC    8D55 F4         lea edx,dword ptr ss:
018E2EBF    8B83 04030000   mov eax,dword ptr ds:
018E2EC5    E8 8274FDFF   call clocklog.018BA34C
018E2ECA    8B45 F4         mov eax,dword ptr ss:
018E2ECD    8D55 F8         lea edx,dword ptr ss:
018E2ED0    E8 9B5AF9FF   call clocklog.01878970
018E2ED5    837D F8 00      cmp dword ptr ss:,0         ; 判断用户名是否为空
018E2ED9    0F84 80000000   je clocklog.018E2F5F
018E2EDF    8D55 EC         lea edx,dword ptr ss:
018E2EE2    8B83 08030000   mov eax,dword ptr ds:
018E2EE8    E8 5F74FDFF   call clocklog.018BA34C
018E2EED    8B45 EC         mov eax,dword ptr ss:
018E2EF0    8D55 F0         lea edx,dword ptr ss:
018E2EF3    E8 785AF9FF   call clocklog.01878970
018E2EF8    837D F0 00      cmp dword ptr ss:,0          ; 判断第1组注册码是否为空
018E2EFC    0F85 9A000000   jnz clocklog.018E2F9C
018E2F02    8D55 E4         lea edx,dword ptr ss:
018E2F05    8B83 10030000   mov eax,dword ptr ds:
018E2F0B    E8 3C74FDFF   call clocklog.018BA34C
018E2F10    8B45 E4         mov eax,dword ptr ss:
018E2F13    8D55 E8         lea edx,dword ptr ss:
018E2F16    E8 555AF9FF   call clocklog.01878970
018E2F1B    837D E8 00      cmp dword ptr ss:,0          ; 判断第2组注册码是否为空
018E2F1F    75 7B         jnz short clocklog.018E2F9C
018E2F21    8D55 DC         lea edx,dword ptr ss:
018E2F24    8B83 14030000   mov eax,dword ptr ds:
018E2F2A    E8 1D74FDFF   call clocklog.018BA34C
018E2F2F    8B45 DC         mov eax,dword ptr ss:
018E2F32    8D55 E0         lea edx,dword ptr ss:
018E2F35    E8 365AF9FF   call clocklog.01878970
018E2F3A    837D E0 00      cmp dword ptr ss:,0          ; 判断第3组注册码是否为空
018E2F3E    75 5C         jnz short clocklog.018E2F9C
018E2F40    8D55 D4         lea edx,dword ptr ss:
018E2F43    8B83 18030000   mov eax,dword ptr ds:
018E2F49    E8 FE73FDFF   call clocklog.018BA34C
018E2F4E    8B45 D4         mov eax,dword ptr ss:
018E2F51    8D55 D8         lea edx,dword ptr ss:
018E2F54    E8 175AF9FF   call clocklog.01878970
018E2F59    837D D8 00      cmp dword ptr ss:,0          ; 判断第4组注册码是否为空
018E2F5D    75 3D         jnz short clocklog.018E2F9C
018E2F5F    68 10000400   push 40010
018E2F64    8D55 D0         lea edx,dword ptr ss:
018E2F67    B8 38318E01   mov eax,clocklog.018E3138
018E2F6C    E8 8B76FFFF   call clocklog.018DA5FC
018E2F71    8B45 D0         mov eax,dword ptr ss:
018E2F74    E8 B31BF9FF   call clocklog.01874B2C
018E2F79    50            push eax
018E2F7A    8D55 CC         lea edx,dword ptr ss:
018E2F7D    B8 4C318E01   mov eax,clocklog.018E314C
018E2F82    E8 7576FFFF   call clocklog.018DA5FC
018E2F87    8B45 CC         mov eax,dword ptr ss:
018E2F8A    E8 9D1BF9FF   call clocklog.01874B2C
018E2F8F    50            push eax
018E2F90    6A 00         push 0
018E2F92    E8 9144F9FF   call <jmp.&user32.MessageBoxA>       ; jmp 到 user32.MessageBoxA
018E2F97    E9 F8000000   jmp clocklog.018E3094
018E2F9C    8D55 C8         lea edx,dword ptr ss:
018E2F9F    8B83 08030000   mov eax,dword ptr ds:
018E2FA5    E8 A273FDFF   call clocklog.018BA34C
018E2FAA    FF75 C8         push dword ptr ss:         ; 第一组注册码 ebp-38=11111
018E2FAD    8D55 C4         lea edx,dword ptr ss:
018E2FB0    8B83 10030000   mov eax,dword ptr ds:
018E2FB6    E8 9173FDFF   call clocklog.018BA34C
018E2FBB    FF75 C4         push dword ptr ss:         ; 第二组注册码 ebp-3C=22222
018E2FBE    8D55 C0         lea edx,dword ptr ss:
018E2FC1    8B83 14030000   mov eax,dword ptr ds:
018E2FC7    E8 8073FDFF   call clocklog.018BA34C
018E2FCC    FF75 C0         push dword ptr ss:         ; 第三组注册码 ebp-40=33333
018E2FCF    8D55 BC         lea edx,dword ptr ss:
018E2FD2    8B83 18030000   mov eax,dword ptr ds:
018E2FD8    E8 6F73FDFF   call clocklog.018BA34C
018E2FDD    FF75 BC         push dword ptr ss:         ; 第四组注册码 ebp-44=44444
018E2FE0    8D45 FC         lea eax,dword ptr ss:
018E2FE3    BA 04000000   mov edx,4
018E2FE8    E8 071AF9FF   call clocklog.018749F4
018E2FED    8D55 B8         lea edx,dword ptr ss:
018E2FF0    8B83 04030000   mov eax,dword ptr ds:
018E2FF6    E8 5173FDFF   call clocklog.018BA34C
018E2FFB    8B55 B8         mov edx,dword ptr ss:      ; 注册名送edx
018E2FFE    8B45 FC         mov eax,dword ptr ss:         ; 假注册码送eax
018E3001    E8 4E7AFFFF   call clocklog.018DAA54               ; 调用注册算法call(1)
018E3006    84C0            test al,al                           ; 标志位检验
018E3008    74 4B         je short clocklog.018E3055         ; 标志位判断,关键跳(但在此文不重要)
018E300A    68 40000400   push 40040
018E300F    8D55 B4         lea edx,dword ptr ss:
018E3012    B8 38318E01   mov eax,clocklog.018E3138
018E3017    E8 E075FFFF   call clocklog.018DA5FC
018E301C    8B45 B4         mov eax,dword ptr ss:
018E301F    E8 081BF9FF   call clocklog.01874B2C
018E3024    50            push eax
018E3025    8D55 B0         lea edx,dword ptr ss:
018E3028    B8 7C318E01   mov eax,clocklog.018E317C
018E302D    E8 CA75FFFF   call clocklog.018DA5FC
018E3032    8B45 B0         mov eax,dword ptr ss:
018E3035    E8 F21AF9FF   call clocklog.01874B2C
018E303A    8BD0            mov edx,eax
018E303C    A1 78598E01   mov eax,dword ptr ds:
018E3041    8B00            mov eax,dword ptr ds:
018E3043    59            pop ecx
018E3044    E8 9F95FCFF   call clocklog.018AC5E8
018E3049    B8 BC318E01   mov eax,clocklog.018E31BC            ; ASCII "closeclocksvr"
018E304E    E8 8595FFFF   call clocklog.018DC5D8               ; 这个字串对于定位很重要
018E3053    EB 3F         jmp short clocklog.018E3094
018E3055    68 10000400   push 40010

=======================================================
算法Call(1)
018DAA59    51            push ecx                           ; 算法Call(1)开始
018DAA5A    51            push ecx
018DAA5B    51            push ecx
018DAA5C    51            push ecx
018DAA5D    51            push ecx
018DAA5E    51            push ecx
018DAA5F    51            push ecx
018DAA60    51            push ecx
018DAA61    53            push ebx
018DAA62    56            push esi
018DAA63    57            push edi
018DAA64    8BFA            mov edi,edx
018DAA66    8BF0            mov esi,eax
018DAA68    33C0            xor eax,eax
018DAA6A    55            push ebp
018DAA6B    68 D0AB8D01   push clocklog.018DABD0
018DAA70    64:FF30         push dword ptr fs:
018DAA73    64:8920         mov dword ptr fs:,esp
018DAA76    C645 FF 00      mov byte ptr ss:,0
018DAA7A    B8 90A08D01   mov eax,clocklog.018DA090
018DAA7F    E8 14F8FFFF   call clocklog.018DA298
018DAA84    84C0            test al,al
018DAA86    74 0C         je short clocklog.018DAA94
018DAA88    A1 78598E01   mov eax,dword ptr ds:
018DAA8D    8B00            mov eax,dword ptr ds:
018DAA8F    E8 B01AFDFF   call clocklog.018AC544
018DAA94    B8 449E8D01   mov eax,clocklog.018D9E44
018DAA99    E8 FAF7FFFF   call clocklog.018DA298
018DAA9E    84C0            test al,al
018DAAA0    74 0C         je short clocklog.018DAAAE
018DAAA2    A1 78598E01   mov eax,dword ptr ds:
018DAAA7    8B00            mov eax,dword ptr ds:
018DAAA9    E8 961AFDFF   call clocklog.018AC544
018DAAAE    B8 589F8D01   mov eax,clocklog.018D9F58
018DAAB3    E8 E0F7FFFF   call clocklog.018DA298
018DAAB8    84C0            test al,al
018DAABA    74 0C         je short clocklog.018DAAC8
018DAABC    A1 78598E01   mov eax,dword ptr ds:
018DAAC1    8B00            mov eax,dword ptr ds:
018DAAC3    E8 7C1AFDFF   call clocklog.018AC544
018DAAC8    803D 406C8E01 0>cmp byte ptr ds:,0
018DAACF    74 1D         je short clocklog.018DAAEE
018DAAD1    6A 30         push 30
018DAAD3    B9 E4AB8D01   mov ecx,clocklog.018DABE4
018DAAD8    BA F0AB8D01   mov edx,clocklog.018DABF0
018DAADD    A1 78598E01   mov eax,dword ptr ds:
018DAAE2    8B00            mov eax,dword ptr ds:
018DAAE4    E8 FF1AFDFF   call clocklog.018AC5E8
018DAAE9    E9 C7000000   jmp clocklog.018DABB5
018DAAEE    8D45 F4         lea eax,dword ptr ss:
018DAAF1    E8 46FAFFFF   call clocklog.018DA53C               ; 调用根据硬盘号取得机器码的子程序
018DAAF6    8D4D F0         lea ecx,dword ptr ss:
018DAAF9    8BD7            mov edx,edi                        ; edi=注册名
018DAAFB    A1 3C6C8E01   mov eax,dword ptr ds:
018DAB00    E8 47FCFFFF   call clocklog.018DA74C               ; 调用注册算法子程序
018DAB05    8B45 F0         mov eax,dword ptr ss:      ; EDX中存的就是注册真码
018DAB08    8BF2            mov esi,edx                        ; !!!!!关键所在,请看后文分析!!!!!!!
018DAB0A    E8 699FF9FF   call clocklog.01874A78               ; 由算法call得出真正注册码
018DAB0F    0F85 A0000000   jnz clocklog.018DABB5
018DAB15    B2 01         mov dl,1
018DAB17    A1 28988D01   mov eax,dword ptr ds:
018DAB1C    E8 07EEFFFF   call clocklog.018D9928
018DAB21    8BD8            mov ebx,eax
018DAB23    BA 00000080   mov edx,80000000
018DAB28    8BC3            mov eax,ebx
018DAB2A    E8 99EEFFFF   call clocklog.018D99C8
018DAB2F    8D45 F8         lea eax,dword ptr ss:
018DAB32    50            push eax
018DAB33    B9 01000000   mov ecx,1
018DAB38    BA 17000000   mov edx,17
018DAB3D    A1 3C6C8E01   mov eax,dword ptr ds:
018DAB42    E8 41FBFFFF   call clocklog.018DA688
018DAB47    B1 01         mov cl,1
018DAB49    8B55 F8         mov edx,dword ptr ss:
018DAB4C    8BC3            mov eax,ebx
018DAB4E    E8 D9EEFFFF   call clocklog.018D9A2C
018DAB53    84C0            test al,al
018DAB55    74 50         je short clocklog.018DABA7
018DAB57    8D55 EC         lea edx,dword ptr ss:
018DAB5A    8BC6            mov eax,esi
018DAB5C    E8 9BFAFFFF   call clocklog.018DA5FC
018DAB61    8B45 EC         mov eax,dword ptr ss:
018DAB64    50            push eax
018DAB65    8D55 E8         lea edx,dword ptr ss:
018DAB68    B8 14AC8D01   mov eax,clocklog.018DAC14            ; ASCII "cpsn"
018DAB6D    E8 8AFAFFFF   call clocklog.018DA5FC               ; 这个字串对于定位很重要
018DAB72    8B55 E8         mov edx,dword ptr ss:
018DAB75    8BC3            mov eax,ebx
018DAB77    59            pop ecx
018DAB78    E8 4BF0FFFF   call clocklog.018D9BC8
018DAB7D    8D55 E4         lea edx,dword ptr ss:
018DAB80    8BC7            mov eax,edi
018DAB82    E8 75FAFFFF   call clocklog.018DA5FC
018DAB87    8B45 E4         mov eax,dword ptr ss:
018DAB8A    50            push eax
018DAB8B    8D55 E0         lea edx,dword ptr ss:
018DAB8E    B8 24AC8D01   mov eax,clocklog.018DAC24            ; ASCII "user"
018DAB93    E8 64FAFFFF   call clocklog.018DA5FC               ; 这个字串对于定位很重要
018DAB98    8B55 E0         mov edx,dword ptr ss:
018DAB9B    8BC3            mov eax,ebx
018DAB9D    59            pop ecx
018DAB9E    E8 25F0FFFF   call clocklog.018D9BC8
018DABA3    C645 FF 01      mov byte ptr ss:,1
018DABA7    8BC3            mov eax,ebx
018DABA9    E8 EAEDFFFF   call clocklog.018D9998
018DABAE    8BC3            mov eax,ebx
018DABB0    E8 D38CF9FF   call clocklog.01873888
018DABB5    33C0            xor eax,eax
018DABB7    5A            pop edx
018DABB8    59            pop ecx
018DABB9    59            pop ecx
018DABBA    64:8910         mov dword ptr fs:,edx
018DABBD    68 D7AB8D01   push clocklog.018DABD7
018DABC2    8D45 E0         lea eax,dword ptr ss:
018DABC5    BA 07000000   mov edx,7
018DABCA    E8 D19AF9FF   call clocklog.018746A0
018DABCF    C3            retn                                 ; 算法Call(1)结束

=======================================================

【破解总结】
    怎么样,看到代码后开始沾沾自喜了吧,居然和 易通文件夹锁 一模一样,接下来不用我说如
何破解你也应该会了吧(前提是你看了我之前的那篇文章)。
    不废话了简短说明一下,程序在 018DAB08 的 esi 和 edx 两个寄存器中分别存放真假注册码。
而且接下来是将 edx 中的假码覆盖写入 esi 的真码,很明显是要将假码压入堆栈在 018DAB0A
调用比较call。
    这时应该想到,把 018DAB08 的 mov edx,esi 改为 mov esi,edx 会将堆栈中存的假码全都换
成程序自己算出来的真码,不管程序运行到哪里都是用两个真码进行比较,自然就会成功注册了。
    既然已经找到要改的地方了,接下来可以使用 W32Dasm 打开脱壳后的 CLockLogOn.dll 定位
到 018DAB08 将 8BD6 mov edx,esi 改为 8BF2 mov esi,edx,然后覆盖原文件,运行软件随意
输入用户名与注册码,再次成功注册了。
    回来验证一下,将原文件覆盖回去,运行软件,嗯,仍然是注册版。只要保留修改后的
CLockLogOn.dll 文件就可以不用OD跟码,一劳永逸的让程序自己注册了。

    这篇破文基本上抄袭我的上一篇破文,目的只是为菜鸟们提供简单的破解方法,技术含量较
低,而且很多分析是建立在前辈们的成果基础上的,希望大家不要用鸡蛋砸我哦,有兴趣的朋
友请自己动手分析学习啊^^

另外有朋友说我的文章是摘自看雪论坛的,呵呵,其实那是我自己发的,只是想多几个途径发表,不知道
是否犯了规矩,希望大家多指正.

[ 本帖最后由 藍色の夢 于 2006-12-27 13:40 编辑 ]

kiss-you 发表于 2006-12-15 20:05:07

哥们,坐你的沙发了,我是丁浩然,干脆把易通电脑助手也搞了吧!易通电脑锁超级好用,希望下的朋友顶上!!!

[ 本帖最后由 kiss-you 于 2006-12-15 20:59 编辑 ]

las1974 发表于 2006-12-16 00:40:37

顶顶顶,不顶不行了,真是厉害,可惜我还是菜鸟

shenhaiyu 发表于 2006-12-16 17:15:37

电脑助手已经破解了,只是还没发表而已

ljfu 发表于 2006-12-17 10:38:47

兄弟真是太厉害了,你用不同的名字来发表文章引起误会.我再次表示道歉,以后多多向兄弟学习算法,希望能得到你的指教.

lijun520 发表于 2006-12-17 10:52:07

学习一下,你的分析,有时间我们多交流一下.

菜儿 发表于 2006-12-17 13:17:06

不错...

hangyubin 发表于 2006-12-17 17:35:13

楼主历害!努力学习!

jackiewen 发表于 2007-1-3 23:28:21

可以发一下是怎么破解的吗
很想学啊。

mcdc888 发表于 2007-1-3 23:57:03

谢谢楼主分享,学习一下你的分析,
页: [1] 2
查看完整版本: 易通电脑锁2006 V5.7.0.1 一劳永逸的自注册破解方法