PowerDirector 1.00.06.9 破解. 恭喜小球! (9千字)
PowerDirector 1.00.06.9 破解
『GUEOR(S.M)破解』
歡迎訪問我的網頁:sm.longcity.net
qq:5537188
看了高人Passion的一些文章後,才對破解Install sheild 產生了興趣.謝謝Passion的破文,願Passion能多寫好的破文.
用isd將setup.inx反編譯.如下:
拖動捲軸時發現"INVALIDCDKEY"字樣,看來這就是彈出錯誤的對話的函式了.根據破解的一般手法,判斷前的函式應是比較註冊碼了.運氣好!
/* 00006383: 0021 */ function_4(g_str28);
/* 0000638C: 0006 */ g_number44 = LAST_RESULT;
/* 00006396: 000D */ g_number56 = g_number44 == 0;
/* 000063A5: 0004 */ if(! g_number56) goto label_16;->不等於0跳
/* 000063B1: 0021 */ function_343("INVALIDCDKEY");
return的值不能為0,進入function_4.可喜的是比較在指令碼中進行,減小了難度,也不用跟蹤了.^_^
function NUMBER function_4(s0)
STRING s1;
STRING s2;
STRING s3;
STRING s4;
STRING s5;
STRING s7;
STRING s8;
NUMBER n1;
NUMBER n2;
NUMBER n6;
begin
/* 0000ABC5: 0022 */ // -- Start Function Code -- //
/* 0000ABCE: 0021 */ function_537(s0); ->求註冊碼長度
/* 0000ABD7: 0006 */ n6 = LAST_RESULT;
/* 0000ABE1: 000E */ n6 = n6 != 16;
->n6=16(要16位)
/* 0000ABF0: 0004 */ if(! n6) goto label_146; ->相等就跳
/* 0000ABFC: 0027 */ // -- Start Return Code -- //
/* 0000AC00: 0023 */ return 0;
label_146:
/* 0000AC0B: 0029 */ StrSub(s1, s0, 0, 2); ->s1為註冊碼前2位.
/* 0000AC1F: 0014 */ s8 = g_str25 ^ "CUSTOM.INI";
/* 0000AC36: 0021 */ function_384(s8, "PowerDirector", "KEY", g_str28);
/* 0000AC58: 0006 */ n6 = LAST_RESULT;
/* 0000AC62: 000D */ n6 = n6 == 0;
/* 0000AC71: 0004 */ if(! n6) goto label_147;
/* 0000AC7D: 0006 */ s5 = g_str28;
/* 0000AC87: 002B */ StrCompare(s1, s5);
/* 0000AC91: 0006 */ n6 = LAST_RESULT;
/* 0000AC9B: 000E */ n6 = n6 != 0;
/* 0000ACAA: 0004 */ if(! n6) goto label_147;
/* 0000ACB6: 0027 */ // -- Start Return Code -- //
/* 0000ACBA: 0023 */ return 0;
label_147:
/* 0000ACC5: 002B */ StrCompare(s1, "PR");
->s1="PR",即註冊碼前2位為 PR
/* 0000ACD1: 0006 */ n6 = LAST_RESULT;
/* 0000ACDB: 000E */ n6 = n6 != 0;
/* 0000ACEA: 0004 */ if(! n6) goto label_148; ->相等就跳
/* 0000ACF6: 0027 */ // -- Start Return Code -- //
/* 0000ACFA: 0023 */ return 0;
label_148:
/* 0000AD05: 0029 */ StrSub(s3, s0, 2, 1);
->s3為註冊碼第3位
/* 0000AD19: 0029 */ StrSub(s4, s0, 13, 3);
->s4為註冊碼第14,15,16位
/* 0000AD2D: 0007 */ s7 = s3 + s4;
->s7為"(3+14+15+16)"
/* 0000AD3A: 002C */ StrToNum(n1, s7);
->字串轉換成數字n1
/* 0000AD44: 0006 */ n6 = LAST_RESULT;
/* 0000AD4E: 0009 */ n6 = n6 < 0;
/* 0000AD5D: 0004 */ if(! n6) goto label_149;
/* 0000AD69: 0027 */ // -- Start Return Code -- //
/* 0000AD6D: 0023 */ return 0;
label_149:
/* 0000AD78: 0029 */ StrSub(s2, s0, 3, 10);
-> s2為註冊碼第4位~第13位(10個)
/* 0000AD8C: 002B */ StrCompare(s1, "PR");
/* 0000AD98: 0006 */ n6 = LAST_RESULT;
/* 0000ADA2: 000D */ n6 = n6 == 0;
/* 0000ADB1: 0004 */ if(! n6) goto label_150;
/* 0000ADBD: 0021 */ function_5(s2, 32);
/* 0000ADCB: 0006 */ n2 = LAST_RESULT;
label_150:
/* 0000ADD7: 000E */ n6 = n2 != n1;
->n1即(3+14+15+16)
/* 0000ADE4: 0004 */ if(! n6) goto label_151;
/* 0000ADF0: 0027 */ // -- Start Return Code -- //
/* 0000ADF4: 0023 */ return 0;
進入function_5:
〖function NUMBER function_5(s0, n0)
--形參 s0=s2 n0=32
STRING s1;
STRING s2;
STRING s3;
NUMBER n1;
NUMBER n2;
NUMBER n3;
NUMBER n4;
NUMBER n5;
NUMBER n6;
NUMBER n7;
begin
/* 0000AE1A: 0022 */ // -- Start Function Code -- //
/* 0000AE23: 0006 */ n5 = 1;
/* 0000AE2F: 0021 */ function_6(s0, s1); =>進入function_6(
)
/* 0000AE3B: 0006 */ n6 = LAST_RESULT; -->return n6=1
s1="00000000000"
/* 0000AE45: 000D */ n7 = n6 == 0;
/* 0000AE54: 0004 */ if(! n7) goto label_153; jump
/* 0000AE60: 0027 */ // -- Start Return Code -- //
/* 0000AE64: 0023 */ return n5;
( n5=1) 錯!
進入function_6( ):
【function NUMBER function_6(s0, s1) ->s0=s2
NUMBER n0;
NUMBER n1;
NUMBER n2;
NUMBER n3;
NUMBER n4;
begin
/* 0000B003: 0022 */ // -- Start Function Code -- //
/* 0000B00C: 0021 */ function_537(s0);
-->求s0的長度
/* 0000B015: 0006 */ n1 = LAST_RESULT;
-->n1=10
/* 0000B01F: 0009 */ n2 = n1 < 0;
/* 0000B02E: 0004 */ if(! n2) goto label_160;
/* 0000B03A: 0027 */ // -- Start Return Code -- //
/* 0000B03E: 0023 */ return 0;
label_160:
/* 0000B049: 0006 */ n0 = 0;
/* 0000B055: 000F */ n2 = n1 - 1;
-->n2=9
label_161:
/* 0000B066: 000B */ n3 = n0 <= n2;
-->迴圈10次
/* 0000B073: 0004 */ if(! n3) goto label_164;
/* 0000B07F: 001E */ n3 = s0[n0]; \
/* 0000B08C: 0009 */ n3 = n3 < 48; |
/* 0000B09B: 001E */ n4 = s0[n0]; |
->判斷10個字元在0~9之間
/* 0000B0A8: 000A */ n4 = n4 > 57; /
/* 0000B0B7: 0018 */ n3 = n3 || n4;
/* 0000B0C4: 0004 */ if(! n3) goto label_162; ->成立其一就不跳,不跳回比較簡單.
s1會為"00000000000",後面轉化為數字
成為0.那麼填字母即可.
/* 0000B0D0: 001D */ s1[n0] = 48; s1=0
->s1="00000000000"
/* 0000B0DF: 0005 */ goto label_163;
label_162:
/* 0000B0EA: 001E */ n3 = s0[n0];
->填數字的運算.
/* 0000B0F7: 001D */ s1[n0] = n3;
label_163:
/* 0000B106: 0007 */ n0 = n0 + 1; ->n0++
/* 0000B115: 0005 */ goto label_161;
label_164:
/* 0000B120: 0027 */ // -- Start Return Code -- //
/* 0000B124: 0023 */ return 1;
/* 0000B12D: 0026 */ // -- Create Local Variables -- //
end; 】
return 全域性變數s1="00000000000".
label_153:
/* 0000AE6D: 0006 */ n1 = 1;
label_154:
/* 0000AE7B: 000B */ n7 = n1 <= 2;
/* 0000AE8A: 0004 */ if(! n7) goto label_156;
/* 0000AE96: 0021 */ function_7(s1, s2, s3);
=>進入function_7( )
/* 0000AEA5: 0006 */ n6 = LAST_RESULT; =>return s2="000000"
s3="000000"
/* 0000AEAF: 000D */ n7 = n6 == 0;
/* 0000AEBE: 0004 */ if(! n7) goto label_155;
/* 0000AECA: 0027 */ // -- Start Return Code -- //
/* 0000AECE: 0023 */ return 0;
=>進入function_7( )
【function NUMBER function_7(s0, s1, s2) --形參 s0="000000000"
NUMBER n0;
NUMBER n1;
NUMBER n2;
NUMBER n3;
NUMBER n4;
begin
/* 0000B13B: 0022 */ // -- Start Function Code -- //
/* 0000B144: 0021 */ function_537(s0);
->求s0的長度
/* 0000B14D: 0006 */ n2 = LAST_RESULT;
--n2=10
/* 0000B157: 0009 */ n3 = n2 < 0;
/* 0000B166: 0004 */ if(! n3) goto label_166;
/* 0000B172: 0027 */ // -- Start Return Code -- //
/* 0000B176: 0023 */ return 0;
label_166:
/* 0000B181: 0006 */ n1 = 0;
/* 0000B18D: 0006 */ n0 = 0;
/* 0000B199: 0011 */ n3 = n2 / 2;
/* 0000B1A8: 000F */ n3 = n3 - 1;
->n3=4
label_167:
/* 0000B1B9: 000B */ n4 = n0 <= n3; -> 迴圈5次
/* 0000B1C6: 0004 */ if(! n4) goto label_168;
/* 0000B1D2: 001E */ n4 = s0[n1];
\
/* 0000B1DF: 001D */ s1[n0] = n4;
|s1="00000"
/* 0000B1EC: 0007 */ n1 = n1 + 1;
| ->s1,s2分別賦值
/* 0000B1FB: 001E */ n4 = s0[n1];
|
/* 0000B208: 001D */ s2[n0] = n4; /
s2="00000"
/* 0000B215: 0007 */ n1 = n1 + 1;
/* 0000B224: 0007 */ n0 = n0 + 1;
/* 0000B233: 0005 */ goto label_167;
label_168:
/* 0000B23E: 0027 */ // -- Start Return Code -- //
/* 0000B242: 0023 */ return 1;
/* 0000B24B: 0026 */ // -- Create Local Variables -- //
end;】
return s2="000000" s3="000000"
label_155:
/* 0000AED9: 0007 */ s1 = s2 + s3;
-> s1="000000000000"
/* 0000AEE6: 0007 */ n1 = n1 + 1;
-> n1=2
/* 0000AEF5: 0005 */ goto label_154;
label_156:
/* 0000AF00: 002C */ StrToNum(n2, s2);
->n2=0
/* 0000AF0A: 0006 */ n7 = LAST_RESULT;
/* 0000AF14: 0009 */ n7 = n7 < 0;
/* 0000AF23: 0004 */ if(! n7) goto label_157;
/* 0000AF2F: 0027 */ // -- Start Return Code -- //
/* 0000AF33: 0023 */ return n5; n5=1
label_157:
/* 0000AF3C: 002C */ StrToNum(n3, s3); -> n3=0
/* 0000AF46: 0006 */ n7 = LAST_RESULT;
/* 0000AF50: 0009 */ n7 = n7 < 0;
/* 0000AF5F: 0004 */ if(! n7) goto label_158;
/* 0000AF6B: 0027 */ // -- Start Return Code -- //
/* 0000AF6F: 0023 */ return n5; n5=1
label_158:
/* 0000AF78: 0008 */ n2 = n2 % 1000; ->n2=0
|
/* 0000AF87: 0008 */ n3 = n3 % 10000; ->n3=0
|簡單吧!
/* 0000AF96: 0007 */ n4 = n0 + 924;
->n4=956
/* 0000AFA5: 0007 */ n2 = n2 + n4;
->n2=956
/* 0000AFB2: 0007 */ n3 = n3 + n4;
->n3=956
/* 0000AFBF: 0010 */ n5 = n2 * n3;
->n5=913936
/* 0000AFCC: 0008 */ n5 = n5 % 9999; ->n5=4027
/* 0000AFDB: 0007 */ n5 = n5 + 1;
->n5=4028
/* 0000AFEA: 0027 */ // -- Start Return Code -- //
/* 0000AFEE: 0023 */ return n5;
/* 0000AFF5: 0026 */ // -- Create Local Variables -- //
end;〗
label_151:
/* 0000ADFF: 0027 */ // -- Start Return Code -- //
/* 0000AE03: 0023 */ return 1;
/* 0000AE0C: 0026 */ // -- Create Local Variables -- //
end;
根據0000B066: 000B的迴圈,註冊碼第4位~第13位可填除數字外的任意字元.
即serial number:PR4XXXXXXXXXX028
不過只能執行在1024 * 768下,靠.只有卸了.
有空別忘了訪問我的網頁.呵呵呵呵呵呵呵呵....
相關文章
- 我的破解心得(9) (4千字)2001-03-13
- 我的破解心得(11) (9千字)2001-03-13
- 破解心得之eXeScope篇 (9千字)2001-07-01
- Soundnailsd的破解教程(一) (9千字)2001-10-17AI
- OICQ HACK 1.0 破解過程 (9千字)2001-04-23
- 半位元組破解Vopt Millennium edition (9千字)2001-05-13
- Regediter 1.3 破解(得到註冊碼) (9千字)2002-01-23
- EmEditor v3.16破解過程 (9千字)2001-07-22
- 木馬克星5.33.60破解過程
(9千字)2002-03-28
- 菜鳥破解錄(19)之 XMLwriter 1.21 (9千字)2000-08-08XML
- 暴力破解《網路吸血鬼3.3》 (9千字)2001-03-15
- 破解RamDisk9xMe的安裝程式 (3千字)2001-10-07
- 加密精靈V2.2破解過程 (9千字)2001-10-28加密
- 《漂葉網咖管理系統4.0》破解心得: (9千字)2001-01-14
- 美萍反黃專家 版本2.41 破解實錄 (9千字)2001-10-04
- 菜鳥破解實錄之 Dynamic Desktop 1.4.2 (9千字)2000-08-09
- 菜鳥破解實錄 之 GWD Text Editor 3.0 (9千字)2000-08-16
- 金庸群俠傳外掛程式的破解思路(網上驗證),小球[CCG]請進: (7千字)2001-07-22
- 股票賬戶管理軟體 1.12(破解手記) (9千字)2002-02-16
- 瘋狂單詞破解實錄(初學者請進!) (9千字)2000-08-24
- iis兄,請進《有聲有色 3.10》的破解方法。 (9千字)2000-08-17
- PolyView 破解 (5千字)2000-12-31View
- 破解FAQGenie (4千字)2001-04-10
- 破解MyMahj (5千字)2001-06-20
- 破解winimage (1千字)2001-10-07
- 皮兄,網際金典3的InstallShield序列號破解。 (9千字)2001-04-28
- 誰與我共續這破解的故事?《破解“黎之工資”對抗脫殼之故事(上集)》
(9千字)2001-03-25
- PowerDirector 20視訊剪輯軟體2021-10-15
- 破解Ghost多媒體視訊點播系統全過程 (9千字)2002-07-29
- SoftICE4.05 for win9x的安裝序列號破解(1) (11千字)2001-05-19
- 如何完美破解PE EXPLORER 1.3(加入BCG的第二篇) (9千字)2001-06-29
- 破解ClockWise 3.03 (7千字)2001-06-06
- 破解TurboLaunch 4.04 (5千字)2001-06-06
- winimage完全破解 (8千字)2001-07-04
- Authorware 5.0破解 (4千字)2001-09-10
- 破解“Mail Scan” (1千字)2000-08-04AI
- 流光 4.5 完全破解 (15千字)2002-08-24
- 破解入門5 (3千字)2000-09-23