RING3級:
現在網上很多的進程替換都是說A 建立C進程(殭屍進程),然後把C所有的Section都Free掉,把B文件手動LOAD重定位,並在C進程空間申請合適的位置,完成後恢復C的運行,運行的結果是用了C的殼做了B的事。(這樣卡巴是過不了的,對WriteProcessMemory監控,使用Mapping會有CopyOnWrite)
但我在想,如果可以A用B替換,那不是更好嗎?由於做了類似實驗。讀入目標PE的文件頭,得到建議的對齊地址和大小,在目標進程不會使用的空間位置申請內存,將Load代碼移上此空間(或者寫個DLL),跳到此代碼中。代碼完成Unmap所有申請的內存,重要申請並讀入目標EXE,完成對齊,完成導入導出表,跳到入口。
不過莫明其巧地出錯。。。鬱悶中