日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于通过反汇编查看dll的方法【转】(

發布時間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于通过反汇编查看dll的方法【转】( 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于通過反匯編查看dll的方法【轉】(

http://blog.sina.com.cn/s/blog_51a3c0380100f9md.html

今天想看一個dll的內容,苦于沒有相關工具,從csdn上找到有這么段文字,收益匪淺啊,收藏!?

可以通過反匯編來知道接口函數的參數,建議使用W32DSM來分析,也可以直接使用VC來分析,就是麻煩一點。 ?
? 現在使用W32DSM來具體說明: ?
? 1。先打開需要分析的DLL,然后通過菜單功能-》出口來找到需要分析的函數,雙擊就可以了。 ?
? 它可以直接定位到該函數。??
? 2。看準該函數的入口,一般函數是以以下代碼作為入口點的。??
? push ? ebp ?
? mov ? ? ebp, ? esp ?
? ... ?
? 3。然后往下找到該函數的出口,一般函數出口有以下語句。??
? ...??
? ret ? ? xxxx;//其中xxxx就是函數差數的所有的字節數,為4的倍數,xxxx除以4得到的結果??
? 就是參數的個數。 ?
? 其中參數存放的地方: ?
? ebp+08 ? ? ? ? ? //第一個參數 ?
? ebp+0C ? ? ? ? ? //第二個參數 ?
? ebp+10 ? ? ? ? ? //第三個參數 ?
? ebp+14 ? ? ? ? ? //第四個參數 ?
? ebp+18 ? ? ? ? ? //第五個參數 ?
? ebp+1C ? ? ? ? ? //第六個參數 ?
? 。。。。 ?
? ------------------------------------------- ?
? 還有一種經常看到的調用方式: ?
? sub ? esp,xxxx ? ? ? ? ? //開頭部分 ?
? //函數的內容 ?
? 。。。 ?
? //函數的內容 ?
? add ? esp,xxxx ?
? ret ? ? ? ? ? ? ? ? ? ? ? ? ? ? //結尾部分 ?
? 其中xxxx/4的結果也是參數的個數。 ? ? ?
? ------------------------------------------------- ?
? 還有一種調用方式: ?
? 有于該函數比較簡單,沒有參數的壓棧過程, ?
? 里面的 ?
? esp+04就是第一個參數 ?
? esp+08就是第二個參數 ?
? 。。。 ?
? esp+xx就是第xx/4個參數 ?
? 你說看到的xx的最大數除以4后的結果,就是該函數所傳遞的參數的個數。 ?
? ---------------------------------------------- ?
? 到現在位置,你應該能很清楚的看到了傳遞的參數的個數。至于傳遞的是些什么內容,還需要進一步的分析。 ?
? 最方便的辦法就是先找到是什么軟件在調用此函數,然后通過調試的技術,找到該函數被調用的地方。一般都是PUSH指令 ?
? 來實現參數的傳遞的。這時可以看一下具體是什么東西被壓入堆棧了,一般來說,如果參數是整數,一看就可以知道了, ?
? 如果是字符串的話也是比較簡單的,只要到那個地址上面去看一下就可以了。 ?
? 如果傳遞的結構的話,沒有很方便的辦法解決,就是讀懂該匯編就可以了。對于以上的分析,本人只其到了拋磚引玉, ?
? 希望對大家有點用處。 ?
? 昨天已經簡單的告訴大家,怎么知道接口的參數個數了,以及簡單的接口。由于編譯器的優化原因, ?
? 可能有的參數沒有我前面說的那么簡單,今天就讓我再來分析一下的DLL的調用的接口。如果在該DLL的 ?
? 某個函數中,有關于API調用的話,并且調用API的參數整好有一個或多個是該DLL函數的參數的話。 ?
? 那么就可以很容易的知道該DLL函數的參數了。 ?
? 舉例說明:以下匯編代碼通過W32DSM得到。 ?
? Exported ? fn(): ? myTestFunction ? - ? Ord:0001h ?
? :10001010 ? 8B442410 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mov ? eax, ? dword ? ptr ? [esp+10] ?
? :10001014 ? 56 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? push ? esi ?
? :10001015 ? 8B74240C ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? mov ? esi, ? dword ? ptr ? [esp+0C] ?
? :10001019 ? 0FAF742410 ? ? ? ? ? ? ? ? ? ?

轉載于:https://www.cnblogs.com/ryhan/archive/2011/08/05/2128839.html

總結

以上是生活随笔為你收集整理的关于通过反汇编查看dll的方法【转】(的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。