TLS = thread local storage
為了避免執行續之間的東西打架, 所以發展出TLS機制
有分動態跟靜態
靜態會走 __declspec 的prefix,
Ch22
DLL injection & hooking
- 透過registry來inject dll
appinit_dlls : 用來加file, 此file只能有file name, 且必須放在系統下,
時間點是process起來且用了user32.dll, 他會去調用
缺點: 有用user32.dll的process才能inject, 且無差別inject可能造成crash, 只有想要用你的dll的時候才做inject而不是起來的時候就inject
不備建議
- set windowsHookEx
可以用不同的hook type, 當甚麼情況發生時, 要甚麼方式通知我
- create Remote Thread
把想要的資料塞到別人身上, 可以在別人身上load lib
問題: 可能沒有想要的dll, 可以透過kernel32內的lib拿出來用, 使用他的loadlibraryA
先要一塊記憶體位子 ,
用一個dll續替換原本的dll, 擺到對的位子即可
用createprocess來做, 先建了以後暫停, 再把東西塞進去, 再讓他繼續跑
api hooking 透過jump cpu的做法來跳到想要的位子