注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

看一下VARIANT变量  

2014-08-25 13:46:26|  分类: 一些练习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 // cl /Zi /Fd var.cpp
#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
 VARIANT v;
 SAFEARRAY a;
 SAFEARRAYBOUND b;

 memset(&v, 0x11, sizeof(v) );
 printf("VARIANT size=0x%x\n", sizeof(v) );
 
 memset(&a, 0x22, sizeof(a) );
 printf("SAFEARRAY size=0x%x\n", sizeof(a) );

 memset(&b, 0x33, sizeof(b) );

 printf("SAFEARRAYBOUND size=0x%x\n", sizeof(b) );
 
 return 0;
}

运行看输出的大小

VARIANT size=0x10
SAFEARRAY size=0x18
SAFEARRAYBOUND size=0x8

 

调试看变量类型,看到下面那些浮点数,我就明白了之前CVE-2013-3918里面的那些浮点数该如何转换了。
0:000> dt var!v
Local var @ 0x12fed4 Type tagVARIANT
   +0x000 vt               : 0x1111
   +0x002 wReserved1       : 0x1111
   +0x004 wReserved2       : 0x1111
   +0x006 wReserved3       : 0x1111
   +0x008 llVal            : 1229782938247303441
   +0x008 lVal             : 286331153
   +0x008 bVal             : 0x11 ''
   +0x008 iVal             : 4369
   +0x008 fltVal           : 1.144374212e-028
   +0x008 dblVal           : 1.8010757365944223e-226
   +0x008 boolVal          : 4369
   +0x008 scode            : 286331153
   +0x008 cyVal            : tagCY
   +0x008 date             : 1.8010757365944223e-226
   +0x008 bstrVal          : 0x11111111  -> ??
   +0x008 punkVal          : 0x11111111 IUnknown
   +0x008 pdispVal         : 0x11111111 IDispatch
   +0x008 parray           : 0x11111111 tagSAFEARRAY
   +0x008 pbVal            : 0x11111111  ""
   +0x008 piVal            : 0x11111111  -> ??
   +0x008 plVal            : 0x11111111  -> ??
   +0x008 pllVal           : 0x11111111  -> ??
   +0x008 pfltVal          : 0x11111111  -> ??
   +0x008 pdblVal          : 0x11111111  -> ??
   +0x008 pboolVal         : 0x11111111  -> ??
   +0x008 pscode           : 0x11111111  -> ??
   +0x008 pcyVal           : 0x11111111 tagCY
   +0x008 pdate            : 0x11111111  -> ??
   +0x008 pbstrVal         : 0x11111111  -> ????
   +0x008 ppunkVal         : 0x11111111  -> ????
   +0x008 ppdispVal        : 0x11111111  -> ????
   +0x008 pparray          : 0x11111111  -> ????
   +0x008 pvarVal          : 0x11111111 tagVARIANT
   +0x008 byref            : 0x11111111
   +0x008 cVal             : 17 ''
   +0x008 uiVal            : 0x1111
   +0x008 ulVal            : 0x11111111
   +0x008 ullVal           : 0x11111111`11111111
   +0x008 intVal           : 286331153
   +0x008 uintVal          : 0x11111111
   +0x008 pdecVal          : 0x11111111 tagDEC
   +0x008 pcVal            : 0x11111111  ""
   +0x008 puiVal           : 0x11111111  -> ??
   +0x008 pulVal           : 0x11111111  -> ??
   +0x008 pullVal          : 0x11111111  -> ??
   +0x008 pintVal          : 0x11111111  -> ??
   +0x008 puintVal         : 0x11111111  -> ??
   +0x008 pvRecord         : 0x11111111
   +0x00c pRecInfo         : 0x11111111 IRecordInfo
   +0x000 decVal           : tagDEC

 

0:000> dt var!a
Local var @ 0x12febc Type tagSAFEARRAY
   +0x000 cDims            : 0x2222
   +0x002 fFeatures        : 0x2222
   +0x004 cbElements       : 0x22222222
   +0x008 cLocks           : 0x22222222
   +0x00c pvData           : 0x22222222
   +0x010 rgsabound        : [1] tagSAFEARRAYBOUND

 

0:000> dt var!b
Local var @ 0x12feb4 Type tagSAFEARRAYBOUND
   +0x000 cElements        : 0x33333333
   +0x004 lLbound          : 858993459

  评论这张
 
阅读(208)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017