Artem_Butenko Ранее здесь уже обсуждали утилиту
disasm, которая получает из CompiledCode.bin весьма своеобразный текст.
Например, код [more=этого скрипта]
[Setup]
AppName=AppName
AppVerName=AppVerName
CreateAppDir=false
[Code]
var MouseLabel,SiteLabel: TLabel;
procedure SiteLabelOnClick(Sender: TObject); var ErrorCode: Integer;
begin
ShellExec('open', 'http://forum.ru-board.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;
procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;
procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;
procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;
procedure InitializeWizard();
begin
MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm
SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clBlue
SiteLabel.Caption:='Forum Ru-Board'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm
end;
[/more] получится [more=таким]
[TYPES]
Type [0]: Pointer
Type [1]: U32
Type [2]: Variant
Type [3]: Unknown 14
Type [4]: Unknown 24
Type [5]: Extended
Type [6]: Double
Type [7]: Single
Type [8]: String
Type [9]: U32
Type [10]: S32
Type [11]: S16
Type [12]: U16
Type [13]: S8
Type [14]: Char
Type [15]: U32
Type [16]: U8 Export: BOOLEAN
Type [17]: U8
Type [18]: Class Export: TLABEL
Type [19]: Class Export: TOBJECT
Type [20]: U8
Type [21]: U8
Type [22]: U8
Type [23]: Set
Type [24]: Class Export: TFONT
Type [25]: Class Export: TCONTROL
Type [26]: Class Export: TCOMPONENT
Type [27]: Class Export: TWIZARDFORM
Type [28]: ProcPtr
Type [29]: Class Export: TWINCONTROL
Type [30]: ProcPtr
Type [31]: ProcPtr
[VARS]
Var [0]: 18 Class TLABEL
Var [1]: 18 Class TLABEL
[PROCS]
Proc [0] Export: !MAIN -1
[0] RET
Proc [1] Export: SITELABELONCLICK -1 @19
[0] PUSHTYPE 10(S32) // 1
[5] PUSHTYPE 16(U8) // 2
[10] PUSHTYPE 0(Pointer) // 3
[15] SETPOINTER Base[3]: Base[1]
[26] PUSHTYPE 20(U8) // 4
[31] ASSIGN Base[4], [0]
[43] PUSHTYPE 10(S32) // 5
[48] ASSIGN Base[5], [1]
[63] PUSHTYPE 8(String) // 6
[68] ASSIGN Base[6], ['']
[83] PUSHTYPE 8(String) // 7
[88] ASSIGN Base[7], ['']
[103] PUSHTYPE 8(String) // 8
[108] ASSIGN Base[8], ['http://forum.ru-board.com']
[148] PUSHTYPE 8(String) // 9
[153] ASSIGN Base[9], ['open']
[172] PUSHVAR Base[2] // 10
[178] CALL 2
[183] POP // 9
[184] POP // 8
[185] POP // 7
[186] POP // 6
[187] POP // 5
[188] POP // 4
[189] POP // 3
[190] POP // 2
[191] POP // 1
[192] RET
Proc [2]: External Decl: \01\00\00\00\00\00\00\01 SHELLEXEC
Proc [3] Export: SITELABELMOUSEDOWN -1 @19 @21 @23 @10 @10
[0] PUSHTYPE 10(S32) // 1
[5] ASSIGN Base[1], [255]
[20] PUSHTYPE 24(Class) // 2
[25] PUSHTYPE 18(Class) // 3
[30] ASSIGN Base[3], GlobalVar[1]
[41] PUSHVAR Base[2] // 4
[47] CALL 4
[52] POP // 3
[53] POP // 2
[54] CALL 5
[59] POP // 1
[60] POP // 0
[61] RET
Proc [4]: External Decl: class:TLABEL|FONT|\01\00\00\00
Proc [5]: External Decl: class:TFONT|COLOR@|\01\00\00\00
Proc [6] Export: SITELABELMOUSEUP -1 @19 @21 @23 @10 @10
[0] PUSHTYPE 10(S32) // 1
[5] ASSIGN Base[1], [16711680]
[20] PUSHTYPE 24(Class) // 2
[25] PUSHTYPE 18(Class) // 3
[30] ASSIGN Base[3], GlobalVar[1]
[41] PUSHVAR Base[2] // 4
[47] CALL 4
[52] POP // 3
[53] POP // 2
[54] CALL 5
[59] POP // 1
[60] POP // 0
[61] RET
Proc [7] Export: SITELABELMOUSEMOVE -1 @19 @23 @10 @10
[0] PUSHTYPE 10(S32) // 1
[5] ASSIGN Base[1], [32768]
[20] PUSHTYPE 24(Class) // 2
[25] PUSHTYPE 18(Class) // 3
[30] ASSIGN Base[3], GlobalVar[1]
[41] PUSHVAR Base[2] // 4
[47] CALL 4
[52] POP // 3
[53] POP // 2
[54] CALL 5
[59] POP // 1
[60] POP // 0
[61] RET
Proc [8] Export: SITELABELMOUSEMOVE2 -1 @19 @23 @10 @10
[0] PUSHTYPE 10(S32) // 1
[5] ASSIGN Base[1], [16711680]
[20] PUSHTYPE 24(Class) // 2
[25] PUSHTYPE 18(Class) // 3
[30] ASSIGN Base[3], GlobalVar[1]
[41] PUSHVAR Base[2] // 4
[47] CALL 4
[52] POP // 3
[53] POP // 2
[54] CALL 5
[59] POP // 1
[60] POP // 0
[61] RET
Proc [9] Export: INITIALIZEWIZARD -1
[0] PUSHTYPE 26(Class) // 1
[5] PUSHTYPE 27(Class) // 2
[10] PUSHVAR Base[2] // 3
[16] CALL 11
[21] POP // 2
[22] ASSIGN Base[1], Base[2]
[33] POP // 1
[34] PUSHTYPE 9(U32) // 2
[39] ASSIGN Base[2], [18]
[54] PUSHVAR GlobalVar[0] // 3
[60] CALL 10
[65] POP // 2
[66] POP // 1
[67] POP // 0
[68] PUSHTYPE 10(S32) // 1
[73] PUSHTYPE 27(Class) // 2
[78] PUSHVAR Base[2] // 3
[84] CALL 11
[89] POP // 2
[90] PUSHVAR Base[1] // 3
[96] CALL 12
[101] POP // 2
[102] POP // 1
[103] PUSHTYPE 18(Class) // 2
[108] ASSIGN Base[2], GlobalVar[0]
[119] CALL 13
[124] POP // 1
[125] POP // 0
[126] PUSHTYPE 10(S32) // 1
[131] PUSHTYPE 27(Class) // 2
[136] PUSHVAR Base[2] // 3
[142] CALL 11
[147] POP // 2
[148] PUSHVAR Base[1] // 3
[154] CALL 14
[159] POP // 2
[160] POP // 1
[161] PUSHTYPE 18(Class) // 2
[166] ASSIGN Base[2], GlobalVar[0]
[177] CALL 15
[182] POP // 1
[183] POP // 0
[184] PUSHTYPE 16(U8) // 1
[189] ASSIGN Base[1], [0]
[201] PUSHTYPE 18(Class) // 2
[206] ASSIGN Base[2], GlobalVar[0]
[217] CALL 16
[222] POP // 1
[223] POP // 0
[224] PUSHTYPE 16(U8) // 1
[229] ASSIGN Base[1], [1]
[241] PUSHTYPE 18(Class) // 2
[246] ASSIGN Base[2], GlobalVar[0]
[257] CALL 17
[262] POP // 1
[263] POP // 0
[264] PUSHTYPE 28(ProcPtr) // 1
[269] ASSIGN Base[1], [PROC: 8]
[284] PUSHTYPE 18(Class) // 2
[289] ASSIGN Base[2], GlobalVar[0]
[300] CALL 18
[305] POP // 1
[306] POP // 0
[307] PUSHTYPE 29(Class) // 1
[312] PUSHTYPE 27(Class) // 2
[317] PUSHVAR Base[2] // 3
[323] CALL 11
[328] POP // 2
[329] ASSIGN Base[1], Base[2]
[340] POP // 1
[341] PUSHTYPE 18(Class) // 2
[346] ASSIGN Base[2], GlobalVar[0]
[357] CALL 19
[362] POP // 1
[363] POP // 0
[364] PUSHTYPE 26(Class) // 1
[369] PUSHTYPE 27(Class) // 2
[374] PUSHVAR Base[2] // 3
[380] CALL 11
[385] POP // 2
[386] ASSIGN Base[1], Base[2]
[397] POP // 1
[398] PUSHTYPE 9(U32) // 2
[403] ASSIGN Base[2], [18]
[418] PUSHVAR GlobalVar[1] // 3
[424] CALL 10
[429] POP // 2
[430] POP // 1
[431] POP // 0
[432] PUSHTYPE 10(S32) // 1
[437] ASSIGN Base[1], [10]
[452] PUSHTYPE 18(Class) // 2
[457] ASSIGN Base[2], GlobalVar[1]
[468] CALL 20
[473] POP // 1
[474] POP // 0
[475] PUSHTYPE 10(S32) // 1
[480] ASSIGN Base[1], [330]
[495] PUSHTYPE 18(Class) // 2
[500] ASSIGN Base[2], GlobalVar[1]
[511] CALL 21
[516] POP // 1
[517] POP // 0
[518] PUSHTYPE 10(S32) // 1
[523] ASSIGN Base[1], [1]
[538] PUSHTYPE 18(Class) // 2
[543] ASSIGN Base[2], GlobalVar[1]
[554] CALL 22
[559] POP // 1
[560] POP // 0
[561] PUSHTYPE 10(S32) // 1
[566] ASSIGN Base[1], [16711680]
[581] PUSHTYPE 24(Class) // 2
[586] PUSHTYPE 18(Class) // 3
[591] ASSIGN Base[3], GlobalVar[1]
[602] PUSHVAR Base[2] // 4
[608] CALL 4
[613] POP // 3
[614] POP // 2
[615] CALL 5
[620] POP // 1
[621] POP // 0
[622] PUSHTYPE 8(String) // 1
[627] ASSIGN Base[1], ['Forum Ru-Board']
[656] PUSHTYPE 18(Class) // 2
[661] ASSIGN Base[2], GlobalVar[1]
[672] CALL 23
[677] POP // 1
[678] POP // 0
[679] PUSHTYPE 30(ProcPtr) // 1
[684] ASSIGN Base[1], [PROC: 1]
[699] PUSHTYPE 18(Class) // 2
[704] ASSIGN Base[2], GlobalVar[1]
[715] CALL 24
[720] POP // 1
[721] POP // 0
[722] PUSHTYPE 31(ProcPtr) // 1
[727] ASSIGN Base[1], [PROC: 3]
[742] PUSHTYPE 18(Class) // 2
[747] ASSIGN Base[2], GlobalVar[1]
[758] CALL 25
[763] POP // 1
[764] POP // 0
[765] PUSHTYPE 31(ProcPtr) // 1
[770] ASSIGN Base[1], [PROC: 6]
[785] PUSHTYPE 18(Class) // 2
[790] ASSIGN Base[2], GlobalVar[1]
[801] CALL 26
[806] POP // 1
[807] POP // 0
[808] PUSHTYPE 28(ProcPtr) // 1
[813] ASSIGN Base[1], [PROC: 7]
[828] PUSHTYPE 18(Class) // 2
[833] ASSIGN Base[2], GlobalVar[1]
[844] CALL 18
[849] POP // 1
[850] POP // 0
[851] PUSHTYPE 29(Class) // 1
[856] PUSHTYPE 27(Class) // 2
[861] PUSHVAR Base[2] // 3
[867] CALL 11
[872] POP // 2
[873] ASSIGN Base[1], Base[2]
[884] POP // 1
[885] PUSHTYPE 18(Class) // 2
[890] ASSIGN Base[2], GlobalVar[1]
[901] CALL 19
[906] POP // 1
[907] POP // 0
[908] RET
Proc [10]: External Decl: class:TCONTROL|CREATE|\00\01\00
Proc [11]: External Decl: \01 WIZARDFORM
Proc [12]: External Decl: class:TCONTROL|WIDTH|\01\00\00\00
Proc [13]: External Decl: class:TCONTROL|WIDTH@|\01\00\00\00
Proc [14]: External Decl: class:TCONTROL|HEIGHT|\01\00\00\00
Proc [15]: External Decl: class:TCONTROL|HEIGHT@|\01\00\00\00
Proc [16]: External Decl: class:TLABEL|AUTOSIZE@|\01\00\00\00
Proc [17]: External Decl: class:TLABEL|TRANSPARENT@|\01\00\00\00
Proc [18]: External Decl: class:TLABEL|ONMOUSEMOVE@|\01\00\00\00
Proc [19]: External Decl: class:TCONTROL|PARENT@|\01\00\00\00
Proc [20]: External Decl: class:TCONTROL|LEFT@|\01\00\00\00
Proc [21]: External Decl: class:TCONTROL|TOP@|\01\00\00\00
Proc [22]: External Decl: class:TCONTROL|CURSOR@|\01\00\00\00
Proc [23]: External Decl: class:TLABEL|CAPTION@|\01\00\00\00
Proc [24]: External Decl: class:TLABEL|ONCLICK@|\01\00\00\00
Proc [25]: External Decl: class:TLABEL|ONMOUSEDOWN@|\01\00\00\00
Proc [26]: External Decl: class:TLABEL|ONMOUSEUP@|\01\00\00\00
[/more].
ComrаdG тоже заявлял, что декомпилер есть, но доказательств не предоставил...