資源簡介
首先需要知道該函數有幾個參數,然后再細化參數類型。詳細分析過程如下: 可以通過反匯編來知道接口函數的參數,建議使用W32DSM來分析,也可以直接使用VC來分析,就是麻煩一點。現在使用W32DSM來具體說明:1。先打開需要分析的DLL,然后通過菜單功能-》出口來找到需要分析的函數,雙擊就可以了。它可以直接定位到該函數。2。看準該函數的入口,一般函數是以以下代碼作為入口點的。push ebpmov 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,xxxxret //結尾部分其中xxxx/4的結果也是參數的個數。 -------------------------------------------------還有一種調用方式:有于該函數比較簡單,沒有參數的壓棧過程,里面的esp+04就是第一個參數esp+08就是第二個參數。。。esp+xx就是第xx/4個參數你說看到的xx的最大數除以4后的結果,就是該函數所傳遞的參數的個數。----------------------------------------------到現在位置,你應該能很清楚的看到了傳遞的參數的個數。至于傳遞的是些什么內容,還需要進一步的分析。最方便的辦法就是先找到是什么軟件在調用此函數,然后通過調試的技術,找到該函數被調用的地方。一般都是PUSH指令來實現參數的傳遞的。這時可以看一下具體是什么東西被壓入堆棧了,一般來說,如果參數是整數,一看就可以知道了,如果是字符串的話也是比較簡單的,只要到那個地址上面去看一下就可以了。如果傳遞的結構的話,沒有很方便的辦法解決,就是讀懂該匯編就可以了。

代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.CA....?????31531??1997-07-10?21:12??W32dsm\W32dapi.lup
????.CA....????194292??1997-06-16?19:07??W32dsm\W32dasm8.hlp
????.CA....????304128??1999-06-25?17:12??W32dsm\W32dsm89.exe
????.C.D...?????????0??2007-04-20?02:59??W32dsm
-----------?---------??----------?-----??----
???????????????529951????????????????????4
-----------?---------??----------?-----??----
????.CA....?????31531??1997-07-10?21:12??W32dsm\W32dapi.lup
????.CA....????194292??1997-06-16?19:07??W32dsm\W32dasm8.hlp
????.CA....????304128??1999-06-25?17:12??W32dsm\W32dsm89.exe
????.C.D...?????????0??2007-04-20?02:59??W32dsm
-----------?---------??----------?-----??----
???????????????529951????????????????????4
評論
共有 條評論