Dumped from compo::Environment::PutAllComponentFactories
in msdelta.dll
Last active
May 12, 2024 15:49
-
-
Save smx-smx/34f34c45abcbe498ebc42ea1a87e3883 to your computer and use it in GitHub Desktop.
MSDelta flows dump
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def AsciiToT: | |
========================= | |
wrap( CopyBuffer ):; | |
def UnicodeToT: | |
========================= | |
wrap( UnicodeToAscii ):; | |
def TToAscii: | |
========================= | |
wrap( CopyBuffer ):; | |
def TToUnicode: | |
========================= | |
wrap( AsciiToUnicode ):; | |
def DebugWriteFileRiftTable: | |
========================= | |
fileName( InputSharedBuffer ): input[ 0 ]; | |
riftTable( InputSharedRiftTable ): input[ 1 ]; | |
def DebugWriteFilePe: | |
========================= | |
fileName( InputSharedBuffer ): input[ 0 ]; | |
pe( InputSharedPe ): input[ 1 ]; | |
def DebugWriteFile: | |
========================= | |
fileName( InputSharedBuffer ): input[ 0 ]; | |
buffer( InputSharedBuffer ): input[ 1 ]; | |
def DebugWriteFileCompositeFormat: | |
========================= | |
fileName( InputSharedBuffer ): input[ 0 ]; | |
compositeFormat( InputSharedCompositeFormat ): input[ 1 ]; | |
def CreatePseudoLzxPatch: | |
========================= | |
sourceSize( BufferSize ): input[ 0 ]; | |
targetSize( BufferSize ): input[ 1 ]; | |
fullBuffer( Concat ): input[ 0 ], input[ 1 ]; | |
baseRiftTable( CreateCompressionRiftTable ): fullBuffer[ 0 ], sourceSize[ 0 ], targetSize[ 0 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ]; | |
riftTable( SumRiftTables ): baseRiftTable[ 0 ], input[ 6 ], 0; | |
defaultFormat( CreateDefaultCompositeFormat ):; | |
defaultBitWriter( BitWriterOpen ):; | |
writeBaseRiftTableDefault( BitWriteRiftTable ): defaultBitWriter[ 0 ], baseRiftTable[ 0 ]; | |
writeDefaultFormat( BitWriteCompositeFormat ): writeBaseRiftTableDefault[ 0 ], defaultFormat[ 0 ]; | |
defaultFormatWithStatistics( ResetCompositeFormatStatistics ): defaultFormat[ 0 ], 1; | |
defaultCompress( PseudoLzxCompress ): defaultFormatWithStatistics[ 0 ], fullBuffer[ 0 ], riftTable[ 0 ], sourceSize[ 0 ], targetSize[ 0 ], writeDefaultFormat[ 0 ]; | |
defaultBuffer( BitWriterClose ): defaultCompress[ 2 ]; | |
optimalFormat( CreateOptimalCompositeFormat ): defaultCompress[ 0 ]; | |
optimalBitWriter( BitWriterOpen ):; | |
writeBaseRiftTableOptimal( BitWriteRiftTable ): optimalBitWriter[ 0 ], baseRiftTable[ 0 ]; | |
writeOptimalFormat( BitWriteCompositeFormat ): writeBaseRiftTableOptimal[ 0 ], optimalFormat[ 1 ]; | |
defaultBitReader( BitReaderOpen ): defaultBuffer[ 0 ]; | |
copyBaseRiftTable( BitReadRiftTable ): defaultBitReader[ 0 ]; | |
copyDefaultFormat( BitReadCompositeFormat ): copyBaseRiftTable[ 0 ]; | |
optimalTranslate( TranslateCompression ): copyDefaultFormat[ 0 ], writeOptimalFormat[ 0 ], copyDefaultFormat[ 1 ], optimalFormat[ 1 ], sourceSize[ 0 ], defaultCompress[ 1 ]; | |
closeDefaultBitReader( BitReaderClose ): optimalTranslate[ 0 ], 1; | |
optimalBuffer( BitWriterClose ): optimalTranslate[ 1 ]; | |
output( MinBuffer ): defaultBuffer[ 0 ], optimalBuffer[ 0 ]; | |
def ApplyPseudoLzxPatchTargetBufferProvided: | |
========================= | |
source( PassBuffer ): input[ 0 ]; | |
bitReader( BitReaderOpen ): input[ 1 ]; | |
target0( PassBuffer ): input[ 2 ]; | |
reverseRequested( CopyInt ): input[ 4 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
targetSize( BufferSize ): target0[ 0 ]; | |
baseRiftTable( BitReadRiftTable ): bitReader[ 0 ]; | |
riftTable( SumRiftTables ): baseRiftTable[ 1 ], input[ 3 ], 0; | |
format( BitReadCompositeFormat ): baseRiftTable[ 0 ]; | |
debugWriteCompositeFormat( DebugWriteFileCompositeFormat ): "compositeFormat.apply.txt", format[ 1 ]; | |
bufferList0( CreateEmptyBufferList ):; | |
bufferList1( BufferListPushBack ): bufferList0[ 0 ], source[ 0 ]; | |
bufferList2( BufferListPushBack ): bufferList1[ 0 ], target0[ 0 ]; | |
decompress( Decompress ): format[ 0 ], format[ 1 ], bufferList2[ 0 ], riftTable[ 0 ], sourceSize[ 0 ], targetSize[ 0 ], -1, reverseRequested[ 0 ]; | |
target1( BufferListPopBack ): decompress[ 1 ]; | |
closeBitReader( BitReaderClose ): decompress[ 0 ], 1; | |
output: target1[ 1 ], decompress[ 2 ]; | |
def RiftTableFromPes: | |
========================= | |
emptyRiftTable( CreateEmptyRiftTable ):; | |
riftTable0( RiftTableFromHeaders ): input[ 0 ], emptyRiftTable[ 0 ], input[ 1 ], input[ 2 ], input[ 3 ]; | |
debugWriteRiftTable0( DebugWriteFileRiftTable ): "pes0.create.rift", riftTable0[ 0 ]; | |
riftTable1( RiftTableFromImports ): input[ 0 ], riftTable0[ 0 ], input[ 1 ], input[ 2 ], input[ 3 ]; | |
debugWriteRiftTable1( DebugWriteFileRiftTable ): "pes1.create.rift", riftTable1[ 0 ]; | |
riftTable2( RiftTableFromExports ): input[ 0 ], riftTable1[ 0 ], input[ 1 ], input[ 2 ], input[ 3 ]; | |
debugWriteRiftTable2( DebugWriteFileRiftTable ): "pes2.create.rift", riftTable2[ 0 ]; | |
riftTable3( RiftTableFromResources ): input[ 0 ], riftTable2[ 0 ], input[ 1 ], input[ 2 ], input[ 3 ]; | |
debugWriteRiftTable3( DebugWriteFileRiftTable ): "pes3.create.rift", riftTable3[ 0 ]; | |
riftTable4( RiftTableFromPdatas ): input[ 0 ], riftTable3[ 0 ], input[ 1 ], input[ 2 ], input[ 3 ]; | |
debugWriteRiftTable4( DebugWriteFileRiftTable ): "pes4.create.rift", riftTable4[ 0 ]; | |
output: riftTable4[ 0 ]; | |
def RiftTransform: | |
========================= | |
pe( PassPe ): input[ 0 ]; | |
hintMap( PassBuffer ): input[ 1 ]; | |
riftTable( InputSharedRiftTable ): input[ 2 ]; | |
riftUsage( PassBuffer ): input[ 3 ]; | |
cliMap( InputSharedCliMap ): input[ 4 ]; | |
targetInfo( InputSharedPortableExecutableInfo ): input[ 5 ]; | |
transformFlag( InputSharedInt ): input[ 6 ]; | |
relative( PassRiftTable ): input[ 7 ]; | |
output: pe[ 0 ], hintMap[ 0 ], riftUsage[ 0 ], relative[ 0 ]; | |
def RiftTransformTemplate: | |
========================= | |
flagsInt( InputSharedInt ): input[ 0 ]; | |
output( RiftTransform ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
def RiftTransform_I386: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExe" : "RiftTransform" ): input[ 1 ] , input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
debugWriteTransformed0( DebugWriteFilePe ): "riftTransformed0.image", riftTransformed0[ 0 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
debugWriteTransformed1( DebugWriteFilePe ): "riftTransformed1.image", riftTransformed1[ 0 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
debugWriteTransformed2( DebugWriteFilePe ): "riftTransformed2.image", riftTransformed2[ 0 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
debugWriteTransformed3( DebugWriteFilePe ): "riftTransformed3.image", riftTransformed3[ 0 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocationsI386" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
debugWriteTransformed4( DebugWriteFilePe ): "riftTransformed4.image", riftTransformed4[ 0 ]; | |
riftTransformed6( RiftTransform / flags[ 14 ] ? "RiftTransformCliDisasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
debugWriteTransformed6( DebugWriteFilePe ): "riftTransformed6.image", riftTransformed6[ 0 ]; | |
riftTransformed7( RiftTransform / flags[ 15 ] ? "RiftTransformCliMetadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
debugWriteTransformed7( DebugWriteFilePe ): "riftTransformed7.image", riftTransformed7[ 0 ]; | |
smashed( PassPe / flags[ 6 ] ? "SmashLockPrefixesI386" : "PassPe" ): riftTransformed7[ 0 ]; | |
debugWriteSmashed( DebugWriteFilePe ): "smashed.image", smashed[ 0 ]; | |
riftTransformed8( RiftTransform / flags[ 7 ] ? "RiftTransformRelativeJmpsI386" : "RiftTransform" ): smashed[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
debugWriteTransformed8( DebugWriteFilePe ): "riftTransformed8.image", riftTransformed8[ 0 ]; | |
riftTransformed9( RiftTransform / flags[ 8 ] ? "RiftTransformRelativeCallsI386" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
debugWriteTransformed9( DebugWriteFilePe ): "riftTransformed9.image", riftTransformed9[ 0 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_CLI4_I386: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExeCli4" : "RiftTransform" ): input[ 1 ] , input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
debugWriteTransformed0( DebugWriteFilePe ): "riftTransformed0.image", riftTransformed0[ 0 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
debugWriteTransformed1( DebugWriteFilePe ): "riftTransformed1.image", riftTransformed1[ 0 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
debugWriteTransformed2( DebugWriteFilePe ): "riftTransformed2.image", riftTransformed2[ 0 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
debugWriteTransformed3( DebugWriteFilePe ): "riftTransformed3.image", riftTransformed3[ 0 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocationsI386" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
debugWriteTransformed4( DebugWriteFilePe ): "riftTransformed4.image", riftTransformed4[ 0 ]; | |
riftTransformed6( RiftTransform / flags[ 21 ] ? "RiftTransformCli4Disasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
debugWriteTransformed6( DebugWriteFilePe ): "riftTransformed6.image", riftTransformed6[ 0 ]; | |
riftTransformed7( RiftTransform / flags[ 22 ] ? "RiftTransformCli4Metadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
debugWriteTransformed7( DebugWriteFilePe ): "riftTransformed7.image", riftTransformed7[ 0 ]; | |
smashed( PassPe / flags[ 6 ] ? "SmashLockPrefixesI386" : "PassPe" ): riftTransformed7[ 0 ]; | |
debugWriteSmashed( DebugWriteFilePe ): "smashed.image", smashed[ 0 ]; | |
riftTransformed8( RiftTransform / flags[ 7 ] ? "RiftTransformRelativeJmpsI386" : "RiftTransform" ): smashed[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
debugWriteTransformed8( DebugWriteFilePe ): "riftTransformed8.image", riftTransformed8[ 0 ]; | |
riftTransformed9( RiftTransform / flags[ 8 ] ? "RiftTransformRelativeCallsI386" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
debugWriteTransformed9( DebugWriteFilePe ): "riftTransformed9.image", riftTransformed9[ 0 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_AMD64: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExe" : "RiftTransform" ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocations" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
riftTransformed6( RiftTransform / flags[ 14 ] ? "RiftTransformCliDisasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
riftTransformed7( RiftTransform / flags[ 15 ] ? "RiftTransformCliMetadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
riftTransformed8( RiftTransform / flags[ 9 ] ? "RiftTransformDisasmAmd64" : "RiftTransform" ): riftTransformed7[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
riftTransformed9( RiftTransform / flags[ 10 ] ? "RiftTransformPdataAmd64" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_CLI4_AMD64: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExeCli4" : "RiftTransform" ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocations" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
riftTransformed6( RiftTransform / flags[ 21 ] ? "RiftTransformCli4Disasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
riftTransformed7( RiftTransform / flags[ 22 ] ? "RiftTransformCli4Metadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
riftTransformed8( RiftTransform / flags[ 9 ] ? "RiftTransformDisasmAmd64" : "RiftTransform" ): riftTransformed7[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
riftTransformed9( RiftTransform / flags[ 10 ] ? "RiftTransformPdataAmd64" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_IA64: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExe" : "RiftTransform" ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocations" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
riftTransformed6( RiftTransform / flags[ 14 ] ? "RiftTransformCliDisasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
riftTransformed7( RiftTransform / flags[ 15 ] ? "RiftTransformCliMetadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
riftTransformed8( RiftTransform / flags[ 11 ] ? "RiftTransformDisasmIa64" : "RiftTransform" ): riftTransformed7[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
riftTransformed9( RiftTransform / flags[ 12 ] ? "RiftTransformPdataIa64" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_CLI4_ARM: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExeCli4" : "RiftTransform" ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocations" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
riftTransformed6( RiftTransform / flags[ 21 ] ? "RiftTransformCli4Disasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
riftTransformed7( RiftTransform / flags[ 22 ] ? "RiftTransformCli4Metadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
riftTransformed8( RiftTransform / flags[ 19 ] ? "RiftTransformDisasmARM" : "RiftTransform" ): riftTransformed7[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
riftTransformed9( RiftTransform / flags[ 20 ] ? "RiftTransformPdataARM" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def RiftTransform_CLI4_ARM64: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
riftTransformed0( RiftTransform / flags[ 1 ] ? "MarkNonExeCli4" : "RiftTransform" ): input[ 1 ], input[ 2 ], input[ 3 ], input[ 4 ], input[ 5 ], input[ 6 ], input[ 7 ], input[ 8 ]; | |
riftTransformed1( RiftTransform / flags[ 2 ] ? "RiftTransformImports" : "RiftTransform" ): riftTransformed0[ 0 ], riftTransformed0[ 1 ], input[ 3 ], riftTransformed0[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed0[ 3 ]; | |
riftTransformed2( RiftTransform / flags[ 3 ] ? "RiftTransformExports" : "RiftTransform" ): riftTransformed1[ 0 ], riftTransformed1[ 1 ], input[ 3 ], riftTransformed1[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed1[ 3 ]; | |
riftTransformed3( RiftTransform / flags[ 4 ] ? "RiftTransformResources" : "RiftTransform" ): riftTransformed2[ 0 ], riftTransformed2[ 1 ], input[ 3 ], riftTransformed2[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed2[ 3 ]; | |
riftTransformed4( RiftTransform / flags[ 5 ] ? "RiftTransformRelocations" : "RiftTransform" ): riftTransformed3[ 0 ], riftTransformed3[ 1 ], input[ 3 ], riftTransformed3[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed3[ 3 ]; | |
riftTransformed6( RiftTransform / flags[ 21 ] ? "RiftTransformCli4Disasm" : "RiftTransform" ): riftTransformed4[ 0 ], riftTransformed4[ 1 ], input[ 3 ], riftTransformed4[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed4[ 3 ]; | |
riftTransformed7( RiftTransform / flags[ 22 ] ? "RiftTransformCli4Metadata" : "RiftTransform" ) : riftTransformed6[ 0 ], riftTransformed6[ 1 ], input[ 3 ], riftTransformed6[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed6[ 3 ]; | |
riftTransformed8( RiftTransform / flags[ 23 ] ? "RiftTransformDisasmARM64" : "RiftTransform" ): riftTransformed7[ 0 ], riftTransformed7[ 1 ], input[ 3 ], riftTransformed7[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed7[ 3 ]; | |
riftTransformed9( RiftTransform / flags[ 24 ] ? "RiftTransformPdataARM64" : "RiftTransform" ): riftTransformed8[ 0 ], riftTransformed8[ 1 ], input[ 3 ], riftTransformed8[ 2 ], input[ 5 ], input[ 6 ], input[ 7 ], riftTransformed8[ 3 ]; | |
output: riftTransformed9[ 0 ], riftTransformed9[ 1 ], riftTransformed9[ 2 ], riftTransformed9[ 3 ]; | |
def ApplyPreProcessSourcePe: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
flagsInt( CopyInt ): input[ 1 ]; | |
flags( GetBits ): flagsInt[ 0 ]; | |
source( PassBuffer ): input[ 2 ]; | |
bitReader( BitReaderOpen ): input[ 3 ]; | |
targetSize( CopyInt ): input[ 4 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
sourcePe0( PortableExecutableFromBuffer ): source[ 0 ], 1; | |
checkSourcePe0( CheckIntsIdentity ): sourcePe0[ 1 ], 1, 0x040301; | |
sourcePe( PassPe / flags[ 13 ] ? "UnbindPortableExecutable" : "PassPe" ): sourcePe0[ 0 ]; | |
sourceOffsetToRva( ExtractImageOffsetToRva ): sourcePe[ 0 ]; | |
debugWriteSourceOffsetToRva( DebugWriteFileRiftTable ): "sourceOffsetToRva.apply.rift", sourceOffsetToRva[ 0 ]; | |
sourceCliMetadata( ExtractCliMetadata ): sourcePe[ 0 ]; | |
sourceImageBase( GetImageBase ): sourcePe[ 0 ]; | |
targetInfo( BitReadPortableExecutableInfo ): bitReader[ 0 ]; | |
targetInfoSplit( SplitPortableExecutableInfo ): targetInfo[ 1 ]; | |
targetImageBase( PassInt ): targetInfoSplit[ 0 ]; | |
targetGlobalPointer( PassInt ): targetInfoSplit[ 1 ]; | |
targetTimeStamp( PassInt ): targetInfoSplit[ 2 ]; | |
targetRvaToOffset( PassRiftTable ): targetInfoSplit[ 3 ]; | |
debugWriteTargetRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "targetRvaToOffset.apply.rift", targetRvaToOffset[ 0 ]; | |
targetCliMetadata( PassCliMetadata ): targetInfoSplit[ 4 ]; | |
usedRiftTable( BitReadRiftTable ): targetInfo[ 0 ]; | |
debugWriteUsedRiftTable( DebugWriteFileRiftTable ): "used.apply.rift", usedRiftTable[ 1 ]; | |
cliMap( BitReadCliMap ): usedRiftTable[ 0 ]; | |
bitReaderClose( BitReaderClose ): cliMap[ 0 ], 1; | |
hintBuffer( CreateHintBuffer ): sourcePe[ 0 ]; | |
emptyRelative( CreateEmptyRiftTable ):; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceRiftTransformed( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], hintBuffer[ 0 ], usedRiftTable[ 1 ], "", cliMap[ 1 ], targetInfo[ 1 ], 1, emptyRelative[ 0 ]; | |
setImageBase( SetImageBase ): sourceRiftTransformed[ 0 ], targetImageBase[ 0 ]; | |
setGlobalPointer( SetGlobalPointer ): setImageBase[ 0 ], targetGlobalPointer[ 0 ]; | |
setTimeStamp( SetTimeStamp ): setGlobalPointer[ 0 ], targetTimeStamp[ 0 ]; | |
setCheckSum( SetCheckSum ): setTimeStamp[ 0 ], 0; | |
transformed( PortableExecutableToBuffer ): setCheckSum[ 0 ]; | |
compressionRiftTable0( MultiplyRiftTables ): sourceOffsetToRva[ 0 ], usedRiftTable[ 1 ]; | |
debugWriteCompression0( DebugWriteFileRiftTable ): "compression0.apply.rift", compressionRiftTable0[ 0 ]; | |
compressionRiftTable1( MultiplyRiftTables ): compressionRiftTable0[ 0 ], targetRvaToOffset[ 0 ]; | |
debugWriteCompression1( DebugWriteFileRiftTable ): "compression1.apply.rift", compressionRiftTable1[ 0 ]; | |
compressionRiftTable2( ReverseRiftTable ): compressionRiftTable1[ 0 ], 0; | |
debugWriteCompression2( DebugWriteFileRiftTable ): "compression2.apply.rift", compressionRiftTable2[ 0 ]; | |
cliMapCompressionRiftTable( CompressionRiftTableFromCliMap ): sourceCliMetadata[ 0 ], targetCliMetadata[ 0 ], cliMap[ 1 ], transformed[ 0 ]; | |
debugWriteCliMapCompressionRiftTable( DebugWriteFileRiftTable ): "cliMapCompression.apply.rift", cliMapCompressionRiftTable[ 0 ]; | |
compressionRiftTable3( SumRiftTables ): compressionRiftTable2[ 0 ], cliMapCompressionRiftTable[ 0 ], 1; | |
debugWriteCompression3( DebugWriteFileRiftTable ): "compression3.apply.rift", compressionRiftTable3[ 0 ]; | |
output: transformed[ 0 ], compressionRiftTable3[ 0 ]; | |
def ApplyPreProcessSourcePeCli4: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
flagsInt( CopyInt ): input[ 1 ]; | |
flags( GetBits ): flagsInt[ 0 ]; | |
source( PassBuffer ): input[ 2 ]; | |
bitReader( BitReaderOpen ): input[ 3 ]; | |
targetSize( CopyInt ): input[ 4 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
sourcePe0( PortableExecutableFromBuffer ): source[ 0 ], 1; | |
checkSourcePe0( CheckIntsIdentity ): sourcePe0[ 1 ], 1, 0x040301; | |
sourcePe( PassPe / flags[ 13 ] ? "UnbindPortableExecutable" : "PassPe" ): sourcePe0[ 0 ]; | |
sourceOffsetToRva( ExtractImageOffsetToRva ): sourcePe[ 0 ]; | |
debugWriteSourceOffsetToRva( DebugWriteFileRiftTable ): "sourceOffsetToRva.apply.rift", sourceOffsetToRva[ 0 ]; | |
sourceCliMetadata( ExtractCli4Metadata ): sourcePe[ 0 ]; | |
sourceImageBase( GetImageBase ): sourcePe[ 0 ]; | |
targetInfo( BitReadPortableExecutableInfoCli4 ): bitReader[ 0 ]; | |
targetInfoSplit( SplitPortableExecutableInfo ): targetInfo[ 1 ]; | |
targetImageBase( PassInt ): targetInfoSplit[ 0 ]; | |
targetGlobalPointer( PassInt ): targetInfoSplit[ 1 ]; | |
targetTimeStamp( PassInt ): targetInfoSplit[ 2 ]; | |
targetRvaToOffset( PassRiftTable ): targetInfoSplit[ 3 ]; | |
debugWriteTargetRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "targetRvaToOffset.apply.rift", targetRvaToOffset[ 0 ]; | |
targetCliMetadata( PassCliMetadata ): targetInfoSplit[ 5 ]; | |
usedRiftTable( BitReadRiftTable ): targetInfo[ 0 ]; | |
debugWriteUsedRiftTable( DebugWriteFileRiftTable ): "used.apply.rift", usedRiftTable[ 1 ]; | |
cliMap( BitReadCliMap ): usedRiftTable[ 0 ]; | |
bitReaderClose( BitReaderClose ): cliMap[ 0 ], 1; | |
hintBuffer( CreateHintBuffer ): sourcePe[ 0 ]; | |
emptyRelative( CreateEmptyRiftTable ):; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceRiftTransformed( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], hintBuffer[ 0 ], usedRiftTable[ 1 ], "", cliMap[ 1 ], targetInfo[ 1 ], 1, emptyRelative[ 0 ]; | |
setImageBase( SetImageBase ): sourceRiftTransformed[ 0 ], targetImageBase[ 0 ]; | |
setGlobalPointer( SetGlobalPointer ): setImageBase[ 0 ], targetGlobalPointer[ 0 ]; | |
setTimeStamp( SetTimeStamp ): setGlobalPointer[ 0 ], targetTimeStamp[ 0 ]; | |
setCheckSum( SetCheckSum ): setTimeStamp[ 0 ], 0; | |
transformed( PortableExecutableToBuffer ): setCheckSum[ 0 ]; | |
compressionRiftTable0( MultiplyRiftTables ): sourceOffsetToRva[ 0 ], usedRiftTable[ 1 ]; | |
debugWriteCompression0( DebugWriteFileRiftTable ): "compression0.apply.rift", compressionRiftTable0[ 0 ]; | |
compressionRiftTable1( MultiplyRiftTables ): compressionRiftTable0[ 0 ], targetRvaToOffset[ 0 ]; | |
debugWriteCompression1( DebugWriteFileRiftTable ): "compression1.apply.rift", compressionRiftTable1[ 0 ]; | |
compressionRiftTable2( ReverseRiftTable ): compressionRiftTable1[ 0 ], 0; | |
debugWriteCompression2( DebugWriteFileRiftTable ): "compression2.apply.rift", compressionRiftTable2[ 0 ]; | |
cliMapCompressionRiftTable( CompressionRiftTableFromCli4Map ): sourceCliMetadata[ 0 ], targetCliMetadata[ 0 ], cliMap[ 1 ], transformed[ 0 ]; | |
debugWriteCliMapCompressionRiftTable( DebugWriteFileRiftTable ): "cliMapCompression.apply.rift", cliMapCompressionRiftTable[ 0 ]; | |
compressionRiftTable3( SumRiftTables ): compressionRiftTable2[ 0 ], cliMapCompressionRiftTable[ 0 ], 1; | |
debugWriteCompression3( DebugWriteFileRiftTable ): "compression3.apply.rift", compressionRiftTable3[ 0 ]; | |
output: transformed[ 0 ], compressionRiftTable3[ 0 ]; | |
def TargetRealPeContainer: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
flagsInt( CopyInt ): input[ 1 ]; | |
sourcePe( PortableExecutableFromBuffer ): input[ 2 ], 1; | |
targetPe( PortableExecutableFromBuffer ): input[ 3 ], 1; | |
patchIni( InputSharedIniReader ): input[ 6 ]; | |
targetInfo( GetPortableExecutableInfo ): targetPe[ 0 ]; | |
cliMap( CliMapFromPes ): sourcePe[ 0 ], targetPe[ 0 ]; | |
pesRiftTable( RiftTableFromPes ): flagsInt[ 0 ], sourcePe[ 0 ], targetPe[ 0 ], cliMap[ 0 ]; | |
psymsRiftTable( RiftTableFromPsyms ): code[ 0 ], flagsInt[ 0 ], sourcePe[ 0 ], targetPe[ 0 ], input[ 4 ], input[ 5 ]; | |
sourceRvaToImageOffset( ExtractRvaToImageOffset ): sourcePe[ 0 ]; | |
targetRvaToImageOffset( ExtractRvaToImageOffset ): targetPe[ 0 ]; | |
debugWriteSourceRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "sourceRvaToOffset.create.rift", sourceRvaToImageOffset[ 0 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceHintBuffer( CreateHintBuffer ): sourcePe[ 0 ]; | |
targetHintBuffer( CreateHintBuffer ): targetPe[ 0 ]; | |
emptyCliMap( CreateEmptyCliMap ):; | |
emptyRiftTable( CreateEmptyRiftTable ):; | |
emptyPeInfo( CreateEmptyPortableExecutableInfo ):; | |
sourceRelative( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], sourceHintBuffer[ 0 ], emptyRiftTable[ 0 ], "", emptyCliMap[ 0 ], emptyPeInfo[ 0 ], 0, emptyRiftTable[ 0 ]; | |
targetRelative( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], targetPe[ 0 ], targetHintBuffer[ 0 ], emptyRiftTable[ 0 ], "", emptyCliMap[ 0 ], emptyPeInfo[ 0 ], 0, emptyRiftTable[ 0 ]; | |
sourceZero( PortableExecutableToBuffer ): sourceRelative[ 0 ]; | |
targetZero( PortableExecutableToBuffer ): targetRelative[ 0 ]; | |
debugWriteSourceZero( DebugWriteFile ): "sourceZero.create.image", sourceZero[ 0 ]; | |
debugWriteTargetZero( DebugWriteFile ): "targetZero.create.image", targetZero[ 0 ]; | |
debugWriteSourceRelative( DebugWriteFileRiftTable ): "sourceRelative.create.rift", sourceRelative[ 3 ]; | |
debugWriteTargetRelative( DebugWriteFileRiftTable ): "targetRelative.create.rift", targetRelative[ 3 ]; | |
basicBlockRiftTable( CreateBasicBlockRiftTable ): sourceZero[ 0 ], targetZero[ 0 ], sourceRelative[ 3 ], targetRelative[ 3 ], sourceRvaToImageOffset[ 0 ], targetRvaToImageOffset[ 0 ]; | |
output: targetInfo[ 0 ], pesRiftTable[ 0 ], basicBlockRiftTable[ 0 ], psymsRiftTable[ 0 ], cliMap[ 0 ], cliMap[ 1 ]; | |
def TargetRealPeContainerCli4: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
flagsInt( CopyInt ): input[ 1 ]; | |
sourcePe( PortableExecutableFromBuffer ): input[ 2 ], 1; | |
targetPe( PortableExecutableFromBuffer ): input[ 3 ], 1; | |
patchIni( InputSharedIniReader ): input[ 6 ]; | |
targetInfo( GetPortableExecutableInfoCli4 ): targetPe[ 0 ]; | |
cliMap( Cli4MapFromPes ): sourcePe[ 0 ], targetPe[ 0 ]; | |
pesRiftTable( RiftTableFromPes ): flagsInt[ 0 ], sourcePe[ 0 ], targetPe[ 0 ], cliMap[ 0 ]; | |
psymsRiftTable( RiftTableFromPsyms ): code[ 0 ], flagsInt[ 0 ], sourcePe[ 0 ], targetPe[ 0 ], input[ 4 ], input[ 5 ]; | |
sourceRvaToImageOffset( ExtractRvaToImageOffset ): sourcePe[ 0 ]; | |
targetRvaToImageOffset( ExtractRvaToImageOffset ): targetPe[ 0 ]; | |
debugWriteSourceRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "sourceRvaToOffset.create.rift", sourceRvaToImageOffset[ 0 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceHintBuffer( CreateHintBuffer ): sourcePe[ 0 ]; | |
targetHintBuffer( CreateHintBuffer ): targetPe[ 0 ]; | |
emptyCliMap( CreateEmptyCli4Map ):; | |
emptyRiftTable( CreateEmptyRiftTable ):; | |
emptyPeInfo( CreateEmptyPortableExecutableInfoCli4 ):; | |
sourceRelative( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], sourceHintBuffer[ 0 ], emptyRiftTable[ 0 ], "", emptyCliMap[ 0 ], emptyPeInfo[ 0 ], 0, emptyRiftTable[ 0 ]; | |
targetRelative( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], targetPe[ 0 ], targetHintBuffer[ 0 ], emptyRiftTable[ 0 ], "", emptyCliMap[ 0 ], emptyPeInfo[ 0 ], 0, emptyRiftTable[ 0 ]; | |
sourceZero( PortableExecutableToBuffer ): sourceRelative[ 0 ]; | |
targetZero( PortableExecutableToBuffer ): targetRelative[ 0 ]; | |
debugWriteSourceZero( DebugWriteFile ): "sourceZero.create.image", sourceZero[ 0 ]; | |
debugWriteTargetZero( DebugWriteFile ): "targetZero.create.image", targetZero[ 0 ]; | |
debugWriteSourceRelative( DebugWriteFileRiftTable ): "sourceRelative.create.rift", sourceRelative[ 3 ]; | |
debugWriteTargetRelative( DebugWriteFileRiftTable ): "targetRelative.create.rift", targetRelative[ 3 ]; | |
basicBlockRiftTable( CreateBasicBlockRiftTable ): sourceZero[ 0 ], targetZero[ 0 ], sourceRelative[ 3 ], targetRelative[ 3 ], sourceRvaToImageOffset[ 0 ], targetRvaToImageOffset[ 0 ]; | |
output: targetInfo[ 0 ], pesRiftTable[ 0 ], basicBlockRiftTable[ 0 ], psymsRiftTable[ 0 ], cliMap[ 0 ], cliMap[ 1 ]; | |
def TargetStubPeContainer: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flags( InputSharedInt ): input[ 1 ]; | |
sourceBuffer( InputExclusiveBuffer ): input[ 2 ]; | |
targetBuffer( InputExclusiveBuffer ): input[ 3 ]; | |
sourceIni( InputSharedIniReader ): input[ 4 ]; | |
targetIni( InputSharedIniReader ): input[ 5 ]; | |
patchIni( InputSharedIniReader ): input[ 6 ]; | |
targetInfo( CreateEmptyPortableExecutableInfo ):; | |
cliMap( CreateEmptyCliMap ):; | |
cliMapRiftTable( CreateEmptyRiftTable ):; | |
pesRiftTable( CreateEmptyRiftTable ):; | |
basicBlockRiftTable( CreateEmptyRiftTable ):; | |
psymsRiftTable( CreateEmptyRiftTable ):; | |
output: targetInfo[ 0 ], pesRiftTable[ 0 ], basicBlockRiftTable[ 0 ], psymsRiftTable[ 0 ], cliMap[ 0 ], cliMapRiftTable[ 0 ]; | |
def TargetStubPeContainerCli4: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flags( InputSharedInt ): input[ 1 ]; | |
sourceBuffer( InputExclusiveBuffer ): input[ 2 ]; | |
targetBuffer( InputExclusiveBuffer ): input[ 3 ]; | |
sourceIni( InputSharedIniReader ): input[ 4 ]; | |
targetIni( InputSharedIniReader ): input[ 5 ]; | |
patchIni( InputSharedIniReader ): input[ 6 ]; | |
targetInfo( CreateEmptyPortableExecutableInfoCli4 ):; | |
cliMap( CreateEmptyCli4Map ):; | |
cliMapRiftTable( CreateEmptyRiftTable ):; | |
pesRiftTable( CreateEmptyRiftTable ):; | |
basicBlockRiftTable( CreateEmptyRiftTable ):; | |
psymsRiftTable( CreateEmptyRiftTable ):; | |
output: targetInfo[ 0 ], pesRiftTable[ 0 ], basicBlockRiftTable[ 0 ], psymsRiftTable[ 0 ], cliMap[ 0 ], cliMapRiftTable[ 0 ]; | |
def CreatePreProcessSourcePe: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
targetCode( CopyInt ): input[ 1 ]; | |
flagsInt( CopyInt ): input[ 2 ]; | |
flags( GetBits ): flagsInt[ 0 ]; | |
source( PassBuffer ): input[ 3 ]; | |
target( CopyBuffer ): input[ 4 ]; | |
sourceIni( PassIniReader ): input[ 5 ]; | |
targetIni( PassIniReader ): input[ 6 ]; | |
patchIni( PassIniReader ): input[ 7 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
sourcePe0( PortableExecutableFromBuffer ): source[ 0 ], 1; | |
checkSourcePe0( CheckIntsIdentity ): sourcePe0[ 1 ], 1, 0x041F02; | |
sourcePe( PassPe / flags[ 13 ] ? "UnbindPortableExecutable" : "PassPe" ): sourcePe0[ 0 ]; | |
sourceOffsetToRva( ExtractImageOffsetToRva ): sourcePe[ 0 ]; | |
debugWriteSourceOffsetToRva( DebugWriteFileRiftTable ): "sourceOffsetToRva.create.rift", sourceOffsetToRva[ 0 ]; | |
sourceCliMetadata( ExtractCliMetadata ): sourcePe[ 0 ]; | |
sourceImageBase( GetImageBase ): sourcePe[ 0 ]; | |
iniRiftTable( RiftTableFromIniSection ): patchIni[ 0 ], "OldRvaToNewRvaMap", 1; | |
debugWriteIniRiftTable( DebugWriteFileRiftTable ): "ini.create.rift", iniRiftTable[ 0 ]; | |
compareCodes( CompareInts ): code[ 0 ], targetCode[ 0 ]; | |
targetPeContainer( TargetRealPeContainer / compareCodes[ 0 ] ? "TargetStubPeContainer" : "TargetRealPeContainer" ): code[ 0 ], flagsInt[ 0 ], source[ 0 ], target[ 0 ], sourceIni[ 0 ], targetIni[ 0 ], patchIni[ 0 ]; | |
targetInfo( PassPortableExecutableInfo ): targetPeContainer[ 0 ]; | |
targetInfoSplit( SplitPortableExecutableInfo ): targetInfo[ 0 ]; | |
targetImageBase( PassInt ): targetInfoSplit[ 0 ]; | |
targetGlobalPointer( PassInt ): targetInfoSplit[ 1 ]; | |
targetTimeStamp( PassInt ): targetInfoSplit[ 2 ]; | |
targetRvaToOffset( PassRiftTable ): targetInfoSplit[ 3 ]; | |
debugWriteTargetRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "targetRvaToOffset.create.rift", targetRvaToOffset[ 0 ]; | |
targetCliMetadata( PassCliMetadata ): targetInfoSplit[ 4 ]; | |
pesRiftTable( PassRiftTable ): targetPeContainer[ 1 ]; | |
debugWritePesRiftTable( DebugWriteFileRiftTable ): "pes.create.rift", pesRiftTable[ 0 ]; | |
basicBlockRiftTable( PassRiftTable ): targetPeContainer[ 2 ]; | |
debugWriteBasicBlockRiftTable( DebugWriteFileRiftTable ): "basicBlock.create.rift", basicBlockRiftTable[ 0 ]; | |
psymsRiftTable( PassRiftTable ): targetPeContainer[ 3 ]; | |
debugWritePsymsRiftTable( DebugWriteFileRiftTable ): "psyms.create.rift", psymsRiftTable[ 0 ]; | |
cliMap( PassCliMap ): targetPeContainer[ 4 ]; | |
cliMapRiftTable( PassRiftTable ): targetPeContainer[ 5 ]; | |
debugWriteCliMapRiftTable( DebugWriteFileRiftTable ): "cliMap.create.rift", cliMapRiftTable[ 0 ]; | |
riftTable0( SumRiftTables ): pesRiftTable[ 0 ], cliMapRiftTable[ 0 ], 0; | |
riftTable1( SumRiftTables ): riftTable0[ 0 ], basicBlockRiftTable[ 0 ], 0; | |
riftTable2( SumRiftTables ): riftTable1[ 0 ], psymsRiftTable[ 0 ], 0; | |
unreducedRiftTable( SumRiftTables ): iniRiftTable[ 0 ], riftTable2[ 0 ], 0; | |
debugWriteUnreducedRiftTable( DebugWriteFileRiftTable ): "unreduced.create.rift", unreducedRiftTable[ 0 ]; | |
reducedRiftTable( ReduceRiftTable ): unreducedRiftTable[ 0 ]; | |
debugWriteReducedRiftTable( DebugWriteFileRiftTable ): "reduced.create.rift", reducedRiftTable[ 0 ]; | |
targetSize( BufferSize ): target[ 0 ]; | |
preWriter( BitWriterOpen ):; | |
writeTargetInfo( BitWritePortableExecutableInfo ): preWriter[ 0 ], targetInfo[ 0 ]; | |
hintBuffer0( CreateHintBuffer ): sourcePe[ 0 ]; | |
usageBuffer0( CreateRiftUsageBuffer ): reducedRiftTable[ 0 ]; | |
emptyRelative( CreateEmptyRiftTable ):; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceRiftTransformed( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], hintBuffer0[ 0 ], reducedRiftTable[ 0 ], usageBuffer0[ 0 ], cliMap[ 0 ], targetInfo[ 0 ], 1, emptyRelative[ 0 ]; | |
hintBuffer( PassBuffer ): sourceRiftTransformed[ 1 ]; | |
usageBuffer( RiftTableMap ): reducedRiftTable[ 0 ], 0, sourceRiftTransformed[ 2 ]; | |
debugWriteHintBuffer( DebugWriteFile ): "hint.map", hintBuffer[ 0 ]; | |
debugWriteUsageBuffer( DebugWriteFile ): "usage.map", usageBuffer[ 1 ]; | |
usedRiftTable( RemoveUnusedRiftEntries ): reducedRiftTable[ 0 ], usageBuffer[ 1 ]; | |
debugWriteUsedRiftTable( DebugWriteFileRiftTable ): "used.create.rift", usedRiftTable[ 0 ]; | |
setImageBase( SetImageBase ): sourceRiftTransformed[ 0 ], targetImageBase[ 0 ]; | |
setGlobalPointer( SetGlobalPointer ): setImageBase[ 0 ], targetGlobalPointer[ 0 ]; | |
setTimeStamp( SetTimeStamp ): setGlobalPointer[ 0 ], targetTimeStamp[ 0 ]; | |
setCheckSum( SetCheckSum ): setTimeStamp[ 0 ], 0; | |
writeRiftTable( BitWriteRiftTable ): writeTargetInfo[ 0 ], usedRiftTable[ 0 ]; | |
writeCliMap( BitWriteCliMap ): writeRiftTable[ 0 ], cliMap[ 0 ]; | |
preBuffer( BitWriterClose ): writeCliMap[ 0 ]; | |
transformedSource( PortableExecutableToBuffer ): setCheckSum[ 0 ]; | |
compressionRiftTable0( MultiplyRiftTables ): sourceOffsetToRva[ 0 ], usedRiftTable[ 0 ]; | |
debugWriteCompression0( DebugWriteFileRiftTable ): "compression0.create.rift", compressionRiftTable0[ 0 ]; | |
compressionRiftTable1( MultiplyRiftTables ): compressionRiftTable0[ 0 ], targetRvaToOffset[ 0 ]; | |
debugWriteCompression1( DebugWriteFileRiftTable ): "compression1.create.rift", compressionRiftTable1[ 0 ]; | |
compressionRiftTable2( ReverseRiftTable ): compressionRiftTable1[ 0 ], 0; | |
debugWriteCompression2( DebugWriteFileRiftTable ): "compression2.create.rift", compressionRiftTable2[ 0 ]; | |
cliMapCompressionRiftTable( CompressionRiftTableFromCliMap ): sourceCliMetadata[ 0 ], targetCliMetadata[ 0 ], cliMap[ 0 ], transformedSource[ 0 ]; | |
debugWriteCliMapCompressionRiftTable( DebugWriteFileRiftTable ): "cliMapCompression.create.rift", cliMapCompressionRiftTable[ 0 ]; | |
compressionRiftTable3( SumRiftTables ): compressionRiftTable2[ 0 ], cliMapCompressionRiftTable[ 0 ], 1; | |
debugWriteCompression3( DebugWriteFileRiftTable ): "compression3.create.rift", compressionRiftTable3[ 0 ]; | |
output: transformedSource[ 0 ], preBuffer[ 0 ], compressionRiftTable3[ 0 ]; | |
def CreatePreProcessSourcePeCli4: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
targetCode( CopyInt ): input[ 1 ]; | |
flagsInt( CopyInt ): input[ 2 ]; | |
flags( GetBits ): flagsInt[ 0 ]; | |
source( PassBuffer ): input[ 3 ]; | |
target( CopyBuffer ): input[ 4 ]; | |
sourceIni( PassIniReader ): input[ 5 ]; | |
targetIni( PassIniReader ): input[ 6 ]; | |
patchIni( PassIniReader ): input[ 7 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
sourcePe0( PortableExecutableFromBuffer ): source[ 0 ], 1; | |
checkSourcePe0( CheckIntsIdentity ): sourcePe0[ 1 ], 1, 0x041F02; | |
sourcePe( PassPe / flags[ 13 ] ? "UnbindPortableExecutable" : "PassPe" ): sourcePe0[ 0 ]; | |
sourceOffsetToRva( ExtractImageOffsetToRva ): sourcePe[ 0 ]; | |
debugWriteSourceOffsetToRva( DebugWriteFileRiftTable ): "sourceOffsetToRva.create.rift", sourceOffsetToRva[ 0 ]; | |
sourceCliMetadata( ExtractCli4Metadata ): sourcePe[ 0 ]; | |
sourceImageBase( GetImageBase ): sourcePe[ 0 ]; | |
iniRiftTable( RiftTableFromIniSection ): patchIni[ 0 ], "OldRvaToNewRvaMap", 1; | |
debugWriteIniRiftTable( DebugWriteFileRiftTable ): "ini.create.rift", iniRiftTable[ 0 ]; | |
compareCodes( CompareInts ): code[ 0 ], targetCode[ 0 ]; | |
targetPeContainer( TargetRealPeContainerCli4 / compareCodes[ 0 ] ? "TargetStubPeContainerCli4" : "TargetRealPeContainerCli4" ): code[ 0 ], flagsInt[ 0 ], source[ 0 ], target[ 0 ], sourceIni[ 0 ], targetIni[ 0 ], patchIni[ 0 ]; | |
targetInfo( PassPortableExecutableInfo ): targetPeContainer[ 0 ]; | |
targetInfoSplit( SplitPortableExecutableInfo ): targetInfo[ 0 ]; | |
targetImageBase( PassInt ): targetInfoSplit[ 0 ]; | |
targetGlobalPointer( PassInt ): targetInfoSplit[ 1 ]; | |
targetTimeStamp( PassInt ): targetInfoSplit[ 2 ]; | |
targetRvaToOffset( PassRiftTable ): targetInfoSplit[ 3 ]; | |
debugWriteTargetRvaToOffsetRiftTable( DebugWriteFileRiftTable ): "targetRvaToOffset.create.rift", targetRvaToOffset[ 0 ]; | |
targetCliMetadata( PassCliMetadata ): targetInfoSplit[ 5 ]; | |
pesRiftTable( PassRiftTable ): targetPeContainer[ 1 ]; | |
debugWritePesRiftTable( DebugWriteFileRiftTable ): "pes.create.rift", pesRiftTable[ 0 ]; | |
basicBlockRiftTable( PassRiftTable ): targetPeContainer[ 2 ]; | |
debugWriteBasicBlockRiftTable( DebugWriteFileRiftTable ): "basicBlock.create.rift", basicBlockRiftTable[ 0 ]; | |
psymsRiftTable( PassRiftTable ): targetPeContainer[ 3 ]; | |
debugWritePsymsRiftTable( DebugWriteFileRiftTable ): "psyms.create.rift", psymsRiftTable[ 0 ]; | |
cliMap( PassCliMap ): targetPeContainer[ 4 ]; | |
cliMapRiftTable( PassRiftTable ): targetPeContainer[ 5 ]; | |
debugWriteCliMapRiftTable( DebugWriteFileRiftTable ): "cliMap.create.rift", cliMapRiftTable[ 0 ]; | |
riftTable0( SumRiftTables ): pesRiftTable[ 0 ], cliMapRiftTable[ 0 ], 0; | |
riftTable1( SumRiftTables ): riftTable0[ 0 ], basicBlockRiftTable[ 0 ], 0; | |
riftTable2( SumRiftTables ): riftTable1[ 0 ], psymsRiftTable[ 0 ], 0; | |
unreducedRiftTable( SumRiftTables ): iniRiftTable[ 0 ], riftTable2[ 0 ], 0; | |
debugWriteUnreducedRiftTable( DebugWriteFileRiftTable ): "unreduced.create.rift", unreducedRiftTable[ 0 ]; | |
reducedRiftTable( ReduceRiftTable ): unreducedRiftTable[ 0 ]; | |
debugWriteReducedRiftTable( DebugWriteFileRiftTable ): "reduced.create.rift", reducedRiftTable[ 0 ]; | |
targetSize( BufferSize ): target[ 0 ]; | |
preWriter( BitWriterOpen ):; | |
writeTargetInfo( BitWritePortableExecutableInfoCli4 ): preWriter[ 0 ], targetInfo[ 0 ]; | |
hintBuffer0( CreateHintBuffer ): sourcePe[ 0 ]; | |
usageBuffer0( CreateRiftUsageBuffer ): reducedRiftTable[ 0 ]; | |
emptyRelative( CreateEmptyRiftTable ):; | |
riftTransformName( Concat ): "RiftTransform_", codeMnemonic[ 0 ]; | |
sourceRiftTransformed( RiftTransformTemplate / riftTransformName[ 0 ] ): flagsInt[ 0 ], sourcePe[ 0 ], hintBuffer0[ 0 ], reducedRiftTable[ 0 ], usageBuffer0[ 0 ], cliMap[ 0 ], targetInfo[ 0 ], 1, emptyRelative[ 0 ]; | |
hintBuffer( PassBuffer ): sourceRiftTransformed[ 1 ]; | |
usageBuffer( RiftTableMap ): reducedRiftTable[ 0 ], 0, sourceRiftTransformed[ 2 ]; | |
debugWriteHintBuffer( DebugWriteFile ): "hint.map", hintBuffer[ 0 ]; | |
debugWriteUsageBuffer( DebugWriteFile ): "usage.map", usageBuffer[ 1 ]; | |
usedRiftTable( RemoveUnusedRiftEntries ): reducedRiftTable[ 0 ], usageBuffer[ 1 ]; | |
debugWriteUsedRiftTable( DebugWriteFileRiftTable ): "used.create.rift", usedRiftTable[ 0 ]; | |
setImageBase( SetImageBase ): sourceRiftTransformed[ 0 ], targetImageBase[ 0 ]; | |
setGlobalPointer( SetGlobalPointer ): setImageBase[ 0 ], targetGlobalPointer[ 0 ]; | |
setTimeStamp( SetTimeStamp ): setGlobalPointer[ 0 ], targetTimeStamp[ 0 ]; | |
setCheckSum( SetCheckSum ): setTimeStamp[ 0 ], 0; | |
writeRiftTable( BitWriteRiftTable ): writeTargetInfo[ 0 ], usedRiftTable[ 0 ]; | |
writeCliMap( BitWriteCliMap ): writeRiftTable[ 0 ], cliMap[ 0 ]; | |
preBuffer( BitWriterClose ): writeCliMap[ 0 ]; | |
transformedSource( PortableExecutableToBuffer ): setCheckSum[ 0 ]; | |
compressionRiftTable0( MultiplyRiftTables ): sourceOffsetToRva[ 0 ], usedRiftTable[ 0 ]; | |
debugWriteCompression0( DebugWriteFileRiftTable ): "compression0.create.rift", compressionRiftTable0[ 0 ]; | |
compressionRiftTable1( MultiplyRiftTables ): compressionRiftTable0[ 0 ], targetRvaToOffset[ 0 ]; | |
debugWriteCompression1( DebugWriteFileRiftTable ): "compression1.create.rift", compressionRiftTable1[ 0 ]; | |
compressionRiftTable2( ReverseRiftTable ): compressionRiftTable1[ 0 ], 0; | |
debugWriteCompression2( DebugWriteFileRiftTable ): "compression2.create.rift", compressionRiftTable2[ 0 ]; | |
cliMapCompressionRiftTable( CompressionRiftTableFromCli4Map ): sourceCliMetadata[ 0 ], targetCliMetadata[ 0 ], cliMap[ 0 ], transformedSource[ 0 ]; | |
debugWriteCliMapCompressionRiftTable( DebugWriteFileRiftTable ): "cliMapCompression.create.rift", cliMapCompressionRiftTable[ 0 ]; | |
compressionRiftTable3( SumRiftTables ): compressionRiftTable2[ 0 ], cliMapCompressionRiftTable[ 0 ], 1; | |
debugWriteCompression3( DebugWriteFileRiftTable ): "compression3.create.rift", compressionRiftTable3[ 0 ]; | |
output: transformedSource[ 0 ], preBuffer[ 0 ], compressionRiftTable3[ 0 ]; | |
def CreatePreProcessSourcePeCli4: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flagsInt( InputSharedInt ): input[ 1 ]; | |
source( PassBuffer ): input[ 2 ]; | |
preProcessBuffer( InputSharedBuffer ): input[ 3 ]; | |
targetSize( InputSharedInt ): input[ 4 ]; | |
riftTable( CreateEmptyRiftTable ):; | |
compressionRiftTable( CreateEmptyRiftTable ):; | |
output: source[ 0 ], compressionRiftTable[ 0 ]; | |
def ApplyPreProcessSource_I386: | |
========================= | |
wrap( ApplyPreProcessSourcePe ):; | |
def ApplyPreProcessSource_CLI4_I386: | |
========================= | |
wrap( ApplyPreProcessSourcePeCli4 ):; | |
def ApplyPostProcessTarget: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
output( PassBuffer / flags[ 0 ] ? "PostProcessI386E8" : "PassBuffer" ): input[ 1 ]; | |
def CreatePreProcessSource_RAW: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
targetCode( InputSharedInt ): input[ 1 ]; | |
flagsInt( InputSharedInt): input[ 2 ]; | |
source( PassBuffer ): input[ 3 ]; | |
target( InputSharedBuffer ): input[ 4 ]; | |
sourceIni( PassIniReader ): input[ 5 ]; | |
targetIni( PassIniReader ): input[ 6 ]; | |
patchIni( PassIniReader ): input[ 7 ]; | |
compressionRiftTable( CreateEmptyRiftTable ):; | |
output: source[ 0 ], "", compressionRiftTable[ 0 ]; | |
def CreatePreProcessSource_I386: | |
========================= | |
wrap( CreatePreProcessSourcePe ):; | |
def CreatePreProcessSource_CLI4_I386: | |
========================= | |
wrap( CreatePreProcessSourcePeCli4 ):; | |
def CreatePreProcessTarget: | |
========================= | |
flags( GetBits ): input[ 0 ]; | |
output( PassBuffer / flags[ 0 ] ? "PreProcessI386E8" : "PassBuffer" ): input[ 1 ]; | |
def ApplyPayload: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
flagsInt( CopyInt ): input[ 1 ]; | |
source( PassBuffer ): input[ 2 ]; | |
bitReader( PassBitReader ): input[ 3 ]; | |
targetBuffer( PassBuffer ): input[ 4 ]; | |
reverseRequested( CopyInt ): input[ 5 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
targetSize( BufferSize ): targetBuffer[ 0 ]; | |
preProcessBuffer( BitReadBuffer ): bitReader[ 0 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
applyPreProcessSourceName( Concat ): "ApplyPreProcessSource_", codeMnemonic[ 0 ]; | |
applyPreProcessSource( ApplyPreProcessSource_RAW / applyPreProcessSourceName[ 0 ] ): code[ 0 ], flagsInt[ 0 ], source[ 0 ], preProcessBuffer[ 1 ], targetSize[ 0 ]; | |
debugWritePreProcessSource( DebugWriteFile ): "preProcessSource.apply.image", applyPreProcessSource[ 0 ]; | |
compressionRiftTable5( PassRiftTable ): applyPreProcessSource[ 1 ]; | |
debugWriteCompression5( DebugWriteFileRiftTable ): "compression5.apply.rift", compressionRiftTable5[ 0 ]; | |
compressionRiftTable6( CreateEmptyRiftTable ):; | |
compressionRiftTable7( AddRiftEntry ): compressionRiftTable6[ 0 ], sourceSize[ 0 ], 0; | |
debugWriteCompression7( DebugWriteFileRiftTable ): "compression7.apply.rift", compressionRiftTable7[ 0 ]; | |
compressionRiftTable8( MultiplyRiftTables ): compressionRiftTable7[ 0 ], compressionRiftTable5[ 0 ]; | |
debugWriteCompression8( DebugWriteFileRiftTable ): "compression8.apply.rift", compressionRiftTable8[ 0 ]; | |
compressionRiftTable9( ReduceRiftTable ): compressionRiftTable8[ 0 ]; | |
debugWriteCompression9( DebugWriteFileRiftTable ): "compression9.apply.rift", compressionRiftTable9[ 0 ]; | |
patchBuffer( BitReadBuffer ): preProcessBuffer[ 0 ]; | |
target1( ApplyPseudoLzxPatchTargetBufferProvided ): applyPreProcessSource[ 0 ], patchBuffer[ 1 ], targetBuffer[ 0 ], compressionRiftTable9[ 0 ], reverseRequested[ 0 ]; | |
debugWritePreProcessTarget( DebugWriteFile ): "preProcessTarget.create.image", target1[ 0 ]; | |
target( ApplyPostProcessTarget ): flagsInt[ 0 ], target1[ 0 ]; | |
output: patchBuffer[ 0 ], target[ 0 ], target1[ 1 ]; | |
def SplitPatchHeader: | |
========================= | |
full( CopyBuffer ): input[ 0 ]; | |
asciiPatchSignature( TToAscii ): "PA30"; | |
asciiPatchSignatureSize( BufferSize ): asciiPatchSignature[ 0 ]; | |
signature( Unconcat ): full[ 0 ], asciiPatchSignatureSize[ 0 ]; | |
checkSignature( CheckBuffersIdentity ): signature[ 0 ], asciiPatchSignature[ 0 ], 0x044601; | |
intFixedBuffer( IntToFixedBuffer ): 0; | |
intFixedBufferSize( BufferSize ): intFixedBuffer[ 0 ]; | |
fileTimeBuffer( Unconcat ): signature[ 1 ], intFixedBufferSize[ 0 ]; | |
fileTime( IntFromFixedBuffer ): fileTimeBuffer[ 0 ]; | |
bitReader( BitReaderOpen ): fileTimeBuffer[ 1 ]; | |
version( BitReadInt ): bitReader[ 0 ]; | |
code( BitReadInt ): version[ 0 ]; | |
flagsInt( BitReadInt ): code[ 0 ]; | |
targetSize( BitReadInt ): flagsInt[ 0 ]; | |
hashAlgId( BitReadInt ): targetSize[ 0 ]; | |
hash( BitReadBuffer ): hashAlgId[ 0 ]; | |
output: hash[ 0 ], version[ 1 ], code[ 1 ], flagsInt[ 1 ], targetSize[ 1 ], fileTime[ 0 ], hashAlgId[ 1 ], hash[ 1 ]; | |
def ApplyPatchTargetBufferProvided: | |
========================= | |
source( PassBuffer ): input[ 0 ]; | |
patch( PassBuffer ): input[ 1 ]; | |
targetBuffer( PassBuffer ): input[ 2 ]; | |
split( SplitPatchHeader ): patch[ 0 ]; | |
targetBufferSize( BufferSize ): targetBuffer[ 0 ]; | |
checkTargetSize( CheckIntsIdentity ): split[ 4 ], targetBufferSize[ 0 ], 0x040303; | |
apply( ApplyPayload ): split[ 2 ], split[ 3 ], source[ 0 ], split[ 0 ], targetBuffer[ 0 ], 0; | |
bitReaderClose( BitReaderClose ): apply[ 0 ], 1; | |
hash( CalculateHash ): split[ 6 ], apply[ 1 ]; | |
checkHashIdentity( CheckBuffersIdentity ): hash[ 0 ], split[ 7 ], 0x040302; | |
output: apply[ 1 ]; | |
def CreateReversePatch: | |
========================= | |
asciiPatchSignature( TToAscii ): "PA30"; | |
source( PassBuffer ): input[ 0 ]; | |
patchedSource( PassBuffer ): input[ 1 ]; | |
lzxReversal( PassBuffer ): input[ 2 ]; | |
fileTime( CopyInt ): input[ 3 ]; | |
hashAlgId( CopyInt ): input[ 4 ]; | |
version( CopyInt ): input[ 5 ]; | |
code( CopyInt ): input[ 6 ]; | |
flagsInt( CopyInt ): input[ 7 ]; | |
fileTimeBuffer( IntToFixedBuffer ): fileTime[ 0 ]; | |
sourceHash( CalculateHash ): hashAlgId[ 0 ], source[ 0 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
header( Concat ): asciiPatchSignature[ 0 ], fileTimeBuffer[ 0 ]; | |
bitWriter( BitWriterOpen ):; | |
writeVersion( BitWriteInt ): bitWriter[ 0 ], version[ 0 ]; | |
writeCode( BitWriteInt ): writeVersion[ 0 ], code[ 0 ]; | |
writeFlagsInt( BitWriteInt ): writeCode[ 0 ], flagsInt[ 0 ]; | |
writeSourceSize( BitWriteInt ): writeFlagsInt[ 0 ], sourceSize[ 0 ]; | |
writeHashAlgId( BitWriteInt ): writeSourceSize[ 0 ], hashAlgId[ 0 ]; | |
writeHash( BitWriteBuffer ): writeHashAlgId[ 0 ], sourceHash[ 0 ]; | |
reversalBuffer( CaptureReversalData ): source[ 0 ], patchedSource[ 0 ], lzxReversal[ 0 ]; | |
writeReversal( BitWriteBuffer ): writeHash[ 0 ], reversalBuffer[ 0 ]; | |
created( BitWriterClose ): writeReversal[ 0 ]; | |
patch( Concat ): header[ 0 ], created[ 0 ]; | |
output: patch[ 0 ]; | |
def ApplyPatchGetReverse: | |
========================= | |
source( PassBuffer ): input[ 0 ]; | |
sourceCopy( CopyBuffer ): input[ 0 ]; | |
patch( PassBuffer ): input[ 1 ]; | |
sourceFileTime( CopyInt ): input[ 2 ]; | |
hashAlgId( CopyInt ): input[ 3 ]; | |
code( CopyInt ): input[ 4 ]; | |
split( SplitPatchHeader ): patch[ 0 ]; | |
targetBuffer( CreateBuffer ): split[ 4 ]; | |
apply( ApplyPayload ): split[ 2 ], split[ 3 ], source[ 0 ], split[ 0 ], targetBuffer[ 0 ], 1; | |
bitReaderClose( BitReaderClose ): apply[ 0 ], 1; | |
hash( CalculateHash ): split[ 6 ], apply[ 1 ]; | |
checkHashIdentity( CheckBuffersIdentity ): hash[ 0 ], split[ 7 ], 0x040302; | |
reversePatch( CreateReversePatch ): sourceCopy[ 0 ], apply[ 1 ], apply[ 2 ], sourceFileTime[ 0 ], hashAlgId[ 0 ], code[ 0 ], split[ 2 ], split[ 3 ]; | |
output: apply[ 1 ], reversePatch [ 0 ]; | |
def ApplyReversePatch: | |
========================= | |
source( PassBuffer ): input[ 0 ]; | |
patch( PassBuffer ): input[ 1 ]; | |
split( SplitPatchHeader ): patch[ 0 ]; | |
targetSize( CopyInt ): split[ 4 ]; | |
targetBuffer( CreateBuffer ): split[ 4 ]; | |
reverse( ApplyReversalData ): source[ 0 ], split[ 0 ], targetSize[ 0 ]; | |
hash( CalculateHash ): split[ 6 ], reverse[ 0 ]; | |
checkHashIdentity( CheckBuffersIdentity ): hash[ 0 ], split[ 7 ], 0x040302; | |
output: reverse[ 0 ]; | |
def ApplyPatch: | |
========================= | |
source( PassBuffer ): input[ 0 ]; | |
patch( PassBuffer ): input[ 1 ]; | |
split( SplitPatchHeader ): patch[ 0 ]; | |
targetBuffer( CreateBuffer ): split[ 4 ]; | |
apply( ApplyPayload ): split[ 2 ], split[ 3 ], source[ 0 ], split[ 0 ], targetBuffer[ 0 ], 0; | |
bitReaderClose( BitReaderClose ): apply[ 0 ], 1; | |
hash( CalculateHash ): split[ 6 ], apply[ 1 ]; | |
checkHashIdentity( CheckBuffersIdentity ): hash[ 0 ], split[ 7 ], 0x040302; | |
output: apply[ 1 ]; | |
def CreatePayload: | |
========================= | |
code( CopyInt ): input[ 0 ]; | |
targetCode( CopyInt ): input[ 1 ]; | |
flagsInt( CopyInt ): input[ 2 ]; | |
bitWriter( PassBitWriter ): input[ 3 ]; | |
source( PassBuffer ): input[ 4 ]; | |
target( PassBuffer ): input[ 5 ]; | |
sourceSize( BufferSize ): source[ 0 ]; | |
targetSize( BufferSize ): target[ 0 ]; | |
sourceIni( PassIniReader ): input[ 6 ]; | |
targetIni( PassIniReader ): input[ 7 ]; | |
patchIni( PassIniReader ): input[ 8 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
createPreProcessSourceName( Concat ): "CreatePreProcessSource_", codeMnemonic[ 0 ]; | |
createPreProcessSource( CreatePreProcessSource_RAW / createPreProcessSourceName[ 0 ] ): code[ 0 ], targetCode[ 0 ], flagsInt[ 0 ], source[ 0 ], target[ 0 ], sourceIni[ 0 ], targetIni[ 0 ], patchIni[ 0 ]; | |
debugWritePreProcessSource( DebugWriteFile ): "preProcessSource.create.image", createPreProcessSource[ 0 ]; | |
createPreProcessTarget( CreatePreProcessTarget ): flagsInt[ 0 ], target[ 0 ]; | |
debugWritePreProcessTarget( DebugWriteFile ): "preProcessTarget.create.image", createPreProcessTarget[ 0 ]; | |
applyPreProcessSourceName( Concat ): "ApplyPreProcessSource_", codeMnemonic[ 0 ]; | |
applyPreProcessSource( ApplyPreProcessSource_RAW / applyPreProcessSourceName[ 0 ] ): code[ 0 ], flagsInt[ 0 ], source[ 0 ], createPreProcessSource[ 1 ], targetSize[ 0 ]; | |
checkPreProcessSourceIdentity( CheckBuffersIdentity ): createPreProcessSource[ 0 ], applyPreProcessSource[ 0 ], 0x041F04; | |
checkCompressionRiftTableIdentity( CheckRiftTablesIdentity ): createPreProcessSource[ 2 ], applyPreProcessSource[ 1 ], 0x041F03; | |
applyPostProcessTarget( ApplyPostProcessTarget ): flagsInt[ 0 ], createPreProcessTarget[ 0 ]; | |
checkPostProcessTargetIdentity( CheckBuffersIdentity ): target[ 0 ], applyPostProcessTarget[ 0 ], 0x041F01; | |
writePreProcessBuffer( BitWriteBuffer ): bitWriter[ 0 ], createPreProcessSource[ 1 ]; | |
compressionRiftTable5( PassRiftTable ): createPreProcessSource[ 2 ]; | |
debugWriteCompression5( DebugWriteFileRiftTable ): "compression5.create.rift", compressionRiftTable5[ 0 ]; | |
compressionRiftTable6( CreateEmptyRiftTable ):; | |
compressionRiftTable7( AddRiftEntry ): compressionRiftTable6[ 0 ], sourceSize[ 0 ], 0; | |
debugWriteCompression7( DebugWriteFileRiftTable ): "compression7.create.rift", compressionRiftTable7[ 0 ]; | |
compressionRiftTable8( MultiplyRiftTables ): compressionRiftTable7[ 0 ], compressionRiftTable5[ 0 ]; | |
debugWriteCompression8( DebugWriteFileRiftTable ): "compression8.create.rift", compressionRiftTable8[ 0 ]; | |
compressionRiftTable9( ReduceRiftTable ): compressionRiftTable8[ 0 ]; | |
debugWriteCompression9( DebugWriteFileRiftTable ): "compression9.create.rift", compressionRiftTable9[ 0 ]; | |
create( CreatePseudoLzxPatch ): createPreProcessSource[ 0 ], createPreProcessTarget[ 0 ], flagsInt[ 0 ], sourceIni[ 0 ], targetIni[ 0 ], patchIni[ 0 ], compressionRiftTable9[ 0 ]; | |
writePatch( BitWriteBuffer ): writePreProcessBuffer[ 0 ], create[ 0 ]; | |
output: writePatch[ 0 ]; | |
def CreateCodeFlagsPatch: | |
========================= | |
version( CopyInt ): input[ 0 ]; | |
code( CopyInt ): input[ 1 ]; | |
targetCode( CopyInt ): input[ 2 ]; | |
flagsInt( CopyInt ): input[ 3 ]; | |
source( PassBuffer ): input[ 4 ]; | |
target( PassBuffer ): input[ 5 ]; | |
sourceIni( PassIniReader ): input[ 6 ]; | |
targetIni( PassIniReader ): input[ 7 ]; | |
patchIni( PassIniReader ): input[ 8 ]; | |
fileTime( CopyInt ): input[ 9 ]; | |
hashAlgId( CopyInt ): input[ 10 ]; | |
asciiPatchSignature( TToAscii ): "PA30"; | |
fileTimeBuffer( IntToFixedBuffer ): fileTime[ 0 ]; | |
hash( CalculateHash ): hashAlgId[ 0 ], target[ 0 ]; | |
header( Concat ): asciiPatchSignature[ 0 ], fileTimeBuffer[ 0 ]; | |
bitWriter( BitWriterOpen ):; | |
writeVersion( BitWriteInt ): bitWriter[ 0 ], version[ 0 ]; | |
writeCode( BitWriteInt ): writeVersion[ 0 ], code[ 0 ]; | |
targetSize( BufferSize ): target[ 0 ]; | |
writeFlagsInt( BitWriteInt ): writeCode[ 0 ], flagsInt[ 0 ]; | |
writeTargetSize( BitWriteInt ): writeFlagsInt[ 0 ], targetSize[ 0 ]; | |
writeHashAlgId( BitWriteInt ): writeTargetSize[ 0 ], hashAlgId[ 0 ]; | |
writeHash( BitWriteBuffer ): writeHashAlgId[ 0 ], hash[ 0 ]; | |
create( CreatePayload ): code[ 0 ], targetCode[ 0 ], flagsInt[ 0 ], writeHash[ 0 ], source[ 0 ], target[ 0 ], sourceIni[ 0 ], targetIni[ 0 ], patchIni[ 0 ]; | |
created( BitWriterClose ): create[ 0 ]; | |
patch( Concat ): header[ 0 ], created[ 0 ]; | |
apply( ApplyPatch ): source[ 0 ], patch[ 0 ]; | |
testApply( CheckBuffersIdentity ): target[ 0 ], apply[ 0 ], 0x041B01; | |
output: patch[ 0 ]; | |
def NormalizeCodeSource_RAW: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flags( GetBits ): input[ 1 ]; | |
options( InputSharedIniReader ): input[ 2 ]; | |
output( PassBuffer ): input[ 3 ]; | |
def NormalizeCodeSource_I386: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flags( GetBits ): input[ 1 ]; | |
options( InputSharedIniReader ): input[ 2 ]; | |
pe( PortableExecutableFromBuffer ): input[ 3 ], 1; | |
clearBinding( UnbindPortableExecutable ): pe[ 0 ]; | |
clearLocks( SmashLockPrefixesI386 ): clearBinding[ 0 ]; | |
clearRelocations( PassPe / flags[ 5 ] ? "PassPe" : "ClearRelocations" ): clearLocks[ 0 ]; | |
clearImageBase( SetImageBase ): clearRelocations[ 0 ], 0; | |
clearTimeStamp( SetTimeStamp ): clearImageBase[ 0 ], 0; | |
clearCheckSum( SetCheckSum ): clearTimeStamp[ 0 ], 0; | |
output( PortableExecutableToBuffer ): clearCheckSum[ 0 ]; | |
def NormalizeCodeSource_CLI4_I386: | |
========================= | |
wrap( NormalizeCodeSource_I386 ):; | |
def NormalizeCodeSource_AMD64: | |
========================= | |
code( InputSharedInt ): input[ 0 ]; | |
flags( GetBits ): input[ 1 ]; | |
options( InputSharedIniReader ): input[ 2 ]; | |
pe( PortableExecutableFromBuffer ): input[ 3 ], 1; | |
clearBinding( UnbindPortableExecutable ): pe[ 0 ]; | |
clearRelocations( PassPe / flags[ 5 ] ? "PassPe" : "ClearRelocations" ): clearBinding[ 0 ]; | |
clearImageBase( SetImageBase ): clearRelocations[ 0 ], 0; | |
clearTimeStamp( SetTimeStamp ): clearImageBase[ 0 ], 0; | |
clearCheckSum( SetCheckSum ): clearTimeStamp[ 0 ], 0; | |
output( PortableExecutableToBuffer ): clearCheckSum[ 0 ]; | |
def NormalizeCodeSource_CLI4_AMD64: | |
========================= | |
wrap( NormalizeCodeSource_AMD64 ):; | |
def NormalizeSource: | |
========================= | |
fileTypeSet( CopyInt ): input[ 0 ]; | |
flags( CopyInt ): input[ 1 ]; | |
options( IniReaderFromBuffer ): input[ 2 ]; | |
source( PassBuffer ): input[ 3 ]; | |
code( DetermineFileType ): fileTypeSet[ 0 ], source[ 0 ]; | |
codeMnemonic( GetFileTypeMnemonic ): code[ 0 ]; | |
normalizeCodeSourceName( Concat ): "NormalizeCodeSource_", codeMnemonic[ 0 ]; | |
normalizeCodeSource( NormalizeCodeSource_RAW / normalizeCodeSourceName[ 0 ] ): code[ 0 ], flags[ 0 ], options[ 0 ], source[ 0 ]; | |
output: normalizeCodeSource[ 0 ]; | |
def CalculateNormalizedSourceHash: | |
========================= | |
version( CopyInt ): input[ 0 ]; | |
hashAlgId( CopyInt ): input[ 1 ]; | |
source( PassBuffer ): input[ 2 ]; | |
flags( CopyInt ): 0; | |
options( PassBuffer ): ""; | |
normalized( NormalizeSource ): version[ 0 ], flags[ 0 ], options[ 0 ], source[ 0 ]; | |
hash( CalculateHash ): hashAlgId[ 0 ], normalized[ 0 ]; | |
output: hash[ 0 ]; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment