prn
prn
驱动牛犊
驱动牛犊
  • 注册日期2002-04-02
  • 最后登录2008-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1946回复:13

能用SoftIce查看函数的参数吗?

楼主#
更多 发布于:2002-04-03 09:11
我想分析一个驱动程序(无源码),用SoftIce对一个系统函数设断点bpx EngCreateBitmap,程序运行时被截获了,我怎样才能看到它调这个函数时EngCreateBitmap(a,b,c,...)用的那些参数a,b,c..?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-03 09:22
在断点出来之后看堆栈啊!参数都在堆栈里面啊
prn
prn
驱动牛犊
驱动牛犊
  • 注册日期2002-04-02
  • 最后登录2008-12-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-03 09:51
在断点出来之后看堆栈啊!参数都在堆栈里面啊

sorry,我不会汇编,在SoftIce的code窗口里我看到
GDI32!EngCreateBitmap,但上一行是一个RET 0008,没有连续的压栈PUSH xxx,我应在那里看堆栈的内容?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-03 10:03
在刚刚进入该函数的第一条指令还没有运行的时候堆栈寄存器ESP里面的值就是当前的堆栈指针,因为堆栈之后ESP的值会进行减操作
所以要往回看
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-03 12:29
假设把你的最左边的参数编号为1,向又依次为2,3,4,5…………
当你要看的函数返回以后,立刻中断,然后
d esp+4
显示出来的第一个32位数就是参数1,第二个就是参数2,…………
btw,如果一点都不懂汇编,还是换个调试工具,或者打消跟踪别人程序的念头吧。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-04-04 08:41
一个更简单的命令:
WL,既能看到参数,又能看到局部变量。
Tom_lyd
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-04-04 10:36
bpx EngCreateBitmap do *(esp+4)
这样在EngCreateBitmap停住后WD栏将现示依次为a,b,c....
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
yanghaoyun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-04-04 16:42
前面的兄弟只说了一种情况,API函数有两大类,一类是堆栈型的,参数通过堆栈传递,按从右到左的顺序入栈;另一类是寄存器型的,参数是通过各寄存器传递的。具体到某个API如何传递参数,得看它的说明了。
Owen.Guo
驱动中牛
驱动中牛
  • 注册日期2001-03-30
  • 最后登录2012-03-29
  • 粉丝0
  • 关注1
  • 积分402分
  • 威望260点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-04-04 20:53
要汇编好才能呀!
Owen.Guo 祝你成功!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-04-05 09:13
前面的兄弟只说了一种情况,API函数有两大类,一类是堆栈型的,参数通过堆栈传递,按从右到左的顺序入栈;另一类是寄存器型的,参数是通过各寄存器传递的。具体到某个API如何传递参数,得看它的说明了。


兄弟说得好,这就是还有一类__fastcall,是用EAX和EDX传递最左边的两个参数。不过好像一般Win32 API都是__stdcall,完全是用堆栈传递的。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
jry9524
驱动牛犊
驱动牛犊
  • 注册日期2002-01-10
  • 最后登录2005-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-04-05 09:41
 要查看参数,必须设断点,然后在堆栈里查看,无其他办法。
Beyon
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-04-05 15:28
不好意思上一贴错了应该为
bpx EngCreateBitmap do \"db esp+4\"
引号里是你想执行的ICE指令,如果你高兴改成HBOOT,哈哈!!后果自负!
WINAPI 没见过用寄存器型!
VXD倒是有!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-05 15:31
Lov1999终于把他哪个色情头象给换了^_^
 :D :D :D :D :D :D :D :D :D :D :D :D
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-04-05 23:00
to prn
http://www.pediy.com/document/Ice-Advance.chm
看一下这你的问题都搞定了!
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
游客

返回顶部