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

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

研究一下vbs脚本与js脚本设置脚本执行  

2014-08-04 13:56:35|  分类: 一些练习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

之前vbs脚本设置COleScript对象在偏移174h的地方,之后看研究了下js的COleScript对象,它的偏移是184h。

这些偏移可能与脚本引擎的版本有关。

这些地方的值在Wscript.exe执行脚本时是4;在IE里执行脚本前先是4,然后改成e。

vbs:

Set sh = CreateObject("Shell.Application")
sh.ShellExecute("calc.exe")

0:010> ba r4 06131ea4 ".echo ===;dd 06131ea4 l1 ;r eip;g"
vbscript!COleScript::

0:010> g
===
06131ea4  00000004
eip=7327bfc2
===
06131ea4  00000004
eip=73290396
===
06131ea4  00000004
eip=732903d9
===
06131ea4  0000000e
eip=【732903e3】这附近改变成e
===
06131ea4  0000000e
eip=7327622d
===
06131ea4  0000000e
eip=73280613
===
06131ea4  0000000e
eip=7327622d
===
06131ea4  0000000e
eip=732805e1
===
06131ea4  0000000e
eip=7327622d

vbscript!COleScript::SetInterfaceSafetyOptions+0x27:
732903cd 8b5514          mov     edx,dword ptr [ebp+14h]
732903d0 0544010000      add     eax,offset <Unloaded_pi.dll>+0x143 (00000144)
732903d5 f7d1            not     ecx
732903d7 2308            and     ecx,dword ptr [eax]
732903d9 83ca04          or      edx,4
732903dc 235510          and     edx,dword ptr [ebp+10h]
732903df 0bca            or      ecx,edx
732903e1 8908            mov     dword ptr [eax],ecx <==这里改写成e
0:003> ****write e****
0:003> u
vbscript!COleScript::SetInterfaceSafetyOptions+0x3d:
732903e3 33c0            xor     eax,eax
732903e5 5d              pop     ebp
732903e6 c21000          ret     10h

 

vbscript!COleScript::SetInterfaceSafetyOptions+0x3b:
732903e1 8908            mov     dword ptr [eax],ecx  ds:0023:06131ea4=00000004
0:010> r ecx=0 这里改变ecx使脚本执行exe
0:010> g

 

js:

var sh = new ActiveXObject("Shell.Application");
sh.ShellExecute("calc.exe");

0:010> ba r4 06521354 ".echo ===;dd 06521354 l1;r eip;g"
===
06521354  0000000e
eip=3e3c5dc9
===
06521354  0000000e
eip=3e38f053
===
06521354  00000004
eip=3e3533d9
===
06521354  00000004
eip=3e38a4b2
===
06521354  00000004
eip=3e359aad
===
06521354  0000000e
eip=【3e359aba】这里附近改变成e
===
06521354  0000000e
eip=3e38ef2e
===
06521354  0000000e
eip=3e3c5d4d
===
06521354  0000000e
eip=3e3ac104

0:001> ub 3e359aba
jscript!COleScript::SetInterfaceSafetyOptions+0x28:
3e359aa0 8b7514          mov     esi,dword ptr [ebp+14h]
3e359aa3 8bd0            mov     edx,eax
3e359aa5 f7d2            not     edx
3e359aa7 239150010000    and     edx,dword ptr <Unloaded_pi.dll>+0x14f (00000150)[ecx]
3e359aad 83ce04          or      esi,4
3e359ab0 23f0            and     esi,eax
3e359ab2 0bd6            or      edx,esi
3e359ab4 899150010000    mov     dword ptr <Unloaded_pi.dll>+0x14f (00000150)[ecx],edx 这里改变成e
0:001> ****write e****
0:001> u
jscript!COleScript::SetInterfaceSafetyOptions+0x42:
3e359aba 33c0            xor     eax,eax
3e359abc 5e              pop     esi
3e359abd 5d              pop     ebp
3e359abe c21000          ret     10h

 

jscript!COleScript::SetInterfaceSafetyOptions+0x3c:
3e359ab4 899150010000    mov     dword ptr <Unloaded_pi.dll>+0x14f (00000150)[ecx],edx ds:0023:06521354=00000004
0:010> r edx=4 这里改写edx使脚本执行exe
0:010> g

 

除了模块不一样外,都在同名对象,同名方法里面改写为e的!

vbscript!COleScript::SetInterfaceSafetyOptions

jscript!COleScript::SetInterfaceSafetyOptions

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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