作者查詢 / UNARYvvv
作者 UNARYvvv 在 PTT [ C_and_CPP ] 看板的留言(推文), 共243則
限定看板:C_and_CPP
看板排序:
全部C_and_CPP243CSSE116Programming100Shaiya44SRW37C_Sharp23kartrider15NTUGIEE_EDA12Bank_Service5sex5AntiVirus4ASM4PCSH91_3054shoes4Soft_Job4TKU_Software4graduate3Python3CODE_GEASS2FJU-BA93B2GameDesign2movie2Ajax1C_Chat1CodeJob1feminine_sex1FTV1joke1Master_D1nb-shopping1NDHU-phy951RSSH93_3051third-person1<< 收起看板(33)
3F推:可以研究看看 return-oriented programming11/25 05:46
4F推:如果懶得使用動態配置 + 改 page 屬性,可以在11/19 02:25
5F→:char shellcode[] 和 = 之間加上這個11/19 02:26
6F→:__attribute__ ((section (".text#")))11/19 02:27
7F→:指定把這陣列放到 .text section,而那一般預設就是你其11/19 02:28
8F→:他可執行程式所放置的 section,編出執行檔後可用 nm觀察11/19 02:29
41F推:to 二樓: 區域變數的位址不會固定相對於執行檔載入位址09/06 11:18
42F→:應該說配在 stack 上的和 image base 無關, 那種有相對關09/06 11:27
43F→:係的是 static variable09/06 11:28
49F推:這在保證每次執行檔載入位址固定、ESP 起始位址固定是成09/06 13:42
50F→:立沒錯,但就連限定 Windows 平台時都還是要系統版本以及09/06 13:44
51F→:編譯器設定配合才能滿足這個前提,我是傾向不這樣假設啦09/06 13:44
12F推:因為編成 DLL 又沒修改 linker 參數改變 entry point07/11 04:06
13F→:所以預設會找 DllMainCRTStartup, 這邊其實沒用到所以加07/11 04:07
14F→:個一個空的(直接回傳)的實作07/11 04:07
15F→:stdcall cdecl 這些請加上 "calling convention" 去搜尋07/11 04:12
16F→:__declspec(dllexport) 這跟 PE 執行檔的 import/export07/11 04:18
17F→:有關, 中文書的話我也建議看上面推文提到的 "程式設計師07/11 04:18
18F→:的自我修養" 一書07/11 04:19
19F→:找資料的時候會找到一堆 Windows 程式設計的資料,因為雖07/11 04:24
20F→:你要做 UEFI,但是看 spec 就會發現它的執行檔格式和一些07/11 04:25
21F→:機制有利用到現有的 PE 格式,所以多少懂一點是有幫助的07/11 04:26
22F→:(上面的 linker 指的是 Microsoft linker)07/11 04:37
23F→:還有..這段的機制主要相關的是 PI spec,不是 UEFI spec07/11 04:39
49F推:po 了一篇回文才發現 VictorTom 兄已經都講完要點了XDrz08/04 01:49
41F推:C++ 已經不會把沒寫 return type 自動當作 return int了07/13 18:08
42F→:在C的那種狀況你拿strcpy(非return int)來試link也會過07/13 18:33
43F→:原po的現象應該是在過去非標準的 iostream.h 多包了其他07/13 18:36
44F→:header 的東西進去,以標準來說不該放那了07/13 18:38
45F→:這只是現在讓你一時方便可以少 include 一些東西,等你換07/13 18:40
46F→:比較新的編譯環境之後就會碰到錯誤07/13 18:41
14F推:有空還是早點把 C 的 pointer,struct,function pointer,07/13 03:05
15F→:bitwise operation 先熟悉,之後再回來寫這些會輕鬆不少07/13 03:05
16F→:加油..07/13 03:05
17F→:有一本書可以參考看看 [以C語言解析電腦]07/13 03:22
18F→:如果想在Windows驗證你文中想做的事,可查詢WinIo的用法07/13 03:27
19F→: ^^^^撰寫07/13 03:29
20F→:至於為何沒事要去Windows上寫?因為可以搭配一個方便的工07/13 03:35
21F→:具來邊驗證自己程式的輸出結果,"RW - Read&Write" (RW-07/13 03:36
22F→:Everything) http://rweverything.myweb.hinet.net07/13 03:36
24F推:RSDP,Rsdt,Xsdt 在定義時有給初值,可以免去再全設0一次07/13 11:34
25F→:有時要取出資料可以不用分段組合,用內建型別一次取出07/13 11:50
26F→:例如 RSDPLen = *(unsigned long)(RSDPAddr+20);07/13 11:50
27F→:但是更好的作法是你先照 spec 把那個表自己 typedef 出07/13 11:51
28F→:各種 struct,然後就可以把你取到的位址直接對到那個07/13 11:52
29F→:struct 上,用欄位取值比直接寫 offset 清楚也不容易出錯07/13 11:53
31F→:樓上..你的 init() 這樣寫的話,相關變數也要改放到global07/13 12:28
43F推:tropical72, 若是 Offset==4 的時候將不會進迴圈, 而且07/13 15:37
44F→:Val 應該先從 port CFCh 讀入值才進行判斷07/13 15:39
4F推:加 & 沒有幫助,反而會把資料寫到其他未知的地方去08/03 01:23
7F推:看你如果願意編譯兩份就用條件編譯,不然就用動態連結吧06/29 20:14
8F推:條件的方式是用 #if 判斷 _WIN32_WINNT 的值來決定是否把06/29 20:18
9F→:使用新版 API 的程式碼編進去06/29 20:18
10F→:動態連結的話就參考下方 Hubert 的回文囉06/29 20:20
41F推:既然你看得懂 C++ Primer 其實我也覺得直接開始讀吧..06/29 20:23
42F推:C++ Primer 也有把程序導向就該有的基本部份從頭開始教起06/29 20:28