标题:关于bindshell中代码的疑问?
只看楼主
hb0zyj
该用户已被删除
 问题点数:0 回复次数:7 
关于bindshell中代码的疑问?
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: edi 结构体 大片 
2012-01-09 09:25
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:0 
ecx不就=0x30么,0x44哪里冒出来的?VC里__asm自己跑下

技术问题,请不要以短消息方式提问
2012-01-09 10:08
hb0zyj
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-01-09 10:25
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:0 
好吧,就算你加句
mov eax,0x0
mov byte ptr [esi+0x13],al
lea ecx,[eax+0x30]
这里ecx会等于0x44?这也倒真的是神奇了,我是解释不了

技术问题,请不要以短消息方式提问
2012-01-09 10:47
naruto01
Rank: 4
等 级:业余侠客
帖 子:103
专家分:280
注 册:2011-5-23
得分:0 
我看到的注释是:clear some stack to use as NULL parameters
STARTUPINFO结构体(CreateProcess的一个参数,可以查MSDN或有关资料)的size是0x44字节
代码一共在栈上设置了0x30*4个NULL
2012-01-10 10:31
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:0 
0x30*4 = 0xC0 = 0x44 + 0x44 + 0x38 纯属个人猜测
但是你说0x30和0x44有什么关系,我是真的看不出来

技术问题,请不要以短消息方式提问
2012-01-10 11:31
naruto01
Rank: 4
等 级:业余侠客
帖 子:103
专家分:280
注 册:2011-5-23
得分:0 
http://bbs.
2012-01-11 12:41
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
得分:0 
以下是引用hb0zyj在2012-1-9 09:25:10的发言:

关于有名的191个字节的bindshell代码:
mov eax,0x0
lea ecx,[eax+0x30]
mov edi,esp
rep stosd
....
书上说,为将栈上一大片区域置成NULL,才有了上述代码。关键是第二句:lea ecx,[eax+0x30]与某结构体的大小0X44有关,怎么理解?
没分。。。这个不太好吧。。。

这个你要联系上下文 有时候光联系上下文还不够 还需要自己动手调试才行。
rep stosd 按4字节填充
ecx为计数器
edi为起始地址
这样填充完以后 edi为esp+0x30*4,
某结构体大小为0X44,假如填充完成后,
需要用EDI寻址结构体内地址,就要减去一个值,
根据所需结构体内的不同地址,减去不同的值。
当然也可以从起始地址开始加,但是那样就体现不出灵活性。

上面的相信你都早已理解,我就是没事温习一下指法。
你的问题是 它们为什么“有关”。。。
实际上它们是相对无关的,作为填充的大小,可以是
超过0X44的任何允许值,
但是当完成后,需要用edi来寻址结构体内位置时,就需要计算具体偏移了。
当然 用0X30个dw可能是比较合适的,也许是这个结构体就固定用这么多的地儿来盛。。。

这样的数据是 自己构造 出来的,倒着减 正着加,只要能定位到需要的地方怎么样都行,但是有时候用esp不保险,在这里是用edi。

这个似乎是个很简单的问题。。。。。。
不摸汇编几百年了 啥都忘了  





小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2012-01-12 04:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-359381-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.168869 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved