亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

C/C++ 導(dǎo)出 DLL 函數(shù)的一般方法
通常項(xiàng)目中導(dǎo)出 DLL 接口有兩種方式:
1. __declspec(dllexport)導(dǎo)出;
2.*.def 文件導(dǎo)出 。
__declspec(dllexport) 導(dǎo)出
在 DLL 導(dǎo)出的函數(shù)名稱前使用 _declspec(dllexport)關(guān)鍵字導(dǎo)出函數(shù)接口 。
?
test_dll.h

關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
test_dll.cpp
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
def 文件導(dǎo)出
由于 __declspec(dllexport)導(dǎo)出接口需要定義一長(zhǎng)串的內(nèi)容,所以 MS 引入 def文件來導(dǎo)出函數(shù)接口 。使用 def文件相對(duì)簡(jiǎn)單,只需要在項(xiàng)目中增加一個(gè)后綴名為 .def 的文件,按照格式將 DLL 需要導(dǎo)出的接口定義在 def 文件即可 。
1.定義 .def 文件
test_dll.def
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
  • DllName表示 Dll 的文件名
  • @1 [可選] 指定導(dǎo)出的函數(shù)序號(hào) 。導(dǎo)出多個(gè)函數(shù)時(shí),需要開發(fā)者自定義序號(hào),不能重復(fù) 。
2.添加 def 文件至工程
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
3.設(shè)置工程屬性
在 “屬性”->“鏈接器”->“輸入” 配置 模塊定義文件輸入 def文件名稱 。
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
【關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用】4.編譯生成 DLL
使用工具查看導(dǎo)出函數(shù)名接口,導(dǎo)出接口的順序與 def文件定義的序號(hào)相同 。
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
存在問題
  • 通過工具可以查看導(dǎo)出函數(shù)名,暴露接口函數(shù)功能 。
  • 導(dǎo)出的函數(shù)名可以任意被訪問和使用,即使業(yè)務(wù)功能被封裝在內(nèi)部代碼經(jīng)過加密處理,但外部接口是公開的 , 可以被正常調(diào)用 。造成在不知情,被未經(jīng)授權(quán)的開發(fā)者濫用,間接造成損失 。
解決方案:導(dǎo)出匿名接口導(dǎo)出匿名序號(hào)接口
匿名導(dǎo)出接口只需要在 def文件的導(dǎo)出接口名稱增加 NONAME關(guān)鍵字即可,如下:
test_dll.def
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
  • NONAME表示不導(dǎo)出函數(shù)名稱(匿名) 。
使用 CFF Explorer工具查看導(dǎo)出函數(shù)接口名稱,函數(shù)名稱已經(jīng)被隱藏掉 。
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
訪問匿名序號(hào)接口靜態(tài)鏈接
和通常工程引用 DLL 的方法相同,引用 .h,鏈接 .lib,運(yùn)行前將 .dll文件拷貝至應(yīng)用運(yùn)行目錄即可 。
動(dòng)態(tài)加載
通過動(dòng)態(tài)加載的方式調(diào)用DLL接口 。
當(dāng)導(dǎo)出序號(hào)時(shí),定義函數(shù)指針變得復(fù)雜,只能通過靜態(tài)反編譯的方式確定參數(shù)數(shù)量和類型,定義函數(shù)指針 。
關(guān)于查看dll函數(shù)及參數(shù) 查看dll導(dǎo)出函數(shù)怎么用

文章插圖
注意:定義函數(shù)指針的類型聲明必須與函數(shù)定義一致,否則無(wú)法正常使用 。
小結(jié)
  • 靜態(tài)鏈接的方式不變,不影響團(tuán)隊(duì)內(nèi)部使用 。
  • 匿名接口,不知情的開發(fā)者無(wú)法調(diào)用 DLL 接口功能,防止 DLL 功能被濫用 。
  • 提高 DLL 破解難度,調(diào)用者無(wú)法通過函數(shù)名推測(cè)函數(shù)功能,增加分析接口功能、接口間業(yè)務(wù)邏輯關(guān)系的復(fù)雜程度 。
匿名導(dǎo)出 DLL 接口能夠一定程度提升安全性,但使用 IDA 等靜態(tài)反編譯工具逆向代碼邏輯 , 能夠找到函數(shù)的接口參數(shù)類型,并且大致了解接口內(nèi)部實(shí)現(xiàn)邏輯(沒有函數(shù)名 , 逆向分析的難度已經(jīng)加大),如果要進(jìn)一步提升 DLL 的安全性 , 需要使用加殼工具進(jìn)行保護(hù)或采用其他的安全防護(hù)手段 。


    以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

    「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: