我是靠谱客的博主 负责金针菇,最近开发中收集的这篇文章主要介绍关于通过反汇编查看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的方法【转】(的全部内容,希望文章能够帮你解决关于通过反汇编查看dll的方法【转】(所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部