ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââŠâ¥tâ¡â t ââ¡ââ¥âtââŠâ¥ ââ¡â¥â¡rââ§â§â¡â± â ââ§ââââŠâs ââŠââ¡s trâ¡ t⊠â⊠sâ¡ââ¡rââ§ tâ€ââ¥â£sâ¿ stââ¡ ââ¥ââ¡tâ¡âtâ¡â ââ¡ ââ¥tââârâsâ¡s â£râŠâ£ââ£âtâ¡ t⊠âŠtâ€â¡r â€âŠsts âŠr â¡â â¡ââtâââ§â¡s â¡â â¡ââtâ¡ tâ€â¡âr â ââ§ââââŠâs ââtââŠâ¥s ââ¡â³â£â³ âââ£târâ¡ sâŠâ â¡ â£râââtâ¡ âsâ¡r ââtââ± âŠâ£â¡â¥ â ââââŠââŠâŠr âŠâ¥ tâ€â¡ sâ¡stâ¡â â³ â³ â³ â® â¯sâ¡ sâ£â¡ââââ§ tâ¡ââ€â¥âqââ¡sâ± â¥âŠt ââ§âââ¡s â¡âsâ¡ t⊠ââ â£â§â¡â â¡â¥t â²â¡t âs ââ§â§âstrâtâ¡ tâ€âs âât†â â¢â¡â sâ£â¡ââââ tâ¡ââ€â¥âqââ¡s ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r ⡠✠⎠â¶âŒâ·
âââ¥â¡âtâââ¡ PrâŠtâ¡ât â ââ§ââââŠâs â£ââ¡â§âŠââ ââ£âââ¥st â⥠ââ¥ââ§â¡sâs ââŠââ§â ââ¡ â⥠ââtâŠâ âtââ ââ¥ââ§â¡sâs âââ¥tââârâsâ® âŠr â â ââ¥âââ§ ââ¥ââ§â¡sâs âââsâssâ¡â ââ§ââ¥â£ ââŠââ¡â® ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ âs â âââ¡ â⣠âŠâ¢ tâ⊠â£ârtsâ¿ tâ€â¡ râ¡ââ§ â ââ§ââââŠâs â£ââ¡â§âŠââ ââ€ââ†âs â¡â¥ârâ¡â£tâ¡â â ââ¡ârâ¡â£tââŠâ¥ â£ârt ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r ⡠⟠⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ âs â âââ¡ â⣠âŠâ¢ tâ⊠â£ârtsâ¿ tâ€â¡ râ¡ââ§ â ââ§ââââŠâs â£ââ¡â§âŠââ ââ€ââ†âs â¡â¥ârâ¡â£tâ¡â â ââ¡ârâ¡â£tââŠâ¥ â£ârt âââ¥â¡âtâââ¡ PrâŠtâ¡ât â ââ§ââââŠâs â£ââ¡â§âŠââ ââ£âââ¥st â⥠ââ¥ââ§â¡sâs ââŠââ§â ââ¡ â⥠ââtâŠâ âtââ ââ¥ââ§â¡sâs âââ¥tââârâsâ® âŠr â â ââ¥âââ§ ââ¥ââ§â¡sâs âââsâssâ¡â ââ§ââ¥â£ ââŠââ¡â® ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r ⡠⟠⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ â² â£râŠtâ¡âtââŠâ¥ ââ£âââ¥st ââtâŠâ âtââ ââ¥ââ§â¡sâs âŒââ§ââââŠâs ââŠââ¡ âs sâââ¥â¥â¡â ââ¡ â tâŠâŠâ§ tâ€ât ââŠrâŠs âât†sââ£â¥âtârâ¡ âââ¡â¥tââââtââŠâ¥ âââ†ââŠâ£â¡ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ â âst ââ¡ ââââ¡râ¡â¥tâ¿ ââ¡ârâ¡â£tââŠâ¥ â£ârt âs trââ¥sâ¢âŠrâ â¡â tâ€râŠââ£â€ â â¡tââ âŠrâ£â€âsâ â¡â¥ârâ¡â£tââŠâ¥ âŠâ¡â¡ âs ââ€ââ¥â£â¡â â⥠â¡ââ†ââŠâ£â¡ ââ£âŠâ§â¡â âŠrâ£â€âsâ â® Decryption part Decryption part Decryption key 1 Decryption key 2 Encrypted Encrypted malicious malicious payload payload âââ£ârâ¡â¿ ââ⊠ââŠâ£ââ¡s âŠâ¢ tâ€â¡ sââ â¡ âârâs tâ€ât ââ â£â§â¡â â¡â¥ts â£âŠâ§â¡â âŠrâ£â€âsâ ââŠtâ¡sâ¿ ââ¡ârâ¡â£tââŠâ¥ âŠâ¡â¡ â ââ¡ ââ¡ stâŠrâ¡â â⥠ââ¡ârâ¡â£tââŠâ¥ â£ârt âââ â£â§â¡ â¡â¥ârâ¡â£tââŠâ¥ ââ§â£âŠrâtâ€â â§ââŠâ¡ â â³ââ âât†âžâ·â²ââts âŠâ¡â¡ â ââ¡ ââ¡ âsâ¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ â² â£râŠtâ¡âtââŠâ¥ ââ£âââ¥st â ââ¥âââ§ ââ¥ââ§â¡sâs âââ â¿ â⢠â ââ§ââââŠâs â£ââ¡â§âŠââ âs ââ¥tâ¡rââ¡â£tâ¡â âârââ¥â£ ââ¥trâŠâââtââŠâ¥ âŠâ¥ târâ£â¡tâ¡â sâ¡stâ¡â â± ât âââ¥â¥âŠt ââ¡ ââsâssâ¡â ââ§â¡â ââ¥â ââ¥ââ§â¡sâ¡â â ââ¥âââ§â§â¡ â²âttâ§â¡ ââââ¡râ¡â¥ââ¡s âât†â£râ¡âââŠâs â¡â¥ârâ¡â£tââŠâ¥â¿ strâŠâ¥â£ â¡â¥ârâ¡â£tââŠâ¥ ââ§â£âŠrâtâ€â â§ââŠâ¡ âââ â âst ââ¡ âsâ¡â ââ¡ârâ¡â£tââŠâ¥ âŠâ¡â¡ â âst â¥âŠt ââ¡ stâŠrâ¡â â⥠â¡â¥ârâ¡â£tâ¡â â ââ§ââââŠâs ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶â¶ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ Memory Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶â· ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ Memory 1 "Decoder" is introduced on targeted system Decoder Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âž ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ Memory 2 Encrypted malicious code is introduced on targeted system Encrypted Decoder malicious code Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶â¹ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ Decoder 3 Memory "Decoder" is executed Encrypted Decoder malicious code Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âº ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ Encrypted malicious code Decoder 4 "Decoder" loads encrypted Memory malicious code in memory Encrypted Decoder malicious code Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶â» ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ 5 "Decoder" decrypts malicious code in memory and executes it Encrypted Malicious code malicious code Decoder Memory Encrypted Decoder malicious code Hard drive âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â⥠â¡â¥ârâ¡â£tâ¡â â ââ§âârâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âŒ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ â² â£râŠtâ¡âtââŠâ¥ ââ£âââ¥st â ââ¥âââ§ ââ¥ââ§â¡sâs â⢠ââŠârsâ¡â± sâ¡ââ¡rââ§ âââ¡s t⊠â£â¡t â ââ§ââââŠâs â£ââ¡â§âŠââ âŠâ¥ ââ¥â¢â¡âtâ¡â ââŠâ â£âtâ¡r ââââ ⣠tâ€â¡ â â¡â âŠrâ¡â± â¡â trâât â¡â¥ârâ¡â£tââŠâ¥ âŠâ¡â¡ ââ¥â ââ¡ârâ¡â£t â ââ§ââââŠâs â£ââ¡â§âŠâââ® âât â ââ§ââââŠâs â£ââ¡â§âŠââ âs â£râŠtâ¡âtâ¡â âârââ¥â£ ââ¥trâŠâââtââŠâ¥ âŠâ¥t⊠târâ£â¡tâ¡â ââŠâ â£âtâ¡râ¿ tâ⊠â£ârts ârâ¡ ââ¥trâŠââââ¡â â⥠ââââ¡râ¡â¥t âââ¡s ât ââââ¡râ¡â¥t tââ â¡s â⢠âŠâ¥â¡ ââ¥trâŠâââtââŠâ¥ â¢âââ§sâ± ââ¡ âââ§â§ ââ¥tâ¡rââ¡â£tâ¿ ââ¡ârâ¡â£tââŠâ¥ â£ârtâ¿ tâŠtââ§â§â¡ â£â¡â¥â¡rââ â ââ§ââââŠâs â£ââ¡â§âŠâââ¿ â¡â¥ârâ¡â£tâ¡â â âââ¥â¥âŠt â£â¡t ââ¥â¡ ââ¥â¢âŠrâ âtââŠâ¥ âŠâ¥ tâ€â¡ âttââ⊠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âœ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ¥ârâ¡â£tââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ ââ¥ârâ¡â£tââŠâ¥ âŠâ¢ â¡ââ†â£ârt âŠâ¢ â ââ§ââââŠâs â£ââ¡â§âŠââ â⥠â¡â â¡ââtâââ§â¡ â¥âŠt â â£âŠâŠâ sâŠâ§âtââŠâ¥â¿ ââŠâ â£â§âââtâ¡ââ¿ ââ§â§ âââ¥ârâ¡ ââtâ ââ€ârââtâ¡râstââs âŠâ¢ tâ€â¡ â ââ§ââââŠâs â£ââ¡â§âŠââ â âst ââ¡ â¡â¥ârâ¡â£tâ¡â ââ¢ââ¥âtââŠâ¥sâ± ââ¥âtâââ§âsâ¡â ââtâ ââ¥â strââ¥â£sâ® â¥âŠt â¡â£âââ¡â¥tâ¿ Pâ â â¡tâââtâs âââ¥â¥âŠt ââ¡ â¡â¥ârâ¡â£tâ¡â ââ¡ttâ¡r sâŠâ§âtââŠâ¥â¿ â¡â¥ârâ¡â£t tâ€â¡ ââ€âŠâ§â¡ â¡â â¡ââtâââ§â¡ ⌠â â£âââŠâ¡r âât ââ¡ââ¡â§âŠâ£ââ¥â£ sââ†â tâŠâŠâ§ râ¡qâârâ¡â sâŠâ â¡ ââŠr⊠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¶âŸ ⎠â¶âŒâ·
âââ¥â¡âtâââ¡ âââ¥â¥âŠt ââ¡ ââ¡tâ¡âtâ¡â ââ¡ â§âŠâââ§ ââ¥tââârâs â²â¡âââ¡s â¢â¡â trâââ¡s âŠâ¥ târâ£â¡tâ¡â sâ¡stâ¡â ââŠâ â£â§âââtâ¡s â⥠â¡ââ¡â¥tâââ§ â¢âŠrâ¡â¥sââ ââ¥ââ§â¡sâs ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ â¡ââtâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ âs âââ§â¡ t⊠â¡â â¡ââtâ¡ ââtâ€âŠât ââ¡ââ¥â£ ââŠâ£ââ¡â âŠâ¥ â€ârâ ârâââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ â¡ââtâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ âs âââ§â¡ t⊠â¡â â¡ââtâ¡ ââtâ€âŠât ââ¡ââ¥â£ ââŠâ£ââ¡â âŠâ¥ â€ârâ ârâââ¡ âââ¥â¡âtâââ¡ âââ¥â¥âŠt ââ¡ ââ¡tâ¡âtâ¡â ââ¡ â§âŠâââ§ ââ¥tââârâs â²â¡âââ¡s â¢â¡â trâââ¡s âŠâ¥ târâ£â¡tâ¡â sâ¡stâ¡â â ââŠâ â£â§âââtâ¡s â⥠â¡ââ¡â¥tâââ§ â¢âŠrâ¡â¥sââ ââ¥ââ§â¡sâs ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ Memory Primergy Hard drive Attacker Server Firewall âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·â¶ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ 1 "Loader" is running Loader on targeted server Memory Primergy Hard drive Attacker Server Firewall âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·â· ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ Loader Malicious code Memory Primergy Hard drive Attacker Server 2 "Loader" gets malicious payload from server Firewall âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âž ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ 3 Loader "Loader" transfers execution on malicious payload Malicious code Memory Primergy Hard drive Attacker Server Firewall âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§âârâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·â¹ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ ââ â¡ââtâ¡ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ ââŠâ£â¡ââ¥â£ â¡â â¡ââtâââ§â¡ â⥠â â¡â âŠrâ¡ ââ¥â â¥ââ â£ââ¥â£ âŠâ¥ â¡â¥trâ¡ â£âŠââ¥t ââŠâ¡s â¥âŠt ââŠrâŠâ¿ sâ¡âtââŠâ¥s â âst ââ¡ â ââ£â£â¡â ât tâ€â¡ rââ£â€t ââârâ¡ss ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥s â âst ââ¡ râ¡sâŠâ§ââ¡â â â¢â¡â trâââŠs ââ⥠ââ¡ âsâ¡ââ¿ âsâ¡ ââ£rââ£â ââ âârâ¡âtâââ¡s t⊠â£râŠâ⣠ââ§â§ â¢ââ¥âtââŠâ¥sâŽââtâ â⥠âŠâ¥â¡ sâ¡âtââŠâ¥ â£â§ââ¡ âât†ââ£râ¡â¢â¡rrâ¡â â§âŠââ ââârâ¡ssâ s⊠tâ€ât sâ¡âtââŠâ¥ âs â ââ£â£â¡â â⥠â â â¡â âŠrâ¡ sâ£âââ¡ ââ¥âŠrâ ââ§â§â¡â â¢râ¡â¡ â⥠â£râŠââ¡ss âsâ¡ ââ¡â¥ââ ââ ââârâ¡ss râ¡sâŠâ§âtââŠâ¥ â PâŠssâââ§â¡â³ â³ â³ âât râtâ€â¡r tâ¡âââŠâs ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âº ⎠â¶âŒâ·
âââ¥â¡âtâââ¡ ârâ¡âtâ¡ â ârâŠâ¥â⥠â€âŠrsâ¡â ââ¡â€ââââŠâr âŠâ¢ tâ€â¡ â£râŠâ£rââ â âst â¥âŠt ââ¡ ââsrââ£tâ¡â ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs â£ââ¡â§âŠââ âs ââââ¡â ââ¥t⊠ââ¥âŠtâ€â¡r â¡â â¡ââtâââ§â¡ ââ â¡ââtââŠâ¥ â¢âŠâ âŠâ¢ ââ¥â¢â¡âtâ¡â â¡â â¡ââtâââ§â¡ âs â âŠââââ¡â t⊠â¡â â¡ââtâ¡ â ââ§ââââŠâs â£ââ¡â§âŠââ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·â» ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs â£ââ¡â§âŠââ âs ââââ¡â ââ¥t⊠ââ¥âŠtâ€â¡r â¡â â¡ââtâââ§â¡ ââ â¡ââtââŠâ¥ â¢âŠâ âŠâ¢ ââ¥â¢â¡âtâ¡â â¡â â¡ââtâââ§â¡ âs â âŠââââ¡â t⊠â¡â â¡ââtâ¡ â ââ§ââââŠâs â£ââ¡â§âŠââ âââ¥â¡âtâââ¡ ârâ¡âtâ¡ â ârâŠâ¥â⥠â€âŠrsâ¡â ââ¡â€ââââŠâr âŠâ¢ tâ€â¡ â£râŠâ£rââ â âst â¥âŠt ââ¡ ââsrââ£tâ¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·â» ⎠â¶âŒâ·
âââ†sâŠâ§âtââŠâ¥ â€âs â£râŠs ââ¥â ââŠâ¥sâ¿ Pâtââ€ââ¥â£ ââ¥strââtââŠâ¥ râ¡qâârâ¡s â ââ¥âââ§ ââ¥ââ§â¡sâs t⊠ââ¥â â sââtâââ§â¡ ââ¥strââtââŠâ¥ t⊠â£âtâ†âât â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ râ¡qâârâ¡s ââtââŠâ¥ âŠâ¢ tâ€â¡ âsâ¡r â¥â¡âtâ€â¡r â¡â â¡ââtâ¡ââ± â¥âŠr ââ¥ââ§â¡sâ¡â ââ¡ â⥠ââ¥tââârâsâ± â¡ââ¡â¥ âât†ââŠââ¡ â¡â ââ§âtââŠâ¥ ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ âŒââ§ââââŠâs â£ââ¡â§âŠââ ââââ¡â ât tâ€â¡ â¡â¥â âŠâ¢ tâ€â¡ â¡â â¡ââtâââ§â¡â± ââ¢tâ¡r â§âst sâ¡âtââŠâ¥ ââ¡ââ¡rââ§ âââ¡s t⊠râ¡âârâ¡ât â¡â â¡ââtââŠâ¥ â¢âŠââ¿ â£âtâ†tâ€â¡ â¡â â¡ââtâââ§â¡ â¡â¥trâ¡ â£âŠââ¥t â£âtâ†sâŠâ â¡ ââ¥strââtââŠâ¥s tâ€ât âââ§â§ â£râŠââââ§â¡ ââ¡ â¡â â¡ââtâ¡â ââ ââ â£â§â¡â¿ âââ§â§ t⊠tâ€â¡ â¢ââ¥âtââŠâ¥ âsâââ¡â â⥠â tâ¡â t â¡ââtâŠr ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âŒ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ âŒââ§ââââŠâs â£ââ¡â§âŠââ ââââ¡â ât tâ€â¡ â¡â¥â âŠâ¢ tâ€â¡ â¡â â¡ââtâââ§â¡â± ââ¢tâ¡r â§âst sâ¡âtââŠâ¥ ââ¡ââ¡rââ§ âââ¡s t⊠râ¡âârâ¡ât â¡â â¡ââtââŠâ¥ â¢âŠââ¿ â£âtâ†tâ€â¡ â¡â â¡ââtâââ§â¡ â¡â¥trâ¡ â£âŠââ¥t â£âtâ†sâŠâ â¡ ââ¥strââtââŠâ¥s tâ€ât âââ§â§ â£râŠââââ§â¡ ââ¡ â¡â â¡ââtâ¡â ââ ââ â£â§â¡â¿ âââ§â§ t⊠tâ€â¡ â¢ââ¥âtââŠâ¥ âsâââ¡â â⥠â tâ¡â t â¡ââtâŠr âââ†sâŠâ§âtââŠâ¥ â€âs â£râŠs ââ¥â ââŠâ¥sâ¿ Pâtââ€ââ¥â£ ââ¥strââtââŠâ¥ râ¡qâârâ¡s â ââ¥âââ§ ââ¥ââ§â¡sâs t⊠ââ¥â â sââtâââ§â¡ ââ¥strââtââŠâ¥ t⊠â£âtâ†âât â¡â â¡ââtââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ râ¡qâârâ¡s ââtââŠâ¥ âŠâ¢ tâ€â¡ âsâ¡r â â¥â¡âtâ€â¡r â¡â â¡ââtâ¡ââ± â¥âŠr ââ¥ââ§â¡sâ¡â ââ¡ â⥠ââ¥tââârâsâ± â¡ââ¡â¥ âât†ââŠââ¡ â¡â ââ§âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âŒ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ MyEditor.exe MyEditor.exe MyEditor.exe Header Header Header Section 1 Section 1 Section 1 Section 2 Section 2 Section 2 ... ... ... Section n Section n Section n Malicious code Malicious code Original executable Infected executable Infected executable entry point patched instruction patched âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ ââ¥â¢â¡âtââŠâ¥ âŠâ¢ â⥠â¡â â¡ââtâââ§â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âœ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¢â¡ât â⥠â¡â â¡ââtâââ§â¡ â² â â â£â§â¡â â¡â¥tâtââŠâ¥ ââŠt s⊠â¡âsâ¡ t⊠ââ â£â§â¡â â¡â¥tâ¿ ââ¡ââ¡rââ§ sâ¡âtââŠâ¥s â ââ£â€t â€âââ¡ t⊠ââ¡ ââââ¡â ât tâ€â¡ â¡â¥â âŠâ¢ tâ€â¡ â¡â â¡ââtâââ§â¡ ââ¡âtââŠâ¥s â âst ââ¡ â ââ£â£â¡â ât tâ€â¡ rââ£â€t ââârâ¡ss ââŠââ¡ â âst âsâ¡ ââ¡â¥ââ ââ ââârâ¡ss râ¡sâŠâ§âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â·âŸ ⎠â¶âŒâ·
âââ¥â¡âtâââ¡s âârââââ¡ t⊠tâ¡râ ââ¥âtââŠâ¥ âŠâ¢ âŠrââ£ââ¥ââ§ â£râŠââ¡ss â â¥tâ¡rââ¡â£t â£râââtâ¡ ââtâ âŠâ¢ âsâ¡r âsââ¥â£ ââ¥â¢â¡âtâ¡â ââŠâ â£âtâ¡râ¿ ââ¥â¥â¡âtââŠâ¥âŽâPâ â€âŠâŠâŠââ¥â£âŽââ¥ââ§â¡sâs âŠâ¢ â£ârââ â¡tâ¡rs ââ¡â£âss âââ ââ â£â§â¡â â¡â¥tâ¡â â£â¡rsâŠâ¥ââ§ ârâ¡âââ§â§s ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ ââ¥â¥â¡âts sâŠâ â¡ ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss âŒââ§ââââŠâs ââŠââ¡ â¢âŠrââ¡s tâ€â¡ â¡â â¡ââtââŠâ¥ âŠâ¢ tâ€âs ââ¥â¥â¡âtâ¡â ââŠââ¡ â⥠tâ€â¡ ââŠâ¥tâ¡â t âŠâ¢ tâ€â¡ âŠtâ€â¡r â£râŠââ¡ss ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² Prââ¥âââ£â§â¡ ââ¡sârââ£tââŠâ¥ âŒââ§ââââŠâs ââŠââ¡ ââ¥â¥â¡âts sâŠâ â¡ ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss âŒââ§ââââŠâs ââŠââ¡ â¢âŠrââ¡s tâ€â¡ â¡â â¡ââtââŠâ¥ âŠâ¢ tâ€âs ââ¥â¥â¡âtâ¡â ââŠââ¡ â⥠tâ€â¡ ââŠâ¥tâ¡â t âŠâ¢ tâ€â¡ âŠtâ€â¡r â£râŠââ¡ss âââ¥â¡âtâââ¡s âârââââ¡ t⊠tâ¡râ ââ¥âtââŠâ¥ âŠâ¢ âŠrââ£ââ¥ââ§ â£râŠââ¡ss â â¥tâ¡rââ¡â£t â£râââtâ¡ ââtâ âŠâ¢ âsâ¡r âsââ¥â£ ââ¥â¢â¡âtâ¡â ââŠâ â£âtâ¡râ¿ ââ¥â¥â¡âtââŠâ¥âŽâPâ â€âŠâŠâŠââ¥â£âŽââ¥ââ§â¡sâs âŠâ¢ â£ârââ â¡tâ¡rs ââ¡â£âss âââ ââ â£â§â¡â â¡â¥tâ¡â â£â¡rsâŠâ¥ââ§ ârâ¡âââ§â§s ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ â ââ¡ ââ¡ ââŠâ¥â¡ â⥠sâ¡ââ¡rââ§ âââ¡sâ¿ ââ§â§ ââ¥â¥â¡âtââŠâ¥ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ âââ†tâ¡ââ€â¥âqââ¡ â€âs â£r⊠ââ¥â ââŠâ¥sâ ââ¡ ââ€âŠâŠsâ¡ t⊠âsâ¡ tâ€â¡ sâ¡ââŠâ¥â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâ¶ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ Injecter Target Injection code âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâ· ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ Injecter Target Injection code Malicious code âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâž ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ 1 "Injecter" gets a handle on targeted process Injecter Target Injection code Malicious code âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâ¹ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ Injecter Target Injection code 2 Free memory "Injecter" allocates memory in other process Malicious code âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâº ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ Injecter Target Injection code Malicious code Malicious 3 "Injecter" copies malicious code code in allocated memory âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâ» ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ Injecter Target Injection code Malicious code Malicious code Thread 4 "Injecter" creates a new thread in other process that executes malicious code âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ âârâ¡ât ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâŒ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ â â¥â¥â¡ât ââŠââ¡ ââ¥t⊠ââ¥âŠtâ€â¡r â£râŠââ¡ss â² â â â£â§â¡â â¡â¥tâtââŠâ¥ ââ¥ââŠââ¥tâ¡r sââ â¡ â£râŠââ§â¡â s âs â¡â â¡ââtââŠâ¥ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡â¿ sâ¡âtââŠâ¥s â âst ââ¡ â ââ£â£â¡â ât tâ€â¡ rââ£â€t ââârâ¡ss ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥s â âst ââ¡ râ¡sâŠâ§ââ¡â â ââ⥠âsâ¡ tâ€â¡ sââ â¡ trâââŠs ââŠtâ¡ tâ€ât â⢠â â¡â âŠrâ¡ ââ€â¡râ¡ ââŠââ¡ â âst ââ¡ â ââ£â£â¡â âs ââ§râ¡âââ¡ ââ§â§âŠââtâ¡ââ± ââ¥â¥â¡âtââŠâ¥ âââ§â§ â¢âââ§âŠ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâœ ⎠â¶âŒâ·
ââ€âŠsâ¡ tâ¡ââ€â¥âqââ¡s ââŠââ§â ââ¡ ââ â£â§â¡â â¡â¥tâ¡â â âŠrâ¡ â¡âsââ§â¡ â⢠tâ€â¡ ââŠââ¡ ââs ââŠâ¥stâtâtâ¡â âŠâ¢ âŠâ¥â§â¡ âŠâ¥â¡ ââ§âŠâ⊠ââs âââ§â¡ t⊠ââ¥âtâââ§âsâ¡ tâ€â¡ ââârâ¡ss sâ£âââ¡ ââŠâ¥tâââ¥â¡â â¥âŠ â€ârâââŠââ¡â ââârâ¡ss â⢠tâ€â¡ â ââ§ââââŠâs ââŠââ¡ ââs â sâ€â¡â§â§ââŠââ¡ ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ âââ â ârâ¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€âŠsâ¡ tâ¡ââ€â¥âqââ¡s â⥠â⥠â¡â â¡ââtâââ§â¡ âs ââ§âââ¡s â£âŠssâââ§â¡â± âât râ¡qâârâ¡s â§âŠts âŠâ¢ ââŠr⊠âââ£âââ§tââ¡s ââŠâ â¡ â¢râŠâ sâ¡ââ¡rââ§ â£râŠâ£â¡rtââ¡s âŠâ¢ tâ€â¡ â¡â â¡ââtâââ§â¡â¿ ââŠââ¡ ââ¥â ââtâ ârâ¡ sâ£râ¡ââ â⥠tâ€â¡ â¡â â¡ââtâââ§â¡ â£râŠââ¡ss râ¡qâârâ¡s sâŠâ â¡ âŠâ¢ ââ¥âtâââ§âsâtââŠâ¥ â¥âŠrâ ââ§â§â¡ ââŠâ¥â¡ ââ¡ â²ââ¥ââŠâs â§âŠâââ¡r ââŠââ¡ ââŠâ¥tâââ¥s â€ârâââŠââ¡â ââârâ¡ssâ¡s â sâ¡âtââŠâ¥s â âst ââ¡ â ââ£â£â¡â ât tâ€â¡ rââ£â€t ââârâ¡ssâ¡s ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâŸ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â¢â¡â tâ¡ââ€â¥âqââ¡s âsâ¡â ââ¡ â ââ§ââââŠâs ââŠââ¡ â³ â³ â³ âââ â ârâ¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€âŠsâ¡ tâ¡ââ€â¥âqââ¡s â⥠â⥠â¡â â¡ââtâââ§â¡ âs ââ§âââ¡s â£âŠssâââ§â¡â± âât râ¡qâârâ¡s â§âŠts âŠâ¢ ââŠr⊠âââ£âââ§tââ¡s ââŠâ â¡ â¢râŠâ sâ¡ââ¡rââ§ â£râŠâ£â¡rtââ¡s âŠâ¢ tâ€â¡ â¡â â¡ââtâââ§â¡â¿ ââŠââ¡ ââ¥â ââtâ ârâ¡ sâ£râ¡ââ â⥠tâ€â¡ â¡â â¡ââtâââ§â¡ â£râŠââ¡ss râ¡qâârâ¡s sâŠâ â¡ âŠâ¢ ââ¥âtâââ§âsâtââŠâ¥ â¥âŠrâ ââ§â§â¡ ââŠâ¥â¡ ââ¡ â²ââ¥ââŠâs â§âŠâââ¡r ââŠââ¡ ââŠâ¥tâââ¥s â€ârâââŠââ¡â ââârâ¡ssâ¡s â sâ¡âtââŠâ¥s â âst ââ¡ â ââ£â£â¡â ât tâ€â¡ rââ£â€t ââârâ¡ssâ¡s ââ€âŠsâ¡ tâ¡ââ€â¥âqââ¡s ââŠââ§â ââ¡ ââ â£â§â¡â â¡â¥tâ¡â â âŠrâ¡ â¡âsââ§â¡ â⢠tâ€â¡ ââŠââ¡ ââs ââŠâ¥stâtâtâ¡â âŠâ¢ âŠâ¥â§â¡ âŠâ¥â¡ ââ§âŠâ⊠ââs âââ§â¡ t⊠ââ¥âtâââ§âsâ¡ tâ€â¡ ââârâ¡ss sâ£âââ¡ ââŠâ¥tâââ¥â¡â â¥âŠ â€ârâââŠââ¡â ââârâ¡ss â â⢠tâ€â¡ â ââ§ââââŠâs ââŠââ¡ ââs â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âžâŸ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s â¢râŠâ â sâ€â¡â§â§ââŠââ¡ Pâ§â⥠ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s â¢râŠâ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âµ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s â¢râŠâ â sâ€â¡â§â§ââŠââ¡ Prââ¥âââ£â§â¡ ââŠâ¥sâââ¡r â¥âŠâ tâ€ât âŠâr â ââ§ââââŠâs ââŠââ¡ âs â sâ€â¡â§â§ââŠââ¡â¿ ââŠâ¥stâtâtâ¡â âŠâ¢ âŠâ¥â§â¡ âŠâ¥â¡ ââ§âŠâ⊠ââ⥠râ⥠ât ââ¥â¡ ââârâ¡ss â⥠ââ¥â¡ â£râŠââ¡ss â¡â â¡ââtâ¡s â¡â ââtâ§â¡ tâ€â¡ sââ â¡ âŠâ£â¡râtââŠâ¥s âs tâ€â¡ â¥âŠrâ ââ§ â¡â â¡ââtâââ§â¡ â⢠â¡â â¡ââtââŠâ¥ trââ¥sâ¢â¡rrâ¡â t⊠âts ârst ââ¡tâ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹â¶ ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s â¢râŠâ â sâ€â¡â§â§ââŠââ¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s ââ¥ârâ¡â£tââŠâ¥ âŠâ¢ â ââ§ââââŠâs ââŠââ¡ ââ¡ârâ¡â£tââŠâ¥ â£ârt ââ¡ââŠâ â¡s â sââ â£â§â¡ â§âŠâŠâ£ tâ€ât â¡â â¡ââtâ¡s ââ¡ârâ¡â£tââŠâ¥ âŠâ¥ sâ€â¡â§â§ââŠâ⡠⌠ârrââ¡ âŠâ¢ ââ¡tâ¡s ââ â¡ââtââŠâ¥ âŠâ¥â§â¡ â⥠â â¡â âŠrâ¡ ââ¥â ââŠââ¡ ââ¥â¥â¡âtââŠâ¥ ââsâ¡ t⊠ââ â£â§â¡â â¡â¥t sââ¥ââ¡ ââ¡ ââ¡ââ¥âtââŠâ¥ sâ€â¡â§â§ââŠââ¡ âs âââ§â¡ t⊠â¡â â¡ââtâ¡ â⥠ââ¥â¡ â£râŠââ¡ss ât ââ¥â¡ ââârâ¡ss ââ â¡ââtâââ§â¡ ââ¥â¢â¡âtââŠâ¥ ââ€â¡â§â§ââŠââ¡ ââââ¡â â⥠â§âst sâ¡âtââŠâ¥ ââ¡â â âŠâââââtââŠâ¥s ââŠâ¥â¡ âŠâ¥ Pâ â€â¡âââ¡r ââ¥trâ¡ â£âŠââ¥t âŠr ââ¥strââtââŠâ¥ â£âtââ€â¡â t⊠â¥ââ ⣠âŠâ¥ sâ€â¡â§â§ââŠââ¡ âââ ⣠t⊠âŠrââ£ââ¥ââ§ ââ¥strââtââŠâ¥ ââââ¡â ât â¡â¥â âŠâ¢ sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹â· ⎠â¶âŒâ·
ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ tâ¡ââ€â¥âqââ¡s â¢râŠâ â sâ€â¡â§â§ââŠââ¡ âââ â ârâ¡ â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ â£râ¡sâ¡â¥tâ¡â tâ¡ââ€â¥âqââ¡s âs â£râ¡âtâ§â¡ sââ â£â§âââ¡â â⢠tâ€â¡ â ââ§ââââŠâs ââŠââ¡ âs â sâ€â¡â§â§ââŠââ¡ râtâ€â¡r tâ€â⥠â⥠â¡â â¡ââtâââ§â¡ ââ¡â t â£râŠââ§â¡â âs â€âŠâ t⊠â£â¡t â sâ€â¡â§â§ââŠââ¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âž ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ Pâ§â⥠ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â¶ â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â· â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ âž ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â¹ ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r ⺠ââ¡â âŠâ¥strâtââŠâ¥â¿ ââââ€â¡â§â§ â» ââ¡â âŠâ¥strâtââŠâ¥â¿ â²â¡âââŠâŠr ⌠ââŠâ¥ââ§âsââŠâ¥ ✠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹â¹ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ âââ¥â¡âtâââ¡ âŠâ¢ tâ€âs â£ârt â² â¶ Prâ¡sâ¡â¥t â⥠â¡âsâ¡ âââ¡ t⊠ârâtâ¡ tâ€â¡ â ââ§ââââŠâs ââŠââ¡ âs â sâ€â¡â§â§ââŠââ¡ â²râtââ¥â£ sâ€â¡â§â§ââŠââ¡ âârâ¡âtâ§â¡ â⥠âssâ¡â ââ§â¡ qââââŠâ§â¡ ââ¡ââŠâ â¡s tâ¡âââŠâs â sâŠâ§âtââŠâ¥ ââsâ âssâ¡â ââ¡ttâ¡r sâŠâ§âtââŠâ¥ ââŠââ§â ââ¡â¿ ârâtâ¡ ââŠââ¡ â⥠â â§ââ¥â£âââ£â¡ âsâ¡ ââŠâ â£ââ§â¡r t⊠â£â¡â¥â¡râtâ¡ â¡â â¡ââtâââ§â¡ â¡â trâât sâŠâ â¡ â£ârt â¢râŠâ tâ€âs â¡â â¡ââtâââ§â¡ â¢âŠrâ sâ€â¡â§â§ââŠââ¡ ââ¡ âssâ¡â ââ§ââ¥â£ tâ€â¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âº ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ âââ¥â¡âtâââ¡ âŠâ¢ tâ€âs â£ârt â² â· âââ¥ârâ¡ ââŠââ¡ â£râŠââââ¡â ââ¡ â¥âŠrâ ââ§ ââŠâ â£ââ§âtââŠâ¥ âââ¥â¥âŠt ââ¡ âârâ¡âtâ§â¡ âsâ¡â t⊠ârâ¡âtâ¡ â sâ€â¡â§â§ââŠââ¡â¿ ââŠâ¥tâââ¥s â§âŠts âŠâ¢ â€ârâââŠââ¡â ââârâ¡ssâ¡s ârâ¡â¢â¡râ¡â¥ââ¡ t⊠â strââ¥â£ âŠr â â£â§âŠâââ§ âârââââ§â¡â® ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥s âââ§â§s ârâ¡ râ¡â§âtâââ¡ âât ââstââ¥ââ¡s ârâ¡ â€ârâââŠââ¡â ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥ âââ§â§s râ¡â§â¡ âŠâ¥ â ââ âŒââ¥â¡ âââ¡s t⊠sâŠâ§ââ¡ tâ€âŠsâ¡ â£râŠââ§â¡â s ââ£âtâ†âssâ¡â ââ§â¡â± ââŠr⊠â⥠tâ€â¡ stâââŠâ³ â³ â³ â® ââ€âŠâŠsâ¡ âŠâ¥â¡ tâ¡ââ€â¥âqââ¡â¿ âsâ¡ â â£â§âŠâââ§ ââtâ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹â» ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ â² â¶ â¯sâ¡ âŠâ¥â¡ strââtârâ¡ tâ€ât stâŠrâ¡s ââ§â§ â£â§âŠâââ§ ââtâ ââ¥â tâ€ât âs trââ¥sâ âttâ¡â â⥠â¡ââ¡râ¡ ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥ âââ§â§ âtrââtârâ¡â± âââ§â§â¡â â§âtâ¡r âââ²ââââ²âŽââââââ± âââ§â§ ââŠâ¥tâââ¥â¿ â£âŠââ¥tâ¡rs âŠâ¥ ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥s â£âŠââ¥tâ¡rs âŠâ¥ ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥s â£â§âŠâââ§ âârââââ§â¡s strââ¥â£s â ââŠââ¡ âs â âŠââââ¡â s⊠tâ€ât â¡ââ¡râ¡ râ¡â¢â¡râ¡â¥ââ¡ t⊠â â£râ¡âââŠâsâ§â¡ â§âstâ¡â â¡â§â¡â â¡â¥t âââ§â§ ââ¡ ââŠâ¥â¡ tâ€râŠââ£â€ ââ²ââââ²âŽââââ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âŒ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ â² â· Original function DisplayFile BOOL DisplayFile(IN CHAR * szFilePath) { ... CreateFile(szFilePath, ...) pData = (UCHAR *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwFileSize+1) ReadFile(hFile, pData, ...) PrintMsg(LOG_LEVEL_TRACE, "File successfully read: %s", pData); ... } Patched function DisplayFile (modifications are colorized in red) BOOL DisplayFile(IN PGLOBAL_DATA pGlobalData, IN CHAR * szFilePath) { ... pGlobalData->CreateFile(szFilePath, ...) pData = (UCHAR *) pGlobalData->HeapAlloc(pGlobalData->GetProcessHeap(), \\ HEAP_ZERO_MEMORY, dwFileSize+1) pGlobalData->ReadFile(hFile, pData, ...) pGlobalData->PrintMsg(pGlobalData, LOG_LEVEL_TRACE, pGlobalData->szString_00000001, \\ pData); ... } ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âœ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ â² âž ââ€â¡ ââ²ââââ²âŽââââ ââ¡ââ¥âtââŠâ¥ â§âŠâŠâŠs â§ââŠâ¡ tâ€â¡ â¢âŠâ§â§âŠâââ¥â£â¿ Overview of structure GLOBAL_DATA typedef struct _GLOBAL_DATA { /* Internal functions */ PrintMsgTypeDef fp_PrintMsg; /* Imported functions */ CreateFileTypeDef fp_CreateFile; HeapAllocTypeDef fp_HeapAlloc; GetProcessHeapTypeDef fp_GetProcessHeap; ReadFileTypeDef fp_ReadFile; /* Data strings */ CHAR szString_00000001[27]; } GLOBAL_DATA, * PGLOBAL_DATA; ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â¹âŸ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ â² â¹ âââ ââ¡r âŠâ¢ â âŠâââââtââŠâ¥s ââ⥠ââ¡ ââŠâ¥sâââ¡râââ§â¡ râ¡ââââ¡â ââ¡ âsââ¥â£ â â âârâŠsâ¿ Definitions of macros /* Add GLOBAL_DATA parameter in definitions of internal function */ #define DisplayFileTempDefinition(...) \\ DisplayFileDefinition(PGLOBAL_DATA pGlobalData, __VA_ARGS__) /* Add redirection and GLOBAL_DATA parameter in call of internal function */ #define PrintMsg(...) pGlobalData->fp_PrintMsg(pGlobalData, __VA_ARGS__) #define DisplayFile(...) pGlobalData->fp_DisplayFile(pGlobalData, __VA_ARGS__) /* Add redirection for imported functions */ #define CreateFile pGlobalData->fp_CreateFile #define HeapAlloc pGlobalData->fp_HeapAlloc #define GetProcessHeap pGlobalData->fp_GetProcessHeap #define ReadFile pGlobalData->fp_ReadFile /* Add redirection for strings */ #define STR_00000001(x) pGlobalData->szString_00000001 ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâµ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ Ⲡ⺠Pâtââ€â¡â â¢ââ¥âtââŠâ¥ âââsâ£â§ââ¡âââ§â¡â ââ¡ââŠâ â¡sâ¿ Patched function DisplayFile with the macros BOOL DisplayFileTempDefinition(IN CHAR * szFilePath) { ... CreateFile(szFilePath, ...) pData = (UCHAR *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwFileSize+1) ReadFile(hFile, pData, ...) PrintMsg(LOG_LEVEL_TRACE, STR_00000001("File successfully read: %s"), pData); ... } â tâ€â¡râ¡ ârâ¡ â¥âŠâ ââ¡râ¡ â¢â¡â â âŠâââââtââŠâ¥s ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâ¶ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ â² â» Call of the internal function âDisplayMessageâ DisplayMessage(g_szMessage); 00412F99 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; get address of g_szMessage in 00412F9C 05 58010000 ADD EAX,158 ; GLOBAL_DATA 00412FA1 50 PUSH EAX ; push address of g_szMessage 00412FA2 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; get address of pGlobalData 00412FA5 51 PUSH ECX ; push address of pGlobalData 00412FA6 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] ; get address of DisplayMessage 00412FA9 8B82 88000000 MOV EAX,DWORD PTR DS:[EDX+88] 00412FAF FFD0 CALL EAX ; call DisplayMessage Call of the internal function âDisplayFileâ if(DisplayFile("test.txt") == FALSE) 00412FFC 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; get address of pGlobalData 00412FFF 05 A1040000 ADD EAX,4A1 ; get address of string 00413004 50 PUSH EAX ; push address of string 00413005 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; get address of pGlobalData 00413008 51 PUSH ECX ; push address of pGlobalData 00413009 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] 0041300C 8B42 78 MOV EAX,DWORD PTR DS:[EDX+78] ; get address of DisplayFile 0041300F FFD0 CALL EAX ; call DisplayFile ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâ· ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ Ⲡ⌠Call of the imported function âCreateFileâ CreateFile(szFilePath, ...) ... 00412DE2 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; get address of pGlobalData 00412DE5 8B91 D8000000 MOV EDX,DWORD PTR DS:[ECX+D8] ; get address of CreateFile 00412DEB FFD2 CALL EDX ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâž ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â¯sââ¥â£ â â£â§âŠâââ§ ââtâ Ⲡ✠ââ¡â¥â¡râtâ¡â âââ¥ârâ¡ ââŠâ¡s â¥âŠt ââŠâ¥tââ⥠ââ¥â¡ â€ârâââŠââ¡â ââârâ¡ssâ¡s â âââ¥ârâ¡ ââŠââ¡ ââ⥠ââ¡ âârâ¡âtâ§â¡ â¡â trââtâ¡â ââ¥â âsâ¡â t⊠â¢âŠrâ sâ€â¡â§â§ââŠââ¡ ââ€â¡â§â§ââŠââ¡ â ââ¡ ââ¡ ârâ¡âtâ¡â sââ â£â§â¡ ââ¡ ââŠâ¥ââtâ¡â¥âtââ¥â£ tâ€â¡ â¡â trââtâ¡â â¢ââ¥âtââŠâ¥s ââ¥â âââââ¥â£ tâ€â¡ ââ²ââââ²âŽââââ strââtârâ¡ ât tâ€â¡ â¡â¥â Shellcode entrypoint Internal function Internal function ... Internal function Internal function pointers Imported function pointers GLOBAL_DATA Global variables Strings âââ£ârâ¡â¿ âââ¡râââ¡â âŠâ¢ tâ€â¡ strââtârâ¡ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâ¹ ⎠â¶âŒâ·
â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ âââ â ârâ¡ ââ€âs sâŠâ§âtââŠâ¥ ââ§â§âŠâs â sâ€â¡â§â§ââŠââ¡ t⊠ââ¡ ârâ¡âtâ¡â âât†â§âttâ§â¡ â âŠâââââtââŠâ¥ âŠâ¢ sâŠârââ¡ ââŠââ¡ ââŠââ¡ââ¡râ± stââ§â§ â â¢â¡â â£râŠââ§â¡â s t⊠sâŠâ§ââ¡â¿ ârâtââ¥â£ tâ€â¡ ââ¡ââ¥âtââŠâ¥ âŠâ¢ tâ€â¡ ââ²ââââ²âŽââââ strââtârâ¡ ââ¥â tâ€â¡ ââ¡ââ¥âtââŠâ¥ âŠâ¢ â âârâŠs âs â§âŠâ¥â£ tâ€â¡ ââ²ââââ²âŽââââ strââtârâ¡ â âst ââ¡ ââ¥âtâââ§âsâ¡â âââ¥ârâ¡ ââtâ â âst ââ¡ â¡â trââtâ¡â â¢râŠâ â£â¡â¥â¡râtâ¡â â¡â â¡ââtâââ§â¡ ââ¥â âssâ¡â ââ§â¡â t⊠ârâ¡âtâ¡ ââ¥ââ§ sâ€â¡â§â§ââŠââ¡ â â tâŠâŠâ§ tâ€ât â¡â â¡ââtâ¡s ââ§â§ tâ€âŠsâ¡ âŠâ£â¡râtââŠâ¥s ââtâŠâ âtââââ§â§â¡ â€âs ââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡ââ¿ â²âââ€âŒâstâ¡r ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâº ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ Pâ§â⥠ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â¶ â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â· â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ âž ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â¹ ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r ⺠ââ¡â âŠâ¥strâtââŠâ¥â¿ ââââ€â¡â§â§ â» ââ¡â âŠâ¥strâtââŠâ¥â¿ â²â¡âââŠâŠr ⌠ââŠâ¥ââ§âsââŠâ¥ ✠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâ» ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ Prâ¡sâ¡â¥tâtââŠâ¥ Pâ§â⥠â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â Prâ¡sâ¡â¥tâtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâŒ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ Prâ¡sâ¡â¥tâtââŠâ¥ Prâ¡sâ¡â¥tâtââŠâ¥ â²âââ€âŒâstâ¡r âs â tâŠâŠâ§ tâ€ât ââtâŠâ âtââââ§â§â¡ â£â¡â¥â¡râtâ¡s sâ€â¡â§â§ââŠââ¡sâ± ââ¡ âsââ¥â£ tâ€â¡ â£râ¡âââŠâsâ§â¡ ââ¡sârâââ¡â â£rââ¥âââ£â§â¡ âââŠâ¡s â sâ¡t âŠâ¢ â sâŠârââ¡ ââ§â¡s ârâttâ¡â¥ ââ¥âŠrâ ââ§â§â¡â â⥠ââ¥â£ât ââ¥â â£â¡â¥â¡râtâ¡s â sâ€â¡â§â§ââŠââ¡ â⥠âŠâtâ£ât ââ€â¡â§â§ââŠââ¡ ââââŠâ â£â§âsâ€â¡s sââ â¡ âŠâ£â¡râtââŠâ¥s âs â¡â â¡ââtâââ§â¡ â£râŠââââ¡â ââ¡ ââŠâ â£ââ§âtââŠâ¥ âŠâ¢ âŠrââ£ââ¥ââ§ sâŠârââ¡ ârââ¥sâ¢âŠrâ âtââŠâ¥ â⥠sâ€â¡â§â§ââŠââ¡ âââ§â§â¡â â§âtâ¡r âsâ€â¡â§â§ââŠââsâtââŠâ¥â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâœ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ Prâ¡sâ¡â¥tâtââŠâ¥ ââ¡ââ¡â§âŠâ£â â¡â¥t â£râŠâ£râ¡ss â² â²âââ€âŒâstâ¡r ââ¡rsââŠâ¥ â¶ â²âââ€âŒâstâ¡r ââ¶ â€âs ââ¡â¡â¥ âââââ§âââ§â¡ âŠâ¥ â â¡ ââ¡â sâtâ¡ â¢âŠr âŠâ¥â¡ â¡â¡âr ârââ£â€ââââ§ ââ£â£â§âââtââŠâ¥ ââ¡ââ¡â§âŠâ£â¡â â⥠ââ â²âŠrâŠs âât â€âs sâ¡ââ¡rââ§ â§ââ âtâtââŠâ¥s âŒâŠst ââ â£âŠrtââ¥tâ¿ â ââŠââ¡ â£ârsâ¡â âât†râ¡â£ââ§âr â¡â â£râ¡ssââŠâ¥s â â âst ââŠâ¥â¢âŠrâ t⊠â â¢â¡â sâ¡â¥tââ rââ§â¡s t⊠ââ¡ sââââ¡ssâ¢ââ§â§â¡ ââ¥ââ§â¡sâ¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âºâŸ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ Prâ¡sâ¡â¥tâtââŠâ¥ ââ¡ââ¡â§âŠâ£â â¡â¥t â£râŠâ£râ¡ss â² â²âââ€âŒâstâ¡r ââ¡rsââŠâ¥ â· â²âââ€âŒâstâ¡r ââ· âs ââ¥ââ¡r ââtâââ¡ ââ¡ââ¡â§âŠâ£â â¡â¥t ââŠrrâ¡âts â ââ¥â¡ â£râŠââ§â¡â s âŠâ¢ tâ€â¡ ââ¶â¿ â²âââ€âŒâstâ¡r âs â¥âŠâ â ââŠâ¥sâŠâ§â¡ ââ£â£â§âââtââŠâ¥ ârâttâ¡â¥ â⥠Pâ¡tâ€âŠâ¥â¿ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ⥠ââ¡ sârââ£tâ¡â âsâ¡r ââ⥠ââ¥tâ¡rââ¡ââ¡ ât ââ¥â¡ stâ¡â£ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ssâ± âââ¡â râ¡sââ§ts ââ¥â ââŠrrâ¡ât â¡ââ¡â¥tâââ§ â âstââŠâ¡s â£ârsââ¥â£ âŠâ¢ sâŠârââ¡ ââŠââ¡ âât†râ¡â£ââ§âr â¡â â£râ¡ssââŠâ¥s â€âs ââ¡â¡â¥ ââŠâ¥sâââ¡râââ§â¡ râ¡ââââ¡â â â âŠst âŠâ¢ tâ€â¡ ââŠâ¥strâââ¥s âŠâ¥ â sâ¡â¥tââ â€âââ¡ ââ¡â¡â¥ râ¡â âŠââ¡â ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âµ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss Pâ§â⥠â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»â¶ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss â⥠â²âââ€âŒâstâ¡r ââ€â¡â§â§ââŠââsâtââŠâ¥ ââââŠâ â£â§âsâ€â¡â ââ¡ â²âââ€âŒâstâ¡r âs ââââââ¡â ââ¥t⊠⻠stâ¡â£sâ¿ ââ¥ââ§â¡sâs â¿ âââ¡â¥tâââ¡s ââŠââ¡ â¡â§â¡â â¡â¥ts ââtââ⥠tâ€â¡ sââ¢â¡ âŠâ¢ â£â§âŠâââ§ âârââââ§â¡s ârâ¡âtâ¡ â¡â¥âârâŠâ¥â â¡â¥t â¿ ârâ¡âtâ¡s ââ§â¡ â£â§âŠâââ§âŽââtââ³â€ âââ²ââââ²âŽââââ strââtârâ¡ ââ¥â â âârâŠsâ® ârâ¡âtâ¡s â â£âtââ€â¡â ââŠâ£â¡ âŠâ¢ sâŠârââ¡ ââ§â¡s â⥠â tâ¡â â£âŠrârâ¡ âârâ¡âtâŠrâ¡ ââ¡â¥â¡râtââŠâ¥ â¿ ââââ§âs â£âtââ€â¡â sâŠârââ¡sâ± â¡â trââts âââ¥ârâ¡ ââtâ ââ¥â â£â¡â¥â¡râtâ¡s tâ€â¡ sâ€â¡â§â§ââŠââ¡ ââstâŠâ ââ¢âtââŠâ¥ â â¥tâ¡â£râtââŠâ¥ â¿ ââŠâ£â¡ sâ€â¡â§â§ââŠââ¡ â⥠â sâ£â¡ââââ âârâ¡âtâŠrâ¡ âŠr trââ¥sâ¢âŠrâ ât â⥠â â ârrââ¡ ââ¥â âââ ⣠ât â⥠â â â€â¡âââ¡r ââ§â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»â· ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² â¶ Prââ¥âââ£â§â¡ âtâ¡â£ ââŠâ â£âŠââ¥ââ¡â âŠâ¢ â ââ€ââ⥠âŠâ¢ â¢ââ¥âtââŠâ¥s tâ€ât âââ§â§ â¡â â¡ââtâ¡ sâŠâ â¡ â âŠâââââtââŠâ¥s âŠâ¥ tâ€â¡ sâ€â¡â§â§ââŠââ¡ ââ¥â trââ¥sâ ât tâ€â¡ â âŠââââ¡â sâ€â¡â§â§ââŠââ¡ t⊠tâ€â¡ â¥â¡â t â¢ââ¥âtââŠâ¥ ââŠâ¥tâ¡â¥t âŠâ¢ tâ€â¡ ââ€ââ⥠âs ââ¡ââ¥â¡â ââ¡ tâ€â¡ âsâ¡r ââstâŠâ ââ¢âtââŠâ¥ â¢ââ¥âtââŠâ¥s ââ â£â§â¡â â¡â¥tâ¡â â⥠Pâ¡tâ€âŠâ¥ â âŠâââ§â¡ â âsâ¡r ââ⥠â¡âsââ§â¡ ârâtâ¡ tâ€â¡âr âŠâ⥠ââstâŠâ ââ¢âtââŠâ¥ â âŠâââ§â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âž ⎠â¶âŒâ·
ââ ââ â£â§â¡ â·â¿ sâ¡ttââ¥â£ sâ£â¡ââââ âââ§ââ¡s ââ ââ â£â§â¡â¿ sâ€â¡â§â§ââŠââ¡ tâ€ât ââŠâ¥â¥â¡âts t⊠â sâ¡rââ¡r ââŠârââ¡ ââŠââ¡ ââŠâ¥tâââ¥s tâ⊠âârââââ§â¡sâ¿ â P ââârâ¡ss ââ¥â â£âŠrt âŠâ¢ tâ€â¡ sâ¡rââ¡r â ⢠ââ¡ â£ât râ¡ââ§ âââ§ââ¡s âârâ¡âtâ§â¡ â⥠tâ€âŠsâ¡ âârââââ§â¡sâ¿ sâ€â¡â§â§ââŠââ¡ â âst ââ¡ râ¡â£â¡â¥â¡râtâ¡â t⊠ââŠâ¥â¥â¡ât t⊠ââ¥âŠtâ€â¡r sâ¡rââ¡r sâ€â¡â§â§ââŠââ¡ âââ¥â¥âŠt ââ¡ ââstrâââtâ¡â â⥠âts âââ¥ârâ¡ â¢âŠrâ â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² â· ââ ââ â£â§â¡ â¶â¿ â¡â¥ârâ¡â£tââŠâ¥ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â ââ¡ ââ¡ âsâ¡â t⊠â¡â¥ârâ¡â£t tâ€â¡ sâ€â¡â§â§ââŠââ¡ â²âââ€âŒâstâ¡r ââŠâ â¡s âât†tâ⊠âââstâŠâ ââ¢âtââŠâ¥â â âŠâââ§â¡s tâ€ât ââ⥠â¡â¥ârâ¡â£t â sâ€â¡â§â§ââŠââ¡â¿ â³ââ â¡â¥ârâ¡â£tââŠâ¥ âât†â âžâ·â²ââts âŠâ¡â¡ ââ£âŠâ§â¡â âŠrâ£â€âsâ â® ââââ²âââ â¡â¥ârâ¡â£tââŠâ¥ âât†â â·âºâ»â²ââts âŠâ¡â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»â¹ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² â· ââ ââ â£â§â¡ â¶â¿ â¡â¥ârâ¡â£tââŠâ¥ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â ââ¡ ââ¡ âsâ¡â t⊠â¡â¥ârâ¡â£t tâ€â¡ sâ€â¡â§â§ââŠââ¡ â²âââ€âŒâstâ¡r ââŠâ â¡s âât†tâ⊠âââstâŠâ ââ¢âtââŠâ¥â â âŠâââ§â¡s tâ€ât ââ⥠â¡â¥ârâ¡â£t â sâ€â¡â§â§ââŠââ¡â¿ â³ââ â¡â¥ârâ¡â£tââŠâ¥ âât†â âžâ·â²ââts âŠâ¡â¡ ââ£âŠâ§â¡â âŠrâ£â€âsâ â® ââââ²âââ â¡â¥ârâ¡â£tââŠâ¥ âât†â â·âºâ»â²ââts âŠâ¡â¡ ââ ââ â£â§â¡ â·â¿ sâ¡ttââ¥â£ sâ£â¡ââââ âââ§ââ¡s ââ ââ â£â§â¡â¿ sâ€â¡â§â§ââŠââ¡ tâ€ât ââŠâ¥â¥â¡âts t⊠â sâ¡rââ¡r ââŠârââ¡ ââŠââ¡ ââŠâ¥tâââ¥s tâ⊠âârââââ§â¡sâ¿ â P ââârâ¡ss ââ¥â â£âŠrt âŠâ¢ tâ€â¡ sâ¡rââ¡r â ⢠ââ¡ â£ât râ¡ââ§ âââ§ââ¡s âârâ¡âtâ§â¡ â⥠tâ€âŠsâ¡ âârââââ§â¡sâ¿ sâ€â¡â§â§ââŠââ¡ â âst ââ¡ râ¡â£â¡â¥â¡râtâ¡â t⊠ââŠâ¥â¥â¡ât t⊠ââ¥âŠtâ€â¡r sâ¡rââ¡r sâ€â¡â§â§ââŠââ¡ âââ¥â¥âŠt ââ¡ ââstrâââtâ¡â â⥠âts âââ¥ârâ¡ â¢âŠrâ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»â¹ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž MyProject.cpp 1 The developer writes source code IP and port set to special values Developer of the shellcode âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âº ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž 2 MyProject.cpp Developer uses WiShMaster Internal to generate the shellcode functions GLOBAL_DATA Developer of the shellcode âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»â» ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž MyProject.cpp Internal functions GLOBAL_DATA Cutomization 3 Developer writes a cutomization module: module in Python patch values Developer of the shellcode âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âŒ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž 4 MyProject.cpp Developer puts the shellcode and the Internal customization module on Internet functions GLOBAL_DATA Cutomization module: patch values Developer of the shellcode âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âœ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž MyProject.cpp Internal functions GLOBAL_DATA Cutomization module: patch values Developer of the shellcode User of the shellcode Internal functions 5 GLOBAL_DATA A user gets the shellcode and the cutomization module âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ â»âŸ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž MyProject.cpp Internal functions GLOBAL_DATA Cutomization module: patch values Developer of the shellcode User of the shellcode 6 The user uses the customization module to patch special values Internal Internal functions functions Cutomization module: patch values GLOBAL_DATA GLOBAL_DATA Values âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâµ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ€â¡ ââstâŠâ ââ¢âtââŠâ¥ stâ¡â£ â² âž MyProject.cpp Internal functions GLOBAL_DATA Cutomization module: patch values Developer of the shellcode User of the shellcode 7 The user uses another customization module to encrypt the shellcode Internal Internal functions functions Cutomization Cutomization module: module: encryption patch values GLOBAL_DATA GLOBAL_DATA Encryption key Values âââ£ârâ¡â¿ Prââ¥âââ£â§â¡ âŠâ¢ tâ€â¡ sâ¡â£ârâtââŠâ¥ ââ¡tââ¡â¡â¥ ââ¡ââ¡â§âŠâ£â¡r ⎠âsâ¡r âŠâ¢ â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâ¶ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â⥠â²âââ€âŒâstâ¡r ââ· â² â¶ â â¥tâ¡râ¥ââ§â§â¡â¿ âââ¡râ¡ â¡â§â¡â â¡â¥t ââsââŠââ¡râ¡â â⥠tâ€â¡ sâŠârââ¡ ââŠâ⡠⌠â⥠âŠââ¥â¡ât âââ¥tâ¡râ¥ââ§âŽââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥sâ± strââ¥â£sâ³ â³ â³ â® âââ¡râ¡ stâ¡â£ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ ââââââ¡â ââ¥t⊠sâ¡ââ¡rââ§ sâ ââ§â§ sâââ²stâ¡â£s âââ¡râ¡ sâââ²stâ¡â£ ââ â£â§â¡â â¡â¥tâ¡â ââ¡ âŠâ¥â¡ â¢ââ¥âtââŠâ¥ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâ· ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ ââ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss â â â£â§â¡â â¡â¥tâtââŠâ¥ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â⥠â²âââ€âŒâstâ¡r ââ· â² â· â²âââ€âŒâstâ¡r ââ⥠ââ¡ â§âââ¥ââ€â¡â â⥠tâ€râ¡â¡ â âŠââ¡sâ¿ ââtâŠâ âtââ â¿ â¡â â¡ââtâ¡s tâ€â¡ sâ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââtâŠâ âtââââ§â§â¡ sârââ£t â¿ â¡â â¡ââtâ¡s â⥠â¡â tâ¡râ¥ââ§ sârââ£t tâ€ât ââ⥠âââ§â§ stâ¡â£âŽsâââ²stâ¡â£ â¢ââ¥âtââŠâ¥s â¡â â£âŠrtâ¡â ââ¡ â²âââ€âŒâstâ¡r ââ¥â â ââ¥ââ£ââ§âtâ¡ âŠââ¥â¡âts ââ¥tâ¡rââtâââ¡ â¿ stârts â Pâ¡tâ€âŠâ¥ sâ€â¡â§â§ âsââ â¡ â£rââ¥âââ£â§â¡ âs â⥠ââââ£â¡â® â¯sâ¡r ââ⥠tâ€â¡â¥â¿ âââ§â§ stâ¡â£âŽsâââ²stâ¡â£ â¢ââ¥âtââŠâ¥s â¡â â¡ââtâ¡ â sâ€â¡â§â§ââŠââsâtââŠâ¥ stâ¡â£ ââ¡ stâ¡â£ ââ¡ âââ§â§ââ¥â£ sâŠâ â¡ â¢ââ¥âtââŠâ¥s stâ¡â£ââ®â± stâ¡â£âââ®â± rââ¥ââ®â³ â³ â³ ââ§ââŠâ¡ â⥠â ââ¡âââ£â£â¡râ® ââsâ£â§ââ¡ âŠââ¥â¡âtsâ± ââ€ââ¥â£â¡ tâ€â¡âr â£râŠâ£â¡rtââ¡s t⊠ââŠrrâ¡ât â¡ââ¡â¥tâââ§ â âstââŠâ¡s ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâž ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ Pâ§â⥠â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâ¹ ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡â¿ âŠââ¥â¡âtâââ¡ ââ€â¡â§â§ââŠââsâtââŠâ¥ â£râŠââ¡ss ââ¡sârâââ¡â â£râ¡âââŠâsâ§â¡ ârâ¡âtâ¡s â âââ¥ârâ¡ ââŠââ¡ tâ€ât â ââ¡ râ⥠ât ââ¥â¡ ââârâ¡ss ââŠââ¡ââ¡râ± sâ€â¡â§â§ââŠââ¡ â âst ââ¥âtâââ§âsâ¡ tâ€â¡ ââ²ââââ²âŽââââ strââtârâ¡ ââ£â¡râtââŠâ¥ â¡â â¡ââtâ¡â ââ¡ â â¢ââ¥âtââŠâ¥ ââââ¡â ââ¡ â²âââ€âŒâstâ¡râ± â£â§âââ¡â ât tâ€â¡ ââ¡â£ââ¥â¥ââ¥â£ âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââ¡â¿ ââ¥â ââârâ¡ss âŠâ¢ ââ²ââââ²âŽââââ strââtârâ¡ ââ¥â ââârâ¡ssâ¡s âŠâ¢ ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥s ââ¥â ââ§â§ â£âŠââ¥tâ¡rs â⥠ââ²ââââ²âŽââââ râ¡sâŠâ§ââ¡ ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥s ââ¥â ââ§â§ â£âŠââ¥tâ¡rs â⥠ââ²ââââ²âŽââââ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâº ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡â¿ â£rââ¥âââ£â§â¡ â²âââ€âŒâstâ¡r âsâ¡s tââ£s ââ¡â§â§â²âŠâ¥âŠâ⥠ââ¡ â²ââ¥ââŠâs sâ€â¡â§â§ââŠââ¡ ârâtâ¡rsâ¿ ââ¥âs â§âŠââ ââârâ¡ss âât†âââ§â§âŽâ£âŠâ£ ââ¥strââtââŠâ¥s â£â¡ts ââârâ¡ss âŠâ¢ âŠâ¡râ¥â¡â§âžâ·â³ââ§â§ tâ€râŠââ£â€ tâ€â¡ Pââ âPrâŠââ¡ss ââ¥âârâŠâ¥â â¡â¥t ââ§âŠââŠâ® râ¡sâŠâ§ââ¡s ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥s âât†â²âŠâââ²âârârâ¡ ââ¥â â⥠ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥ tâ€ât â¢âŠââ¥â tâ€â¡ ââârâ¡ss âŠâ¢ â⥠â¡â â£âŠrtâ¡â â¢ââ¥âtââŠâ¥ â¢râŠâ â âžâ·â²ââts ââ€â¡ââŠsââ ââŠâ â£âtâ¡â â¢râŠâ âts â¥ââ â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâ» ⎠â¶âŒâ·
â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â â¥âtâââ§âsââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡â¿ sââ â ârâ¡ ââ€â¡ sâ€â¡â§â§ââŠââ¡ ââ¥âtâââ§âsâtââŠâ¥ râ¡â§ââ¡s âŠâ¥ tâ€râ¡â¡ â¢ââ¥âtââŠâ¥sâ¿ ââ â¥âtâââ§âsâ¡ââ€â¡â§â§ââŠââ¡â â¿ â¡â¥trâ¡ â£âŠââ¥t âŠâ¢ tâ€â¡ sâ€â¡â§â§ââŠââ¡â± ââ€ââ†ââ¥âtâââ§âsâ¡s ââ²ââââ²âŽââââ strââtârâ¡ âââ¡tââ¡râ¥â¡â§âžâ·ââârâ¡ssâ â¿ râ¡târâ¥s tâ€â¡ â§âŠââ ââârâ¡ss âŠâ¢ ââŠâ¡râ¥â¡â§âžâ·â³ââ§â§â âââ¡tPrâŠâââârâ¡ssââ¡ââŠsââ â â¥ââ§â§â â¿ ââ¥âs â⥠â¡â â£âŠrtâ¡â â¢ââ¥âtââŠâ¥ â¢râŠâ tâ€â¡ ââ€â¡ââŠsââ âŠâ¢ âts â¥ââ â¡ âsââ£â£âŠrts ââ§â§ â¢âŠrâârâââ¥â£â® ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâŒ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st Pâ§â⥠ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â¶ â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â· â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ âž ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â¹ ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r ⺠ââ¡â âŠâ¥strâtââŠâ¥â¿ ââââ€â¡â§â§ â» ââ¡â âŠâ¥strâtââŠâ¥â¿ â²â¡âââŠâŠr ⌠ââŠâ¥ââ§âsââŠâ¥ ✠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâœ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st Prâ¡sâ¡â¥tâtââŠâ¥ âŠâ¢ sââ â£â§â¡tâ¡st â±â¡râ¡ sââ â£â§â¡ â£râŠâ£rââ â¿ â£rââ¥ts â â¡ssââ£â¡s ââsâ£â§ââ¡s tâ€â¡ ââŠâ¥tâ¡â¥t âŠâ¢ â ââ§â¡ âtâ¡stâ³tâ tâ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŒâŸ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â â¢â¡â â¡â trââts âŠâ¢ sââ â£â§â¡tâ¡st â² â¶ File user.h.txt #define SIZE_USERNAME 32 #define SIZE_PASSWORD 32 typedef struct _USER { CHAR szUsername[SIZE_USERNAME]; CHAR szPassword[SIZE_PASSWORD]; } USER, *PUSER; ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâµ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â â¢â¡â â¡â trââts âŠâ¢ sââ â£â§â¡tâ¡st â² â· File display.cpp CHAR g_szMessage[]="This is a message stored as a global variable"; VOID DisplayMessage(IN CHAR * szMessage) { PrintMsg(LOG_LEVEL_TRACE, ">>> %s <<<", szMessage); } BOOL DisplayFile(IN CHAR * szFilePath) { ... CreateFile(szFilePath, ...) pData = (UCHAR *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwFileSize+1) ReadFile(hFile, pData, ...) PrintMsg(LOG_LEVEL_TRACE, "File successfully read: %s", pData); ... } BOOL DisplayData(VOID) { DisplayMessage(g_szMessage); PrintMsg(LOG_LEVEL_TRACE, "Username: %s", g_User.szUsername); PrintMsg(LOG_LEVEL_TRACE, "Password: %s", g_User.szPassword); if(DisplayFile("test.txt") == FALSE) return FALSE; return TRUE; } ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâ¶ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â â¢â¡â â¡â trââts âŠâ¢ sââ â£â§â¡tâ¡st â² âž File main.cpp USER g_User ={"jmerchat","password"}; BOOL DisplayData(VOID); int main(int argc, char * argv[]) { DisplayUser(); return 0; } ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâ· ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â â¢â¡â â¡â trââts âŠâ¢ sââ â£â§â¡tâ¡st â² â¹ File print_msg.cpp VOID PrintMsg(IN UINT uiMessageLevel, IN const CHAR * fmt, ...) { CHAR szBuffer[SIZE_OF_LOCAL_LOG_BUFFER+1]; UINT i = 0; if(uiMessageLevel == LOG_LEVEL_ERROR) i += _snprintf(&szBuffer[i], SIZE_OF_LOCAL_LOG_BUFFER-i, "[ERROR] : "); else if(uiMessageLevel == LOG_LEVEL_WARNG) ... va_list ap; va_start(ap, fmt); i += _vsnprintf(&szBuffer[i], SIZE_OF_LOCAL_LOG_BUFFER-i, fmt, ap); va_end(ap); printf("[%.4d] %s\n ", GetCurrentThreadId() , szBuffer); fflush(stdout); } ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâž ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â â¢â¡â â¡â trââts âŠâ¢ sââ â£â§â¡tâ¡st Ⲡ⺠â⊠sââ ââ£â± âsââ â£â§â¡tâ¡stâ ââŠâ¥tâââ¥sâ¿ ââ¡â tâ¡â£â¡ ââ¯ââââ ââ⊠â£â§âŠâââ§ âârââââ§â¡sâ ââ£âŽâ¯sâ¡râ â¿ tâ¡â£â¡ ââ¯ââââ ââ£âŽsâ¢âŒâ¡ssââ£â¡â â¿ strââ¥â£ ââââ¡ ââ¥tâ¡râ¥ââ§ â¢ââ¥âtââŠâ¥sâ¿ âââsâ£â§ââ¡âŒâ¡ssââ£â¡â â¿ ââsâ£â§ââ¡s ââ£âŽsâ¢âŒâ¡ssââ£â¡â âââsâ£â§ââ¡âââ§â¡â â¿ âŠâ£â¡â¥s â ââ§â¡ âtâ¡stâ³tâ tâ ââ¥â ââsâ£â§ââ¡s âts ââŠâ¥tâ¡â¥t âââsâ£â§ââ¡ââtââ â¿ â¢ââ¥âtââŠâ¥ tâ€ât râ¡ââ§â§â¡ â¡â â¡ââtâ¡s ââ§â§ âŠâ£â¡râtââŠâ¥s ââ âââ¥â â¿ â£râŠâ£rââ â¡â¥trâ¡ â£âŠââ¥t tâ€ât âŠâ¥â§â¡ âââ§â§s âââsâ£â§ââ¡ââtââ âPrââ¥tâŒsâ£â â¿ ââsâ£â§ââ¡s â§âŠâ£ â â¡ssââ£â¡s ââ¡ââ¡rââ§ strââ¥â£s ââ¡ââ¡rââ§ âââ§â§s t⊠ââ â£âŠrtâ¡â â¢ââ¥âtââŠâ¥sâ¿ ârâ¡âtâ¡âââ§â¡â± ââ¡ââ£ââ§â§âŠââ³ â³ â³ â â¥âŠt râ¡ââ§â§â¡ âsâ¡â¢ââ§ âât ââŠâ¥tâââ¥s â âŠst â¡â§â¡â â¡â¥ts âŠâ¢ â â£râŠâ£rââ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâ¹ ⎠â¶âŒâ·
ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st ââ¡â âŠâ¥strâtââŠâ¥s â±âââ¡âŠ âsââ â£â§â¡tâ¡stâŽâ¡â â¡â³âââââ¿ â£â¡â¥â¡râtââŠâ¥ âŠâ¢ âsââ â£â§â¡tâ¡stâ âs â⥠â¡â â¡ââtâââ§â¡ â±âââ¡âŠ âsââ â£â§â¡tâ¡stâŽsâ€â¡â§â§ââŠââ¡â³âââââ¿ â£â¡â¥â¡râtââŠâ¥ âŠâ¢ âsââ â£â§â¡tâ¡stâ âs â sâ€â¡â§â§ââŠââ¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâº ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r Pâ§â⥠ââ€â¡ âsâ¡ âŠâ¢ sâ€â¡â§â§ââŠââ¡s â⥠âârâŠâ§âŠâ£â¡ â¶ â²râtââ¥â£ tâ€â¡ sâ€â¡â§â§ââŠââ¡ â· â²âââ€âŒâstâ¡r â⥠â â¥âtsâ€â¡â§â§ âž ââ¡â âŠâ¥strâtââŠâ¥â¿ sââ â£â§â¡tâ¡st â¹ ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r ⺠ââ¡â âŠâ¥strâtââŠâ¥â¿ ââââ€â¡â§â§ â» ââ¡â âŠâ¥strâtââŠâ¥â¿ â²â¡âââŠâŠr ⌠ââŠâ¥ââ§âsââŠâ¥ ✠ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâ» ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r âââ¥â¡âtâââ¡s âŠâ¢ â²âââ€âŒâstâ¡r â±â¡rsââŠâ¥ â¶ âŠâ¢ â²âââ€âŒâstâ¡râ¿ ârâ¡âtââŠâ¥ âŠâ¢ â âŠâ¥âŠâ§âtâ€ââ sâ€â¡â§â§ââŠââ¡s â²ât†ââ¡rsââŠâ¥ â·â± âŠââ¥â¡âtâââ¡s â€âââ¡ ââ¡â¡â¥ ââŠâ¥sâââ¡râââ§â¡ â¡â tâ¡â¥ââ¡ââ¿ ââ¡ââ¡â§âŠâ£â â¡â¥t âŠâ¢ â âŠâââ§âr ââ£â£â§âââtââŠâ¥s âsâ¡r ââ€âŠâŠsâ¡s âŠâtâ£ât â¢âŠrâ âtâ¿ â⥠â¡â â¡ââtâââ§â¡â± â ââ§â§ âŠr â sâ€â¡â§â§ââŠââ¡ ââ§â§âŠâs ââŠââ¡ râ¡âsââââ§âtâ¡ ââ¡ââ¡â§âŠâ£â â¡â¥t â⥠tâ€â¡ ââ¡râ¡ â£âŠââ¡râ¢ââ§ â ââ â±âsâââ§ âtâââ⊠â£râŠâ¥â¡âts ââ⥠ââ¡ ââstrâââtâ¡â â¡âtâ€â¡r â⥠sâŠârââ¡ âŠr â⥠âââ¥ârâ¡ â¢âŠrâ ât ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâŒ ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r âââ¡râââ¡â âŠâ¢ tâ€â¡ ââ£â£â§âââtââŠâ¥ strââtârâ¡ â² â¶ â â²âââ€âŒâstâ¡r ââ£â£â§âââtââŠâ¥ âs ââŠâ â£âŠââ¥ââ¡â âŠâ¢ âŠâ¥â¡ âŠr sâ¡ââ¡rââ§ ââ âŠâââ§â¡sâ â â âŠâââ§â¡ ââ⥠ââ¡ â⥠âŠâ¥â¡ âŠâ¢ tâ€â¡ â¢âŠâ§â§âŠâââ¥â£ â¹ â¢âŠrâ sâ¿ â⥠â¡â â¡ââtâââ§â¡ â ââ§â§ â sâ€â¡â§â§ââŠââ¡ ââ¥â§ââ¥â¡â ââ¥t⊠ââ¥âŠtâ€â¡r â âŠâââ§â¡ âââ†â âŠâââ§â¡ ââ⥠â¡â â£âŠrt sâŠâ â¡ âŠâ¢ âts â¢ââ¥âtââŠâ¥s s⊠tâ€ât tâ€â¡â¡ ââ⥠ââ¡ âââ§â§â¡â ââ¡ âŠtâ€â¡r â âŠâââ§â¡s â â¡ââ†â âŠâââ§â¡ ââŠâ¥tâââ¥s â⥠ââ¡â â£âŠrtâ tâââ§â¡ ââ¥â â⥠âââ â£âŠrtâ tâââ§â¡ ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâœ ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r âââ¡râââ¡â âŠâ¢ tâ€â¡ ââ£â£â§âââtââŠâ¥ strââtârâ¡ â² â· Module1.cpp Mod1_func1 Mod1_func2 Mod2_func1 Mod3_func2 Module2.cpp 1 Three modules importing Mod2_func1 and exporting some functions Mod3_func1 Mod3_func2 Module3.cpp Mod3_func1 Internal function exported Mod3_func2 Mod1_func1 Imported function Mod2_func1 âââ£ârâ¡â¿ âtrââtârâ¡ âŠâ¢ â⥠ââ£â£â§âââtââŠâ¥ ââ¡ââ¡â§âŠâ£â¡â âât†â²âââ€âŒâstâ¡r ââ· ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âœâŸ ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r âââ¡râââ¡â âŠâ¢ tâ€â¡ ââ£â£â§âââtââŠâ¥ strââtârâ¡ â² â· 2 Module 1 output = shellcode Module 2 output = inlined in module 1 Module1.cpp Module1.bin Mod1_func1 Mod1_func1 Mod1_func2 Mod1_func2 Mod2_func1 Mod2_func1 Mod3_func2 Mod3_func1 Mod3_func2 Module2.cpp Mod2_func1 Mod3_func1 Mod3_func2 Module3.cpp Mod3_func1 Internal function exported Mod3_func2 Mod1_func1 Imported function Mod2_func1 âââ£ârâ¡â¿ âtrââtârâ¡ âŠâ¢ â⥠ââ£â£â§âââtââŠâ¥ ââ¡ââ¡â§âŠâ£â¡â âât†â²âââ€âŒâstâ¡r ââ· ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŸâµ ⎠â¶âŒâ·
ââ¡ââ¡â§âŠâ£ââ¥â£ ââ£â£â§âââtââŠâ¥s âât†â²âââ€âŒâstâ¡r âââ¡râââ¡â âŠâ¢ tâ€â¡ ââ£â£â§âââtââŠâ¥ strââtârâ¡ â² â· 3 Import and export tables of both modules are merged Module1.cpp Module1.bin Mod1_func1 Mod1_func1 Mod1_func2 Mod1_func2 Mod2_func1 Mod2_func1 Mod3_func2 Mod3_func1 Mod3_func2 Module2.cpp Mod2_func1 Mod3_func1 Mod3_func2 Module3.cpp Mod3_func1 Internal function exported Mod3_func2 Mod1_func1 Imported function Mod2_func1 âââ£ârâ¡â¿ âtrââtârâ¡ âŠâ¢ â⥠ââ£â£â§âââtââŠâ¥ ââ¡ââ¡â§âŠâ£â¡â âât†â²âââ€âŒâstâ¡r ââ· ââ¡â¥â¥ââ â⥠âââ â²â²ââ ââââ ââ â² ââ â«â â§âââ® â²â â¥ââŠâs â†â¡â§â§ââŠââ¡ âŒâstâ¡r â¡ âŸâ¶ ⎠â¶âŒâ·
Recommend
More recommend