• 1191阅读
  • 2回复

52.windbg-Call Function调试技巧(调用函数) [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-02-12


.call 命令使得目标进程执行一个函数。



语法


.call [/v] Function( Arguments )
.call /c
.call /C
.call /s
Prototype Function( Arguments )



指定函数是被当前进程的当前线程调用的。
只支持 cdeclstdcallfastcallthiscall 调用约定。不能使用该方法调用托管代码


Arguments不能使用字符串作为参数,但是可以使用字符串指针,或目标进程可以访问的其它任何内存


我们可以看下以下的示例:


[cpp] view plain copy
  1. 0:000> ln 011334e0  
  2. e:\verifytxsigndemo\verifytxsigndemo\antihook.cpp(215)  
  3. (011334e0)   VerifyTxSignDemo!ComputeModulePath   |  (01133740)   VerifyTxSignDemo!StringVPrintfWorkerA  
  4. Exact matches:  
  5.     VerifyTxSignDemo!ComputeModulePath (char *)  
  6. 0:000> .call VerifyTxSignDemo!ComputeModulePath("hook.dll")  
  7. String literals not allowed in '"hook.dll")'  
提示不允许使用字符串"hook.dll",那么我们去堆栈中找一块,考虑到是栈是从上到下分配的,而字符串是从小到大读的,那么就取esp-100做为首地址吧:



[cpp] view plain copy
  1. 0:000> r $t0 = esp-100  
  2. 0:000> r $t0  
  3. $t0=0022ebc8  
  4. 0:000> dd $t0  
  5. 0022ebc8  00000000 00000000 00000000 00000000  
  6. 0022ebd8  00000000 00000000 00000000 00000000  
  7. 0022ebe8  00000000 00000000 00000000 00000000  
  8. 0022ebf8  00000000 00000000 00000000 00000000  
  9. 0022ec08  00000000 00000000 00000000 00000000  
  10. 0022ec18  00000000 00000000 00000000 00000000  
  11. 0022ec28  00000000 00000000 00000000 00000000  
  12. 0022ec38  00000000 00000000 00000000 00000000  


[cpp] view plain copy
  1. 0:000> eza $t0 "hook.dll"  
  2. 0:000> da $t0  
  3. 0022ebc8  "hook.dll"  


[cpp] view plain copy
  1. 0:000> .call VerifyTxSignDemo!ComputeModulePath($t0)  
  2. Unexpected character in '$t0)'  
  3. 0:000> .call VerifyTxSignDemo!ComputeModulePath(@$t0)  
  4. Thread is set up for call, 'g' will execute.  
  5. WARNING: This can have serious side-effects,  
  6. including deadlocks and corruption of the debuggee.  
注意到必须使用@$t0,使用$t0不行!

第一行提示windbg已经为函数调用做好准备,输入g命令将执行这个函数
后两行表示这样调用目标程序的函数可能有严重的后果,包括死锁和崩溃
输入g来执行函数:


[cpp] view plain copy
  1. 0:000> g  
  2. .call returns:  
  3. char * 0x00270000  
  4. "E:\VerifyTxSignDemo\Debug\"  







善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线v2680267313

只看该作者 沙发  发表于: 2016-04-30
用户被禁言,该主题自动屏蔽!
离线840925340

只看该作者 板凳  发表于: 2016-06-13
OK
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个