記一次「簡單」(內心複雜)的逆向作業,使用winapi程式設計,要求如下:
話不多說,開肝就是了
一開始我的想法是把顯示和獲取函式分開,獲取部分再分為位址和執行緒號,最後顯示部分負責呼叫就好了(理想很美好)
然而返回值的問題搞到我頭禿?,即使函式返回值和主函式變數都設為同樣的也不行,結果往往是在printf輸出時卡死,現在看來猜測是因為使用winapi的函式返回的dword不是標準庫里定義的資料型別的問題(感覺在winapi下都不會程式設計了?)。whatever,我的方法是把三者還是合在一起編寫,組成show
函式,如下:
dword winapi show
(lpvoid lparam)
dword id=
getcurrentthreadid()
;//獲取執行緒id
//由於返回的id是dword型別,需要轉換成char才能和路徑合在一起
tchar sz[20]
=;_stprintf
(sz,_t(
"%d"
),id)
;lstrcat
(szmodulepath,
";")
;//分割一下,好認
lstrcat
(szmodulepath,sz)
;messagebox
(null
,text
(szmodulepath)
,text
("hoooo!!"
), mb_ok)
;//之所以要合併兩個字串就是因為messagebox只有乙個引數作為程序
}
dword
=typedef unsigned long
word
=typedef unsigned short
byte
=typedef unsigned char
而且由於winapi
的特性,其支援unicode
的編碼,因此就可以直接利用windows自帶的字串操作函式,效率比c更高,比如我使用的lstrcat
函式就是其中之一,至於字串是按照ansi
還是unicode
字元處理,這一點由巨集unicode
來決定的。 一些感想(第一次作業)
恢復內容開始 現在我已經是一名大三的學生,並且當前已經是下學期了。感覺大學時光過的飛快,彷彿昨天才進入大學,現在轉眼間已經面臨著工作與考研的抉擇。實際上當初高三的時候,選擇報考的是學校的航空航天類的專業。現在並不後悔選擇這個專業。感覺比較良好。在經歷了三年在校的學習生活後,說不上絕對可以認為是這輩子...
一次送修電腦的感想
前兩天為了趕緊將樹莓派配置好跑資料,花了大半天去弄新的buildroot和編譯新的核心,結果發現樹莓派還是和電腦無法通過putty互動。愚蠢的我一直都是用筆記本的usb為樹莓派供電,估計是這個原因導致樹莓派損壞了,後面杜邦線直接冒煙燒壞,樹莓派也涼涼。這還不是最慘的,筆記本的usb口也被燒壞了,估計...
第一次專案感想
這是在學校以外的第一次 專案,起先雖然在學校學過並且也做了好多,不過總體感覺上完全不一樣,先前學的不深,做的時候也沒有考慮很多問題,做的 也很爛,而且基本上都是光能弄個前台頁面,當時做的特效也都是用flsah做的,在學校也學了php不過老師講課基本上自己都不熟,所以聽著感覺挺變扭,基本上都不怎麼想聽...