Subject: [HC] Emi Clock 4.2.6
Date: Mon, 30 Mar 1998 01:16:32 GMT
From: 张亿仁 <IMan@ms1.paLmary.net.tw>
To: post@hc.ml.org

<一> 摘要
software  : emiclock 4.26
home page : http://www.plaza.hitachi-sk.co.jp/~moto
file name : emi95426.zip
reg_name  : yupie
reg_no    : @OF0O6IJ6E

<二> 缘起
win 95系统里老是有一些立意不错,但却是设计很差东西在里头,像是档案总管,剪贴簿,word pad等等.相对的许多取代这些东西的程式就出现啦,这是一个取代win 95里的时钟的程式,日本人写的,画面的挺可爱的,但不晓得是什麽原因在我的机器里设定画面会花花的,是显示卡的问题吗?上面的code输入後它就不让我注册了,看了说明档好像是说注册版会有另一套"养眼"衣服可换,虽然这些衣服由原先不能选择变成可以选择,可惜我换了半天也没换上去,but anyway who cares?

<叁> 执行情形
(1)
载入soft-ice後执行emiclock,进入程式选择注册画面,name处填入yupie ,key填入是1234567890,Ctrl-d进入soft-ice後下bpx getwindowtexta指令,按F5重回到册画面,按下确定soft-ice,马上进入soft-ice.

(2)
bd *,按F11,F5,F11,然後按F12,出现错误讯息.

(3)
重复(2),但这次不用按F12,直接用F10去追.

(4)

0137:00407C93  LEA     EAX,[ESP+10]         ;
0137:00407C97  PUSH    EAX
0137:00407C98  CALL    EBP
0137:00407C9A  TEST    EAX,EAX
0137:00407C9C  JZ      00407D2C
0137:00407CA2  MOV     EDX,[00417628]
0137:00407CA8  LEA     ECX,[ESP+10]
0137:00407CAC  PUSH    ECX                  ;ECX=reg_no
0137:00407CAD  MOV     EAX,[EDX+00000084]   ;@(EDX+84)=reg_name
0137:00407CB3  PUSH    EAX
0137:00407CB4  CALL    0040B5A0
0137:00407CB9  MOV     ECX,[00417628]
0137:00407CBF  ADD     ESP,08
0137:00407CC2  MOV     [ECX+00000080],EAX
0137:00407CC8  MOV     EAX,[00417628]
0137:00407CCD  MOV     ECX,[EAX+00000080]
0137:00407CD3  TEST    ECX,ECX               ;关键点如果跳跃到
0137:00407CD5  JZ      00407CF4              ;00407CF4就失败
0137:00407CD7  MOV     EAX,[EAX+00000088]
0137:00407CDD  LEA     EDX,[ESP+10]
0137:00407CE1  PUSH    EDX
0137:00407CE2  PUSH    EAX
0137:00407CE3  CALL    [KERNEL32!lstrcpy]
0137:00407CE9  POP     EDI
0137:00407CEA  POP     ESI
0137:00407CEB  POP     EBP
0137:00407CEC  POP     EBX
0137:00407CED  ADD     ESP,00000100
0137:00407CF3  RET
0137:00407CF4  MOV     EDX,[004175CC]
0137:00407CFA  LEA     ECX,[ESP+10]
0137:00407CFE  PUSH    000000FF
0137:00407D03  PUSH    ECX
0137:00407D04  PUSH    000000FC
0137:00407D09  PUSH    EDX
0137:00407D0A  CALL    [USER32!LoadStringA]
0137:00407D10  MOV     EAX,[00414538]
0137:00407D15  PUSH    40
0137:00407D17  LEA     ECX,[ESP+14]
0137:00407D1B  PUSH    EAX
0137:00407D1C  PUSH    ECX
0137:00407D1D  PUSH    ESI
0137:00407D1E  CALL    [USER32!MessageBoxA]  ;执行到这里就出现失
0137:00407D24  PUSH    00                    ;败画面

你只要在0137:00407CD5下"rfl -z"不做跳跃就可以完成注册,也不必去算出注册码.往上看到0137:00407CB4这个地方的副程式有些可疑,将中断点摆在这里,用F8切入看看.

0137:0040B5A0  SUB     ESP,18
0137:0040B5A3  PUSH    EBX
0137:0040B5A4  PUSH    EBP
0137:0040B5A5  PUSH    ESI
0137:0040B5A6  MOV     ESI,[ESP+28]
0137:0040B5AA  PUSH    EDI
0137:0040B5AB  MOV     EDI,[KERNEL32!lstrlen]
0137:0040B5B1  PUSH    ESI
0137:0040B5B2  XOR     BL,BL
0137:0040B5B4  CALL    EDI
0137:0040B5B6  TEST    EAX,EAX
0137:0040B5B8  JZ      0040B6B3
0137:0040B5BE  MOV     EBP,[ESP+30]
0137:0040B5C2  PUSH    EBP
0137:0040B5C3  CALL    EDI
0137:0040B5C5  TEST    EAX,EAX
0137:0040B5C7  JZ      0040B6B3
0137:0040B5CD  LEA     EAX,[ESP+10]
0137:0040B5D1  PUSH    00414A50
0137:0040B5D6  PUSH    EAX
0137:0040B5D7  CALL    [KERNEL32!lstrcpy]
0137:0040B5DD  MOV     ECX,[ESI]            ;将reg_name放入ESP+10
0137:0040B5DF  MOV     EDX,[ESI+04]         ;利用你输入的reg_name
0137:0040B5E2  MOV     AL,[ESI+08]          ;在0040B5FD处的副程式
0137:0040B5E5  MOV     [ESP+10],ECX         ;会算出一组数字放入
0137:0040B5E9  PUSH    0041325C             ;ESP+10
0137:0040B5EE  LEA     ECX,[ESP+14]         ;
0137:0040B5F2  PUSH    09                   ;
0137:0040B5F4  PUSH    ECX                  ;
0137:0040B5F5  MOV     [ESP+20],EDX         ;
0137:0040B5F9  MOV     [ESP+24],AL          ;
0137:0040B5FD  CALL    00408970             ;
0137:0040B602  ADD     ESP,0C
0137:0040B605  XOR     EAX,EAX
0137:0040B607  MOV     CL,[EAX+ESP+10]
0137:0040B60B  XOR     BL,CL
0137:0040B60D  INC     EAX
0137:0040B60E  CMP     EAX,09
0137:0040B611  JL      0040B607
0137:0040B613  MOV     DL,[ESP+10]          ;由上面所得到的数字在
0137:0040B617  MOV     AL,[ESP+11]          ;这里进行最後的计最後0137:0040B61B  MOV     CL,[ESP+12]          ;真正的注册码会被放入
0137:0040B61F  AND     DL,0F                ;ESP+24
0137:0040B622  OR      DL,40
0137:0040B625  AND     AL,0F
0137:0040B627  MOV     [ESP+1C],DL
0137:0040B62B  MOV     DL,[ESP+13]
0137:0040B62F  AND     CL,0F
0137:0040B632  OR      AL,40
0137:0040B634  OR      CL,40
0137:0040B637  AND     DL,0F
0137:0040B63A  MOV     [ESP+1D],AL
0137:0040B63E  MOV     AL,[ESP+14]
0137:0040B642  MOV     [ESP+1E],CL
0137:0040B646  MOV     CL,[ESP+15]
0137:0040B64A  OR      DL,30
0137:0040B64D  AND     AL,0F
0137:0040B64F  MOV     [ESP+1F],DL
0137:0040B653  MOV     DL,[ESP+16]
0137:0040B657  AND     CL,0F
0137:0040B65A  OR      AL,40
0137:0040B65C  OR      CL,30
0137:0040B65F  AND     DL,0F
0137:0040B662  MOV     [ESP+20],AL
0137:0040B666  MOV     AL,[ESP+17]
0137:0040B66A  MOV     [ESP+21],CL
0137:0040B66E  MOV     CL,[ESP+18]
0137:0040B672  OR      DL,40
0137:0040B675  AND     AL,0F
0137:0040B677  MOV     [ESP+22],DL
0137:0040B67B  AND     CL,0F
0137:0040B67E  AND     BL,0F
0137:0040B681  LEA     EDX,[ESP+1C]
0137:0040B685  OR      AL,40
0137:0040B687  OR      CL,30
0137:0040B68A  OR      BL,40
0137:0040B68D  PUSH    EBP
0137:0040B68E  PUSH    EDX
0137:0040B68F  MOV     [ESP+2B],AL
0137:0040B693  MOV     [ESP+2C],CL
0137:0040B697  MOV     [ESP+2D],BL

<四> 结论

这个程式在我的机器里一直怪怪的,像是设定的画面一直无法正常显示,如果语系选择英文就无法输入注册码,一定要在日文底下才能操作,不知道是不是显示卡设定有错误?另外最新的版本应该是4.2.7,我也有但没试过,应该是一样吧.

--
如欲取消订阅, 请 mailto:req@hc.ml.org , 内文写上 unsubscribe hc 即可, 谢谢.