C語言面向過程編程的語言;C++面向?qū)ο缶幊痰恼Z言。
兩者有本質(zhì)的區(qū)別,其實是完全不同的兩種語言,只不過C++兼容C語言而已。
其中C++則一般看作是對C語言的擴展。因為C語言沒有面向?qū)ο蟮恼Z法結(jié)構(gòu),而當時業(yè)界又迫切需要面向?qū)ο蟮木幊烫匦?,所以貝爾實驗室的開發(fā)者就為C語言添加了面向?qū)ο蟮慕Y(jié)構(gòu)。現(xiàn)在C++已經(jīng)不只是C語言的擴展了,它已經(jīng)完全可以被看作一種新的編程語言。雖然C語言的特性以及庫函數(shù)仍然被C++支持,不過C++擁有自己的獨立的類庫體系,功能相當強大。
C/C++的優(yōu)點在于與底層比較接近,可以控制的粒度更加精細,是開發(fā)系統(tǒng)級應用的最佳選擇。關(guān)于跨平臺,C/C++也是很好的語言,因為所有平臺都支持,不同的是,不同平臺支持的實現(xiàn)不同,類庫不同,要編寫跨平臺的程序,需要選擇跨平臺的類庫,如標準類庫,如果標準類庫的支持不夠也只需要附加編寫一個跨平臺的支持類庫。
通過C語言編寫一個游戲要加載的系統(tǒng)DLL文件(lpk.dll),其中假DLL包含劫持功能和作弊功能且擁有相同的導出函數(shù),將該假DLL放入游戲相同目錄下,游戲打開時會自動加載該假DLL,使游戲直接包含作弊功能。小編推薦一個學C語言/C++的學習裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
設計思路分析
對象分析
要用的函數(shù)介紹
編寫測試效果
總體評價
設計思路分析
構(gòu)造一個與系統(tǒng)目錄下LPK.DLL一樣的導出表
加載系統(tǒng)目錄下的LPK.DLL
將導出函數(shù)轉(zhuǎn)發(fā)到系統(tǒng)目錄下的LPK.DLL上
在初始化函數(shù)中加入我們要執(zhí)行的代碼
對象分析
注:本次游戲?qū)ο鬄镾uper Mario XP
沒有更新所以可用任意版本 ,
試玩發(fā)現(xiàn)人物血量最大為10,心最大為99,命最大為99。
要用的函數(shù)介紹
__asm{ }
執(zhí)行括號內(nèi)的匯編代碼
JMP EAX
將EIP跳轉(zhuǎn)到EAX執(zhí)行,劫持DLL后要獲取真正的原函數(shù)地址,使用時要進行跳轉(zhuǎn)
編寫測試效果
將生成的mylpk和作弊模塊放入游戲目錄,并改mylpk名為lpk
打開游戲
直接打開游戲即可,發(fā)現(xiàn)此時游戲已具備作弊效果(鎖定血量)
工具查看加載模塊
發(fā)現(xiàn)cheatDLL模塊已加載入游戲,說明lpk劫持成功
WIN7下劫持
在WIN7下要劫持只需稍修改注冊表即可
總體評價
DLL劫持可以在不用手動加載外掛,在運行游戲時自動加載作弊功能。小編推薦一個學C語言/C++的學習裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進步一起學習!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
最后我來說一說了解C的必要性:
1. 對內(nèi)存和硬件的操作,是目前絕大部分高級語言所隱藏的,只有堅實C背景的同學,才可以考慮的更多,如果你想對原理有更多的了解,那么C其實是不可繞過的一個環(huán)節(jié)。
2. 想要締造一個新的系統(tǒng)和語言,沒有C是不行滴(或許C++勉強)。
3. 不管是OC的消息系統(tǒng),Java的自動回收,Ruby的動態(tài)類擴充,這些花哨且時髦的東西,其實都可以用C來實現(xiàn),而且很多都是用C來實現(xiàn)的,如果你想自己實施,看C吧。
4. 破解和分析程序,C可以起到很大的作用。C是可以人為創(chuàng)建Bug來破壞一個系統(tǒng)滴。
最后我引用我的一個大牛朋友的話:“請不要忽視C語言,它上可九天摘月,下可五洋捉鱉”。