ืืืืืข, ืืงืื ืืืืืฆืข ืืืืืืขืช ืืืืื ืืืื ืืคืื ืงืฆืืื ืืืืช ืฉืื. ืื ืื ืืืื ืืืฆืข ืฉืืืืช ืืขืจืืช. ืืื ืื ืืืื ืืืฆืข ืคืขืืืืช ืงืื/ืคืื. ืืื ืืื ื ืืืืข ืืช ืืชืืืช ืืืกืืก ืฉื ืืงืืข ืืงืื ืฉื ืืืืฉืื ืืืืจื. ืื ืื ืืืื jmp ืื ืืืชืงืฉืจ ืืงืื ืืืฉืื ืืืจื. ืืื ืื ืืืฉื ืืืื ืืื ื ืืจืื ืืืชืืืืช ืืฉืืื ืืืืฉืื ืืืืจื (ืืืืืื, ืืืื ืืคืื ืืืืคืื ืื ืืืื ืกืื ืฉื ื ืชืื ืื ืืืืงืืื ืืืคืื ืืื). ืืื ืื ืืืืื ืืืงืฉ ืืืขืจืืช ืืืคืขืื ืืืคืืช ืืืื ืืืง ืืืืืืจืื ืฉื ืืืืฉืื ืืืืจื (ืืืืืื, ืืจื /proc/pid/maps). ื ืืกืืื ืืช ืชืืืืื ืืงืจืื ืืขืืืืจืื ืืืืจ ืืืืจืื ืฉืจืืจืืชื ืฉื ืืืฉืื ืืืจื, ืฉืื ืืืืจ ืขื ื ืืกืืื ืืช ืืชืืื, ืืืืืื ืืืืงืื ืื ืืืืืืจ (ืืื ืื ืจืื ืืจืืฉืื ืื) ืืกืืื ืืคืื ืฉื ืชืืื ืืช ืืืืืืขืช. ืื ืงืืจื ืืื ืคืขื ืฉืืืืจ ืืจืื ืืืชืืืืช ืืืืืจืืืืื ืืืืืงืฉ ืขื ืืื ืืืืืืขืช ืืื ื ื ืืืฉ ืืืืฉืื ืืืืจื.
ืืืชืืฉื ืืืฆืืืืช ืื ืงืฉื, ืืื ืืืชื ืืืจืืกืื ืืืื ืืืฉืชืืฉ ืืืืืืขืืช SGX ืืื ืืืฉืื ืืช ืืืจืืชืื ืืืืื ืืืช?
ืืืชืืกืก ืขื ืื ืืืืืจ ืืขืื, ืืงืืื ืืืจื ืืื ืฉืืืืืขืช ืืกืืืืช ืืฉืจืช ืจืง ืืช ืืืคืืืงืฆืื ืืืืจืืช, ืืื ืืืืืืขืช ืืื ื ืืืืื ืืืคืขืื ืืืืื ืืฉืื, ืืจืืืช ืืืื ืืืช. ืืืฉืืขืืช ืืื ืฉืืืืืืขืืช ืืื ืขืจื ืืขืฉื ืืืืชืื ืืืจืืกืื. ืืื ืื ืื ืืืจืช ืืื ืืื ืืืช ืืกืืืืช ืืื ืฉืืื ืช SGX ืืื ื-ืกืืืืจืืช: ืงืื ืืืฉืื ืืืจื ืืื ื ืืืื ืืืฉืช ืืืืืจืื ืืืืืืขืช, ืืขืื ืฉืงืื ืืืืืขืช ืืืื ืืงืจืื ืืืืชืื ืืื ืืชืืืช ืืืืจืื ืฉื ืืืฉืื ืืืจื.
ืืื, ืื ืงืื ืืืืืขืช ืืืื ื ืืื ืืกืืื ืืืฆืข ืงืจืืืืช ืืขืจืืช ืฉืจืืจืืชืืืช ืืฉื ืืืืฉืื ืืืืจื, ืืืฆืข ืงืื ืฉืจืืจืืชื ืืฉืื, ืืกืจืืง ืืช ืืืืจืื ืืืืฉืื ืืืืจื ืืืืฆืื ืื ืฉืจืฉืจืืืช ROP ืื ืืชื ืืช ืื ืืฆืื ืืจืขื, ืืื ืขืืื ืืชืคืืก ืฉืืืื ืืืื ืืืืฉืื ืืืืจื, ื ืืฆื ืืชืื ืืืช. ืืื ืืืื ืื ืจืง ืืื ืื ืืืืฆืคืื ืงืืฆื ืืฉืชืืฉ, ืืื ืื ืืคืขืื ืืฉื ืืืฉืชืืฉ. ืืืฉื, ืืฉืืื ืืืืืื ืืืืืื ืืฉืื ืื ืืืฆืข ืืชืงืคืืช DoS. ืืื ืืืฉืืฉ ืืคืืื ืืื ืื ืื ื ืืืื ื ืืืืืจื ืืื ืืืืชืจ, ืืื ืขืจืืืช ืื ืจืืืช ืืืืืื ืืชืืืช.
ืื ื ื ืจืื ืื ืืื ืคืจืืฆืืช ืฉืชืืงืคืื ืืฉืชืืฉืื ืืื ืืื ืืืชืืืจ ืขื ืืืืืืืช ืฉืชืืืจื ืืขืื ืืื ืื ืฆื ืืช ืืืชืจืื ืืช ืฉื SGX ืืืืจืืช ืืืื ืืืช ืืฉืืื: ืืชืงืคืืช ROP. ืื ืืืคืขืื ืงืื ืฉืจืืจืืชื ืืืืืคืฉ ืืชืืืื ืืืฉืื ืืืจื (ืืืืื ื-process hollowing, ืืืฉืืฉ ืืขืชืื ืงืจืืืืช ืขื ืืื ืชืืื ืืช ืืืื ืืืช), ืื ืืื ืืืกืืืช ืชืืื ื ืืืื ืืช ืืืื ื (ืืื ืืืฆืื ืืช ืืชืืื ื ืืืืื ืืช ืฉืื ืืจืืืคืช ืื ืื-ืืืจืืกืื ืืื ืื ืื ื ืืื ื ืืืจืื).
ืคืจืฅ ืืืืืงืช ืืชืืืืช ืืื ืืจืืืช ืื ื ืืชื ืืงืจืื ืืืชื
ืืืืืื ืฉืืืืืืขืช ืืื ื ืืืืขืช ืืืื ืืืืืื ืฉื ืืจืื ืืืชืืืืช ืืืืจืืืืื ื ืืืฉืื ืืืืฉืื ืืืืจื, ืืืืืืื ืฉืืืืืืขืช ื ืืืฆืช ืืืกืชืืื ืืขืช ื ืืกืืื ืืงืจืื ืืชืืืช ืืืชื ื ืืืฉื, ืืชืืงืฃ ืืชืืืื ืขื ืืืฉืืื ืืืฆืื ืืจื ืืชืงืืืช- ืกืจืืง ืืกืืืื ืืช ืืช ืืจืื ืืืชืืืืช. ืืฆื ืืจื ืืืคืืช ืืชืืืืช ืืืจืืืืืืืช ืืืื ืืช. ืื ืื ืคืืชืจ ืืขืื ืื ืขื ืืื ืฉืืืืฉ ืืจืขื ืืืื ืืืืืืืช ื-TSX ืฉื ืืื ืื. ืืฉืชืืฉ ืืืืช ืืชืืคืขืืช ืืืืืื ืฉื TSX: ืื ืคืื ืงืฆืืืช ืืืืฉื ืืืืืจืื ืืืืงืืช ืืืจื ืืงืฆืืืช TSX, ืื ืืจืืืื ืื ืืืขืื ืืืืฉื ืืืชืืืืช ืื ืืืงืืืช ื ืืืงืืช ืขื ืืื TSX ืืืื ืืืืืข ืืืขืจืืช ืืืคืขืื. ืื ื ืขืฉื ื ืืกืืื ืืืฉืช ืืืชืืืช ืืืืจืื ืื ืืืงืืช, ืจืง ืืขืกืงื ืื ืืืืืช ืชืืืื, ืื ืื ืชืืื ืืช ืืืืืืขืช. ืึถื. TSX ืืืคืฉืจ ืืืืืืขืช ืืืฉืช ืืฆืืจื ืืืืืืืช ืืื ืืชืืืช ืืชืื ืขืกืงื - ืืื ืกืืืื ืฉื ืงืจืืกื.
ืื ืืืชืืืช ืฉืฆืืื ื ืืืื ื ืืืฉืื ืืืจื, ืขืกืงืช TSX ืืืฆืืืช ืืจืื. ืืืงืจืื ื ืืืจืื, ืืื ืขืืื ืืืืืฉื ืขืงื ืืฉืคืขืืช ืืืฆืื ืืืช ืืืื ืคืกืืงืืช (ืืืื ืคืกืืงืืช ืืชืืื), ืคืื ืื ืืืืื ืื ืฉืื ืื ืื-ืืื ื ืฉื ืืืงืื ืืืืจืื ืขื ืืื ืืกืคืจ ืชืืืืืื. ืืืงืจืื ื ืืืจืื ืืื, ื-TSX ืืืืืจ ืงืื ืฉืืืื ืืืฆืืื ืฉืืืฉื ืืื ืืื ื. ืืืงืจืื ืืื, ืืชื ืจืง ืฆืจืื ืืืชืืื ืืืืฉ ืืช ืืขืกืงื.
ืื ืืืชืืืช ืฉืฆืืื ื ืืื ื ืืืื ื ืืืฉืื ืืืจื, TSX ืืืื ืืช ืืืจืื ืฉืืชืจืืฉ (ืืขืจืืช ืืืคืขืื ืืื ื ืืงืืืช ืืืืขื) ืืืืื ืืช ืืขืกืงื. ืงืื ืฉืืืื ืืืืืจ ืืงืื ืืืืืืขืช ืืื ืฉืืืื ืืืืื ืืขืืืื ืฉืืขืกืงื ืืืืื. ืงืืื ืฉืืืื ืืื ืืฆืืื ืื ืฉืืืชืืืช ืืืืืืจืช ืืื ื ืืืื ื ืืืืฉืื ืืืืจื.
ืืื ืืคืืืฆืื ืืื ืฉื TSX ืืชืื ืืืืืืขืช ืืฉ ืชืืื ื ื ืืืื ืขืืืจ ืื ืื: ืืืืืื ืฉืจืื ืืื ื ืืืฆืืขื ืืืืืจื ืืื ื ืืขืืืื ืื ืืืื ืืืฆืืข ืงืื ืืืืืืขืช, ืื ืืคืฉืจ ืืขืงืื ืืืจ ืขืกืงืืืช TSX ืืืืืฆืขืืช ืืชืื ืืืืืืขืช. ืืคืืื, ืื ืืคืืืฆืื ืืืื ืืช ืฉื ื-TSX ื ืืชืจืช ืืืชื ื ืจืืืช ืืืืืืื ืืืขืจืืช ืืืคืขืื.
ืื ืืกืฃ, ืืืืืื ืฉืืคืจืืฆื ืืขืื ืืื ื ืืกืชืืืช ืขื ืงืจืืืืช ืืขืจืืช ืืืฉืื, ืื ื ืืชื ืืืืืช ืืืชื ืื ืืื ืืข ืืืชื ืขื ืืื ืืกืืืช ืฉืืืืช ืืขืจืืช; ืื ืฉืืืจื ืืื ื ืืชื ืชืืฆืื ืืืืืืช ืืืืืง ื ืื ืฆืื ืืืฆืื.
ืื ืื ืืฉืชืืฉ ืืคืจืืฆื ืฉืชืืืจื ืืืขืื ืืื ืืืคืฉ ืืงืื ืืืืฉืื ืืืืจื ืืืื'ืืื ืืืชืืืืื ืืืฆืืจืช ืฉืจืฉืจืช ROP. ืืื ืขื ืืืช, ืืื ืื ืฆืจืื ืืืงืืจ ืื ืืชืืืช. ืืกืคืืง ืืืงืืจ ืืชืืืช ืืืช ืืื ืขืืื ืฉื ืืจืื ืืืชืืืืช ืืืืืจืืืืื. ืืืืงื ืฉื ืื 16 ืืืืื-ืืืื ืฉื ืืืืืจืื ื ืืฉืืช ื-45 ืืงืืช (ื-Intel i7-6700K). ืืชืืฆืื ืืื, ืื ืื ืืงืื ืจืฉืืื ืฉื ืืคื ืืคืขืื ืืืชืืืืื ืืื ืืืช ืฉืจืฉืจืช ROP.
ืคืจืืฆื ืืืืืงืช ืืชืืืืช ืืฆืืจื ืืชืืื
ืืื ืืืฆืข ืืจืกืช ืืืืืขืช ืฉื ืืชืงืคืช ROP, ืชืืงืฃ ืฆืจืื ืืืืืช ืืกืืื ืืืคืฉ ืืืืจื ืืืืจืื ืฉืืื ื ื ืืชื ืื ืืืชืืื ืฉื ืืืืฉืื ืืืืจื. ืืชืืงืฃ ืืฉืชืืฉ ืืืืงืืื ืืืืจืื ืืื ืืื ืืืืืืจ ืืกืืจืช ืืืกื ืืช ืืืืืคืช ืืืืืืืจ ืืืขื (ืงืื ืืขืืคืช). ืืฉืืจื ืืชืืชืื ื ืืื ืฉืืืืืขืช ืืืื ืืช ืืื ื ืืกืืืืช ืืืจืืฉ ืืืืคืืืงืฆืื ืืืืจื ืืืงืฆืืช ืืขืฆืื ืืืืจืื, ืืื ืืืืื ืืขืฉืืช ืฉืืืืฉ ืืจืขื ืืืืืจืื ืฉืืืจ ืืืงืฆื ืขื ืืื ืืืคืืืงืฆืื ืืืืจื. ืื, ืืืืื, ืืื ืืฆืืื ืืืฆืื ืืืืจืื ืืืื ืืืื ืืืืื ืืช ืืืืืืขืช.
ืื ืื ืืืฆืข ืืช ืืืืคืืฉ ืืื ืขื ืืื ื ืืฆืื ืชืืคืขืช ืืืืื ื ืืกืคืช ืฉื TSX. ืจืืฉืืช, ืืื ืืืงืจื ืืงืืื, ืืื ืืืืง ืืช ืืืชืืืช ืืงืืืื, ืืืืืจ ืืื ืืืืง ืืื ืืขืืื ืืืชืืื ืืืชืืืช ืื ื ืืชื ืืืชืืื. ืืฉื ืื, ืื ืื ืืฉืชืืฉ ืืคืจืืฆื ืืืื: ืืื ืืฆืื ืคืื ืงืฆืืืช ืืชืืื ืืืจื ืกืงืฆืืืช TSX, ืืืืืจ ืฉืืื ืืืฉืืื, ืื ืืคื ื ืฉืืื ืืืฉืืื, ืืื ืืืื ืืช ืืขืกืงื ืืืื (ืืืืื ืืคืืจืฉ).
ืขื ืืื ืืชืืื ื ืืช ืืงืื ืืืืืจื ืืขืกืงืช TSX, ืืชืืงืฃ ืืืื ืื ืืื ื ืืชื ืืืชืืื. ืื ืืืืืจ ื"ืืคืื ืืคืืจืฉืช", ืื ืื ืืืื ืฉืืืงืืื ืืืืชื ืืฆืืืื ืื ืืื ืืืฉืื ืื. ืื ืืืฃ ืืื ืืงืจืืื ืืืื, ืืขืกืงื ืืกืชืืืืช ืืฉืืืื ืฉืืื ื "ืืืืื ืืคืืจืฉ".
ืืื ืืคืืืฆืื ืืื ืฉื TSX ืืฉ ืชืืื ื ื ืืกืคืช ืฉืืื ื ืืืื ืื ืื (ืืืื ืืืกืจ ืืืคืฉืจืืช ืืขืงืื ืืจื ืืื ื ืืืฆืืขื ืืืืจื): ืืืืืื ืฉืื ืคืงืืืืช ืืืชืืื ืืืืืจืื ืืชืืฆืขืืช ืจืง ืื ืืขืกืงื ืืฆืืืื, ืืืืืฅ ืืขืกืงื ืืืกืชืืื ืืืืืื ืฉืชื ืืืืืจืื ืื ืืืง. ื ืืชืจ ืืื ืฉืื ืื.
ืคืจืืฆื ืืื ืืืคื ืืช ืืืืฉ ืืช ืืจืืืช ืืืงืจื
ืืืฉืจ ืืืฆืขืื ืืชืงืคืช ROP ืืืืืืขืช โ ืื ืืืื ืืืชืงืคืืช ROP ืืกืืจืชืืืช โ ืืชืืงืฃ ืืืื ืืงืื ืฉืืืื ืขื ืืืืจ ื-RIP ืืืื ืื ืฆื ืืืืื ืืืฉืื ืืชืืื ื ืืืืชืงืคืช (ืืฆืคื ืืืืืจ ืื ืืฉืื ืืื). ืชืืงืฃ ืืืื ืืืืืืฃ ืืฉืืจืืช ืืช ืืขืจื ืฉื ืืืืจ ื-RIP ืืืืืืกื ืืขืจืืื. ืืคืจื, ืืื ืืืื ืืืืืืฃ ืืช ืืขืจื ืฉื ืคื ืงืก ืื ืืฉืจืฉืจืช ROP ืืฉืื.
ืขื ืืืช, ืื ืฉืจืฉืจืช ื-ROP ืืจืืื, ืืืืคืช ืืืง ืืืื ืืืขืจืืื ืฉื ืืืืฉืื ืืืืจื ืขืืืื ืืืืืื ืืฉืืืชืืช ื ืชืื ืื ืืืืชื ืืืืช ืืืชื ืฆืคืืื ืฉื ืืชืืื ืืช. ืื ืื, ืืืืงืฉ ืืืฆืข ืืช ืืชืงืคืชื ืืืืคื ืกืืื, ืืื ื ืืจืืฆื ืืืฆื ืขื ืืื ืื ืื. ืืื, ืืื ืืืฆืจ ืืขืฆืื ืืกืืจืช ืขืจืืื ืืื ืืช ืืืืืคืช ืืืืืกื ืื ืืช ืฉืจืฉืจืช ื-ROP ืฉืื. ืืกืืจืช ืืืืกื ืืช ืืืืืืคืช ืืืืงืืช ืืืืงืื ืืงืจืื ืื ืืชื ืืืชืืื, ืืืฉืืืจื ืืช ืืขืจืืื ืืืืืชืืช ืฉืืื.
ืื ืฉืืืฉืช ืืคืจืืฆืืช ืืืคืืจืืืช ืืขืื ื ืืชื ืืช ืื ืื?
(1) ืจืืฉืืช, ืืืืืืขืช ืืืืื ืืช ืืจื ืืคืจืืฅ ืืืืืงืช ืืชืืืืช ืืื ืืจืืืช ืื ื ืืชื ืืงืจืื ืืืชื, โ ืืืคืฉ ืืืืฉืื ืืืืจื ืืืจ ืืืื'ืืื ROP ืื ืืชื ืื ืืจืขื.
(2) ืืื ืขื ืืื ืคืจืืฆื ืืืืืงืช ืืชืืืืช ืืฆืืจื ืืชืืื, โ ืืืืืขืช ืืืื ืืช ืืืื ืืืืจืื ืืืืืจืื ืืืืฉืื ืืืืจื ืฉืืชืืืืื ืืืืจืงืช ืืืขื.
(3) ืืืืจ ืืื, ืืืืืืขืช ืืืฆืจืช ืฉืจืฉืจืช ROP ืืืืืื'ืืื ืฉืืชืืื ืืฉืื (1) ืืืืจืืงื ืืช ืืฉืจืฉืจืช ืืื ืืขืจืืืช ืืืืฉืื ืืืืจื.
(4) ืืืกืืฃ, ืืืฉืจ ืืืคืืืงืฆืื ืืืืจืืช ื ืชืงืืช ืืฉืจืฉืจืช ื-ROP ืฉื ืืฆืจื ืืฉืื ืืงืืื, ืืืืขื ืืืืื ื ืืชืืื ืืคืขืื - ืขื ืืจืฉืืืช ืืืคืืืงืฆืื ืืืืจื ืืืืืืืช ืืืฆืข ืฉืืืืช ืืขืจืืช.
ืืื ื ืื ืืฉืชืืฉ ืืคืจืืฆืืช ืืื ืืื ืืืฆืืจ ืจื ืืืืืจื
ืืืืจ ืฉืืืคืืืงืฆืื ืืืืจื ืืขืืืจื ืืช ืืฉืืืื ืืืืืืขืช ืืจื ืืื ื-ECALLs (ืืืื ืืืฉืื ืฉืืืืืืขืช ืืื ืืืื ืืช), ืืืืืืขืช ืืืืื ืืช ืืืคืฉืช ืืงืื ืคื ืื ืืืืืจืื ืฉื ืืืคืืืงืฆืื ืืืืจื ืืืืจืงืช ืงืื (ืืืงื ืืืืืื ืคื ืืืื ืืช ืจืฆืคื ืืชืืื ืืืื ืฉืืื ืืืคืกืื). ืืื ืืจื ืืคืจืืฅ ืืืืืงืช ืืชืืืืช ืืื ืืจืืืช ืื ื ืืชื ืืงืจืื ืืืชื, โ ืืืืืืขืช ืืืคืฉืช ืืคื ืืคืขืื ืืืคืืืงืฆืืืช ืืืืจื ืืืืืฆืจืช ืฉืจืฉืจืช ROP ืฉืืืฆืจืช ืงืืืฅ ืืืฉ ืืฉื "RANSOM" ืืกืคืจืืื ืื ืืืืืช (ืืืชืงืคื ืืืืชืืช, ืืืืืืขืช ืืฆืคืื ื ืงืืฆื ืืฉืชืืฉ ืงืืืืื) ืืืฆืืื ืืืืขืช ืืืคืจ. ืืื ืขื ืืืช, ืืืคืืืงืฆืื ืืืืจื ืืืืื ื ืืชืืืืืช ืฉืืืืืืขืช ืคืฉืื ืืืกืืคื ืฉื ื ืืกืคืจืื. ืืื ืื ื ืจืื ืืงืื?
ืืื ืืืงื ืขื ืืชืคืืกื, ืืื ื ืฆืื ืืื ืื ืืืื ืืืช ืืจื ืืืืืจืืช:
ืื ื ืฉืืืจืื ืืช ืืขืจืืื ืืืงืืจืืื ืฉื ืืืืจื RSP ื-RBP ืขื ืื ืช ืืฉืืืจ ืืช ืืคืขืืื ืืจืืืื ืฉื ืืืืฉืื ืืืืจื ืืืืจ ืืืฆืืข ืืืืขื:
ืื ื ืืืคืฉืื ืืกืืจืช ืืืกื ืืช ืืชืืืื (ืจืื ืืช ืืงืื ืืืกืขืืฃ "ืคืจืืฆื ืืืคื ืืืช ืืจืืืช ืืงืจื").
ืืฆืืืช ืืืื'ืืื ROP ืืชืืืืื:
ืืฆืืืช ืืงืื ืืืืจืืง ืืช ืืืืขื:
ืื ื ืืื ืื ืฉืจืฉืจืช ROP:
ืื ืื ืืฆืืช ืืื ืืืืืืืช ื-SGX ืฉื ืืื ืื, ืฉื ืืขืื ืืืชืืืื ืขื ืชืืื ืืืช ืืืื ืืืช, ืขื ืืื ื ืืืื ืืื ืืืฉืื ืืืจืืช ืืคืืืืช.
ืืงืืจ: www.habr.com