關閉程式基位址改變

2021-09-12 10:01:30 字數 805 閱讀 1417

windows vista開始有動態基位址的功能,只要pe頭dll characteristics有0x40每次載入時基位址都不一樣。

相應的ide,比如vs,也支援動態基址的功能。

1 在vs自己編寫的程式中關閉基址改變屬性:

①vs中右鍵專案 -> 屬性 -> 鏈結器 -> 命令列:去掉/dynamicbase加上/fixed

#pragma comment(linker,"/base:0x500000")   (在vs2017中測試發現只用②就實現了基址固定)

2 逆向已寫完的程式,使其基址固定:

去掉image_optional_header.dllcharacteristics的image_dllcharacteristics_dynamic_base

定位到dllcharacteristics後用位運算

win7下動態獲取基址的函式:

void c獲得基址dlg::onbnclickedbutton1()

dword getbaseaddr(dword pid)

moduleentry32 me;

me.dwsize=sizeof(moduleentry32);

module32first(hmodulesnap,&me);

dword dwbaseaddr;

dwbaseaddr=(dword)me.modbaseaddr;

closehandle(hmodulesnap);

return dwbaseaddr;

}參考:

posted on 2019-01-02 17:17收藏

winform窗體關閉程式退出實現

這篇文章主要介紹了c 中winform程式退出方法,例項總結了技巧退出winform程式視窗的各種常用技巧,非常具有實用價值,需要的朋友可以參考下 1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.env...

關閉程式時候彈出visual stud

出個一般是你正在執行的程式出現了沒有處理的異常,vs問你是否要進行除錯,其實一般出這個問題,就是不彈出這個,你執行的程式也會終止,是終止,不是退出 你可以用修改登錄檔 開始 執行 regedit 刪除登錄檔以下鍵值 hkey local machine software microsoft wind...

WinForm窗體關閉程式退出實現

1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.environment.exit 0 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。強烈推薦 注 例項 當開啟乙個子窗體,進行某項...