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 即可, 谢谢.