• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            jans2002的博客

            專注 專心 專業(yè)

            (轉(zhuǎn))怎么獲取dll函數(shù)的參數(shù)類型

            可以通過(guò)反匯編來(lái)知道接口函數(shù)的參數(shù),建議使用W32DSM來(lái)分析,也可以直接使用VC來(lái)分析,就是麻煩一點(diǎn)。      
              現(xiàn)在使用W32DSM來(lái)具體說(shuō)明:      
              1。先打開(kāi)需要分析的DLL,然后通過(guò)菜單功能-》出口來(lái)找到需要分析的函數(shù),雙擊就可以了。      
              它可以直接定位到該函數(shù)。      
              2。看準(zhǔn)該函數(shù)的入口,一般函數(shù)是以以下代碼作為入口點(diǎn)的。      
              push     ebp      
              mov         ebp,     esp      
              ...      
              3。然后往下找到該函數(shù)的出口,一般函數(shù)出口有以下語(yǔ)句。      
              ...      
              ret         xxxx;//其中xxxx就是函數(shù)差數(shù)的所有的字節(jié)數(shù),為4的倍數(shù),xxxx除以4得到的結(jié)果      
              就是參數(shù)的個(gè)數(shù)。      
              其中參數(shù)存放的地方:      
              ebp+08                     //第一個(gè)參數(shù)      
              ebp+0C                     //第二個(gè)參數(shù)      
              ebp+10                     //第三個(gè)參數(shù)      
              ebp+14                     //第四個(gè)參數(shù)      
              ebp+18                     //第五個(gè)參數(shù)      
              ebp+1C                     //第六個(gè)參數(shù)      
              。。。。      
              -------------------------------------------      
              還有一種經(jīng)常看到的調(diào)用方式:      
              sub     esp,xxxx                     //開(kāi)頭部分      
              //函數(shù)的內(nèi)容      
              。。。      
              //函數(shù)的內(nèi)容      
              add     esp,xxxx      
              ret                                                         //結(jié)尾部分      
              其中xxxx/4的結(jié)果也是參數(shù)的個(gè)數(shù)。              
              -------------------------------------------------      
              還有一種調(diào)用方式:      
              有于該函數(shù)比較簡(jiǎn)單,沒(méi)有參數(shù)的壓棧過(guò)程,      
              里面的      
              esp+04就是第一個(gè)參數(shù)      
              esp+08就是第二個(gè)參數(shù)      
              。。。      
              esp+xx就是第xx/4個(gè)參數(shù)      
              你說(shuō)看到的xx的最大數(shù)除以4后的結(jié)果,就是該函數(shù)所傳遞的參數(shù)的個(gè)數(shù)。      
              ----------------------------------------------      
              到現(xiàn)在位置,你應(yīng)該能很清楚的看到了傳遞的參數(shù)的個(gè)數(shù)。至于傳遞的是些什么內(nèi)容,還需要進(jìn)一步的分析。      
              最方便的辦法就是先找到是什么軟件在調(diào)用此函數(shù),然后通過(guò)調(diào)試的技術(shù),找到該函數(shù)被調(diào)用的地方。一般都是PUSH指令      
              來(lái)實(shí)現(xiàn)參數(shù)的傳遞的。這時(shí)可以看一下具體是什么東西被壓入堆棧了,一般來(lái)說(shuō),如果參數(shù)是整數(shù),一看就可以知道了,      
              如果是字符串的話也是比較簡(jiǎn)單的,只要到那個(gè)地址上面去看一下就可以了。      
              如果傳遞的結(jié)構(gòu)的話,沒(méi)有很方便的辦法解決,就是讀懂該匯編就可以了。對(duì)于以上的分析,本人只其到了拋磚引玉,      
              希望對(duì)大家有點(diǎn)用處。

            posted on 2009-10-14 08:37 jans2002 閱讀(1430) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            2021精品国产综合久久| 亚洲国产精品久久久久网站| 久久99亚洲综合精品首页| 久久久www免费人成精品| 久久九九精品99国产精品| 国产精品99久久久久久董美香 | 久久亚洲国产午夜精品理论片| 久久精品国产亚洲av麻豆小说| 久久精品无码专区免费东京热| 国产一区二区精品久久凹凸| 综合久久精品色| 蜜桃麻豆www久久| 久久天天躁夜夜躁狠狠| segui久久国产精品| 久久午夜无码鲁丝片| 久久99精品免费一区二区| 亚洲精品无码成人片久久| 久久久久久久久久免免费精品| 久久久久久午夜成人影院| 蜜桃麻豆WWW久久囤产精品| 国产精品99久久久久久宅男| 亚洲αv久久久噜噜噜噜噜| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久亚洲国产| 国产成人AV综合久久| 久久精品a亚洲国产v高清不卡| 国产精品中文久久久久久久| 国产精品美女久久久网AV| 国产99久久精品一区二区| 欧美牲交A欧牲交aⅴ久久| 国内精品伊人久久久久妇| 亚洲人成无码www久久久| 久久精品成人欧美大片| 91久久精品电影| 99久久伊人精品综合观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 午夜精品久久久久久久久| 欧美精品国产综合久久| 99久久国产精品免费一区二区| 久久久久久久精品妇女99| 无码国产69精品久久久久网站|