破解软件:e族自动关机
软件大小:731
KB
应用平台:Win9x/NT/2000/XP
下载次数:36578
破解工具:TRW1.22
破解难度:very easy
软件下载:http://count.skycn.com/softdown.php?id=3320&url=http://on165-http.skycn.net/down/eShut.exe
软件说明:欢迎使用e族自动关机,它可以在您指定的时间自动关闭计算机。如果您在临睡前有听音乐、评书、英语的喜好,或是因计算机尚未完成工作任务而不能脱身,e族自动关机是您的最佳选择。未注册版只能使用18次。
半个多月没碰过电脑了,今天好不容易捞到机会,赶紧驾猫上网,发现论坛里面一如既往的热闹,令人高兴的是论坛5终于出炉了,赶紧下下来,顺便下了这个小软件,分析了一下,发现是个超级简单但非常好用的小软件,本不好意思往上贴,想到自已菜鸟,无所谓了,献给所有喜爱破解的菜鸟。
无壳,用Delphi编写,任意填入注册码12345678,下BPX
HMEMCPY(用BPX GETWINDOWTEXTA断不下来),点下一步,程序被中断
BC *,PMODULE,按7下F12,再按F10,来到以下代码
0167:004707C2
CMP DWORD [EBP-30],BYTE +00 <---程序中断于此,判断是否输入了注册码
0167:004707C6
JNZ 004707DA
0167:004707C8 MOV
EAX,[EBP-04]
0167:004707CB MOV DWORD [EAX+03B8],05
0167:004707D5
JMP 00470896
0167:004707DA XOR
EAX,EAX
0167:004707DC PUSH EBP
0167:004707DD PUSH
DWORD 0047087F
0167:004707E2 PUSH DWORD [FS:EAX]
0167:004707E5
MOV [FS:EAX],ESP
0167:004707E8 LEA
EDX,[EBP-34]
0167:004707EB MOV EAX,[EBP-04]
0167:004707EE
MOV EAX,[EAX+0318]
0167:004707F4
CALL 0043B71C
0167:004707F9
MOV EAX,[EBP-34] <---取输入的注册码
0167:004707FC
CALL 00408960 <---此Call将输入的注册码转换成16进制值,返回值在EAX中
0167:00470801
MOV EBX,EAX
0167:00470803 MOV EAX,[EBP-04]
0167:00470806
MOV EAX,[EAX+03B0] <---取机器码的16进制值
0167:0047080C
MOV CL,01
0167:0047080E MOV EDX,EBX
0167:00470810 CALL
00464D88 <---关键的比对Call,跟进
0167:00470815
MOV EDX,[0047508C]
0167:0047081B MOV
[EDX],AL
0167:0047081D
MOV EAX,[0047508C]
0167:00470822 CMP
BYTE [EAX],00
0167:00470825
JZ 00470868 <---关键跳转
0167:00470827
MOV EAX,[EBP-04]
0167:0047082A MOV
DWORD [EAX+03B8],04
0167:00470834 MOV EAX,EBX
0167:00470836
XOR EDX,EDX
0167:00470838 PUSH
EDX
0167:00470839 PUSH EAX
0167:0047083A LEA
EAX,[EBP-38]
0167:0047083D CALL 004088D8
0167:00470842
MOV EDX,[EBP-38]
0167:00470845 MOV
EAX,[EBP-04]
0167:00470848 MOV EAX,[EAX+033C]
0167:0047084E
CALL 0043B74C
0167:00470853 MOV EAX,[EBP-04]
0167:00470856
MOV EAX,[EAX+0300]
0167:0047085C MOV
EDX,00470B94
0167:00470861 CALL 0043B74C
0167:00470866
JMP SHORT 00470875
0167:00470868 MOV
EAX,[EBP-04]
0167:0047086B MOV DWORD
[EAX+03B8],05
0167:00470875 XOR EAX,EAX
0167:00470877
POP EDX
0167:00470878 POP ECX
0167:00470879
POP ECX
0167:0047087A MOV [FS:EAX],EDX
0167:0047087D
JMP SHORT 00470896
跟进上面的那个关键Call,来到如下代码:
0167:00464D89
MOV EBP,ESP
0167:00464D8B ADD
ESP,BYTE -08
0167:00464D8E PUSH EBX
0167:00464D8F
PUSH ESI
0167:00464D90 XOR EBX,EBX
<---EBX=0
0167:00464D92
MOV [EBP-08],EBX
0167:00464D95 MOV
[EBP-04],EDX <---取注册码的16进制值到[EBP-04]中
0167:00464D98
XOR EDX,EDX
0167:00464D9A PUSH
EBP
0167:00464D9B PUSH DWORD 00464E13
0167:00464DA0
PUSH DWORD [FS:EDX]
0167:00464DA3 MOV
[FS:EDX],ESP
0167:00464DA6 XOR EBX,EBX
0167:00464DA8
XOR EAX,27DFFC3A <---EAX中为机器码的16进制值,与27DFFC3A或后的数值为真码
0167:00464DAD
CMP EAX,[EBP-04] <---真假码比较
0167:00464DB0
JNZ 00464DB4
0167:00464DB2 MOV
BL,01 <---EBX=01
0167:00464DB4
TEST CL,CL
0167:00464DB6 JZ
00464DFD
0167:00464DB8 MOV DL,01
0167:00464DBA
MOV EAX,[0045DA80]
0167:00464DBF CALL
0045DB80
0167:00464DC4 MOV ESI,EAX
0167:00464DC6
MOV CL,01
0167:00464DC8 MOV EDX,00464E2C
0167:00464DCD
MOV EAX,ESI
0167:00464DCF CALL
0045DC84
0167:00464DD4 TEST AL,AL
0167:00464DD6 JZ
00464DF6
0167:00464DD8 MOV EAX,[EBP-04]
0167:00464DDB
XOR EDX,EDX
0167:00464DDD PUSH
EDX
0167:00464DDE PUSH EAX
0167:00464DDF LEA
EAX,[EBP-08]
0167:00464DE2 CALL 004088D8
0167:00464DE7
MOV ECX,[EBP-08]
0167:00464DEA MOV
EDX,00464E4C
0167:00464DEF MOV EAX,ESI
0167:00464DF1
CALL 0045DE20
0167:00464DF6 MOV EAX,ESI
0167:00464DF8
CALL 00403724
0167:00464DFD XOR EAX,EAX
0167:00464DFF
POP EDX
0167:00464E00 POP ECX
0167:00464E01
POP ECX
0167:00464E02 MOV [FS:EAX],EDX
0167:00464E05
PUSH DWORD 00464E1A
0167:00464E0A LEA
EAX,[EBP-08]
0167:00464E0D CALL 00404490
0167:00464E12
RET
0167:00464E13 JMP 00403EB8
0167:00464E18
JMP SHORT 00464E0A
0167:00464E1A MOV
EAX,EBX <---根据EBX的值置标志位EAX的值
0167:00464E1C POP ESI
0167:00464E1D POP
EBX
0167:00464E1E POP ECX
0167:00464E1F
POP ECX
0167:00464E20 POP EBP
0167:00464E21
RET
这个软件的算法非常简单,将机器码的16进制值与27DFFC3A作或运算后的结果的10进制值即为正确注册码。
软件注册成功后将注册信息保存在注册表的
“HKEY_CURRENT_USER/Software/eNation/eShut”中,重启时会取出进行比对