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下,靠.只有卸了.
有空別忘了訪問我的網頁.呵呵呵呵呵呵呵呵....
相關文章
- PowerDirector 20視訊剪輯軟體2021-10-15
- WaveMetrics Igor Pro 9 破解下載「WaveMetrics Igor Pro 9 金鑰」2023-11-07Go
- canvas小球亂撞2018-07-02Canvas
- canvas小球碰壁效果2018-06-02Canvas
- 小球彈彈樂2020-11-26
- JavaScript小球碰壁詳解2018-09-08JavaScript
- canvas小球擺動效果2018-03-15Canvas
- 小球運動-常規12019-03-31
- 奇妙的canvas:彈跳小球2018-11-03Canvas
- js小球重力和碰撞效果2018-05-29JS
- ccf碰撞的小球(100分)2020-09-27
- CCF-CSP 20180302:小球碰撞2020-11-27
- 恭喜您成功申請ITPUB BLOG2019-04-11
- 最新版Axure RP 9原型設計工具 附 Axure RP 9破解啟用教程2024-01-03原型
- canvas小球碰壁隨機運動2018-08-31Canvas隨機
- canvas小球拋物線運動2018-03-15Canvas
- HTML5畫布-小球碰撞2024-05-20HTML
- 恭喜社群迎來新PMC成員!2024-05-28
- 恭喜!Apache Hudi社群新晉多位Committer2021-08-01ApacheMIT
- 千字分享|自然語言分析NLA2022-05-30
- canvas繪製小球漸隱漸現2018-05-20Canvas
- css3小球上下移動效果2024-10-12CSSS3
- [SDOI2008] Sue 的小球 題解2024-06-02
- 恭喜你能做一個自由意志的叛徒2020-12-22
- 暴肝兩萬五千字助你通關Servlet2022-03-01Servlet
- JavaScript之多小球非對心彈性碰撞2019-03-03JavaScript
- CSS3小球靜態環繞效果2018-11-22CSSS3
- 7-22 用天平找小球 (10分)2020-11-20
- 官宣:恭喜 ChaosBlade 專案進入 CNCF Sandbox2021-05-11
- 三千字介紹Redis主從+哨兵+叢集2021-09-30Redis
- 恭喜 DevLake 加入 Apache 軟體基金會孵化器!2022-05-23devApache
- [electron]終極奧義 五千字教程丟給你2018-09-18
- 三千字講清TypeScript與React的實戰技巧2019-07-26TypeScriptReact
- 【不可思議的前端】動如脫兔的小球2019-12-26前端
- 【C語言練習題】小球反彈問題2020-12-11C語言
- 恭喜我的同事丁宇入選年度 IT 領軍人物2022-04-05
- 支援M1/M2,Axure RP 9授權金鑰啟用可用 附 Axure RP 9中文破解教程2024-01-06
- MySQL(十四)分析查詢語句Explain 七千字總結2023-04-14MySqlAI
- ios蘋果簽名—iPhone12恭喜3億人等待2020-02-14iOS蘋果iPhone