12   1  /  2  页   跳转

[讲义] 8月1日上课QQ群记录整理

8月1日上课QQ群记录整理

      这是我整理的8月1日通过QQ群的老师的讲课记录,虽然参与讨论的人不多,但是希望没有看到的同学来这里看一下,对理解讲义很有帮助的,但愿对大家有所帮助,尤其是还没有接触过汇编的同学,跟着老师的步骤来做会感到容易一些。

清新/xin陽光 (463216947)
来了
清新/xin陽光 (463216947)
呵呵
丶刀刀 (1511777)
老师好 啊
清新/xin陽光 (463216947)
貌似 我应该发个OD
331878347 (331878347)
OD???
清新/xin陽光 (463216947)
有兴趣的同学
清新/xin陽光 (463216947)
可以 跟我一起
清新/xin陽光 (463216947)
调试个程序
丶刀刀 (1511777)
用什么 汇编?
清新/xin陽光 (463216947)

清新/xin陽光 (463216947)
对于 讲义会有更深的理解
清新/xin陽光 (463216947)
讲义 光看 是不容易看懂的
331878347 (331878347)
现在很大一部分人,都是丈二的和尚
丶刀刀 (1511777)
我还不是  原来如此
丶刀刀 (1511777)
因为我还没看讲义
清新/xin陽光 (463216947)
不必害怕
清新/xin陽光 (463216947)
其实很简单
清新/xin陽光 (463216947)
http://www.pediy.com/tools/Debuggers/ollydbg/OllyICE.rar
清新/xin陽光 (463216947)
在的同学 请去这里 下载OD
gvista (328208438)

331878347 (331878347)
我看懂了一个地方,第4页那个小C程序,唉……
丶刀刀 (1511777)
还有C? 完了
gvista (328208438)
老师 有毒啊
丶刀刀 (1511777)
没毒 啊
清新/xin陽光 (463216947)
那个 地址
清新/xin陽光 (463216947)
那个 貌似是误报
gvista (328208438)
解压缩时 瑞星报毒
331878347 (331878347)
暂时还没报,,,
清新/xin陽光 (463216947)
貌似是误报
清新/xin陽光 (463216947
不过清除掉 也没影响
丶刀刀 (1511777)

 附件: 您所在的用户组无法下载或查看附件
丶刀刀 (1511777)
哦,好的
gvista (328208438)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光 (463216947)
一个插件 没事
清新/xin陽光 (463216947)
清除掉 没有影响
gvista (328208438)
是吗 还是个rootkit
清新/xin陽光 (463216947)
可能是误报
gvista (328208438)
清除掉 是不是功能上受影响
丶刀刀 (1511777)
哦 ,好的 go on
清新/xin陽光 (463216947)
我传个小程序上去
清新/xin陽光 (463216947)
2009-08-01 20:24:50
http://bbs.ikaka.com/showtopic-8649874-3.aspx
清新/xin陽光 (463216947)
25楼
清新/xin陽光 (463216947)
需要用到的程序
清新/xin陽光 (463216947)
这个程序 就是 讲义中第一个 例子代码
331878347 (331878347)
哦,明白了
清新/xin陽光 (463216947)
下载后 拖到OD里面
gvista (328208438)
是在cmd下运行吗 那小程序
gvista (328208438)
哦 行了
331878347 (331878347)
天书。。。
gvista (328208438)
不错有意思 OD很强大
清新/xin陽光 (463216947)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光 (463216947)
开始的代码是这个吧
gvista (328208438)

xiaomajia52/猪头 (28365585)
这个不是VC程序么?
清新/xin陽光 (463216947)
对于 VC等编的 程序
清新/xin陽光 (463216947)
都有一些 库代码
清新/xin陽光 (463216947)
我们上来看到的是库代码
331878347 (331878347)
有点像UE
331878347 (331878347)

清新/xin陽光 (463216947)
而是 VC等编译器 自动生成的
清新/xin陽光 (463216947)
生成的 代码 是相同的
331878347 (331878347)
老师,我们该咋办,下一步?对照起来看讲义?
清新/xin陽光 (463216947)
==
清新/xin陽光 (463216947)
我们不必去 研究它
清新/xin陽光 (463216947)
对于VC
清新/xin陽光 (463216947)
可能是这样的情况
清新/xin陽光 (463216947)
push ebpmov ebp,esp....Call Getversion...CallGetCommandLineA...CallGetStartupInfoA..
清新/xin陽光 (463216947)
这些语句 一般对我们来讲是没有用的
清新/xin陽光 (463216947)
是编译器自动生成
清新/xin陽光 (463216947)
我们要看的是自己编译的 函数代码
清新/xin陽光 (463216947)
对于 我们的例子
清新/xin陽光 (463216947)
就是这句
清新/xin陽光 (463216947)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光 (463216947)
请 在这条语句上 按F4
331878347 (331878347)
嗯,然后呢
清新/xin陽光 (463216947)
然后 按 F7
丶刀刀 (1511777)
老师,我的怎么和你的不一样
丶刀刀 (1511777)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光 (463216947
地址可能不同
清新/xin陽光 (463216947)
你那个 往下翻
清新/xin陽光 (463216947
这还是库代码
丶刀刀 (1511777

清新/xin陽光

 附件: 您所在的用户组无法下载或查看附件


清新/xin陽光 (463216947)
2009-08-01 20:35:57
可以照猫画虎
清新/xin陽光
没事
331878347
按错了,那个F4
 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
找错了 点 上面这个
清新/xin陽光
程序会重新载入
331878347
然后可以找到正确的按F4,F7吗?
清新/xin陽光
找到我那条语句
清新/xin陽光
鼠标指向那
清新/xin陽光
按f4
清新/xin陽光
然后按f7
清新/xin陽光

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
按完F7是这样的
清新/xin陽光
有人找到了么
丶刀刀

清新/xin陽光

清新/xin陽光
这是个jmp语句
清新/xin陽光
jmp 就是jump
清新/xin陽光
跳转
清新/xin陽光
那么 他就要跳转到 00401090那
清新/xin陽光 (46321694
我这是这样的
清新/xin陽光 (463216947)
你们的不一定相同
清新/xin陽光 (463216947)
按F8
丶刀刀 (1511777)
一致
gvista (328208438)
jmp区分短跳转和长跳转吗
清新/xin陽光
会跳转到 那个地址上
清新/xin陽光 (463216947)

清新/xin陽光 (463216947)
有短跳 和长跳
gvista
那这是jmp?

用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618; 360SE)
最后编辑零度的穷浪漫 最后编辑于 2009-08-02 15:13:32
分享到:
gototop
 

回复:8月1日上课QQ群记录整理

清新/xin陽光
(463216947
F8
丶刀刀
(1511777)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
调到 他想跳转的地方

push ebp
mov ebp ,esp
清新/xin陽光
(463216947)
这个 应该经常能碰到
清新/xin陽光

大家看右下角

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
右下角 是 栈区
清新/xin陽光
(463216947)
栈 可以用来存放函数的 局部变量 还有参数等等
清新/xin陽光
(463216947)
ebp 代表的 是 最上面的栈的栈底
gvista
(328208438)
左下角是内存地址吗?
清新/xin陽光
(463216947)
esp代表的是栈顶
清新/xin陽光
(463216947)
左下角就是 数据
内存中的数据
gvista
(328208438)

清新/xin陽光
(463216947)
push ebp 是把上一个栈的栈底 压到栈里面保存
清新/xin陽光
(463216947)
mov ebp,esp
清新/xin陽光
(463216947)
把 新栈底 和栈顶 "对齐"
清新/xin陽光
(463216947)
然后通常是一个sup esp,xxx
清新/xin陽光
(463216947)
此时 大家注意观察
清新/xin陽光
(463216947)
栈顶 会向上 移的
清新/xin陽光
(463216947)
那么 这就是为新的函数开辟的新栈区
清新/xin陽光
(463216947)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
这三句话
可以 按F8
单步跟踪
清新/xin陽光
(463216947)
然后观察 栈区的变化
丶刀刀
(1511777)
sub
清新/xin陽光
(463216947)
ebp esp之间 是 当前函数使用的栈
331878347
(331878347)
这样了
清新/xin陽光
(463216947)
这俩寄存器的 值也可以看
 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
右上角
331878347
(331878347)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
寄存器
清新/xin陽光
(463216947)
再往下
清新/xin陽光
(463216947)
注意 右下角 栈区变化
清新/xin陽光
(463216947)
具体的可以看 讲义
丶刀刀
(1511777)
是!
清新/xin陽光
(463216947)
这点 总结起来 就是 为新函数开辟一个栈区
331878347
(331878347)

清新/xin陽光
(463216947)
以便新函数 存储局部变量用
清新/xin陽光
(463216947)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
现在 大家 走到这
丶刀刀
(1511777)
跟上...
清新/xin陽光
(463216947)
别跟先
清新/xin陽光
(463216947)
现在 看

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
左边的这个地址
我这是004010DF
清新/xin陽光
(463216947)
大家想
如果 程序执行到这个 call里面了
清新/xin陽光
(463216947)
也就是一个子函数里面
清新/xin陽光
(463216947)
那么 他出来之后 会执行哪句呢
很明显 是他的下一句)
004010E4
清新/xin陽光
(463216947)
那么 程序 又怎么记住他 执行完那个call里面的指令后 应该走到哪呢
清新/xin陽光
(463216947)
现在都 记下 这个call的地址
和 他的下一句地址
尤其是下一句地址
然后 按F7
、并马上观察栈区的栈顶
看大家有什么发现
清新/xin陽光
(463216947)
有谁有结果了
丶刀刀
(1511777)
右下角是战区?
清新/xin陽光
(463216947)

丶刀刀
(1511777)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)
跟进 那个call 了么
331878347
(331878347)
为什么我不同
331878347
(331878347)

 附件: 您所在的用户组无法下载或查看附件
清新/xin陽光
(463216947)

看来没有人找到
清新/xin陽光
(463216947)
call的同时
会把 下一句语句的 地址入栈
可以随便找一个call指令
清新/xin陽光 (463216947)
然后 按F4执行到那
记下 call指令下面的 那个语句的地址
再 按F7
331878347 (331878347)
哦,试试
清新/xin陽光 (463216947)
你们会发现那个地址 入栈了
学飞的龙 (693458993)
听明白了,没跟上,我也试试
清新/xin陽光 (463216947)
在函数执行完后
会 从这个 地方
取回 要返回的地址
返回到call之前的 语句的下一条语句
这样程序得以继续运行
331878347
(331878347)
哦,这样子哈,看懂一些了
清新/xin陽光
(463216947)
那么 就存在一个问题了
我刚才说了
栈区 是放局部变量的
比如某个程序
让用户 输入密码
并对密码进行校验
那么 用户输入的这些 数据
都会被 存到栈里面
如果 对用户输入的数据
如果 对用户输入的数据长度不进行检查
那么 就有可能 突破 我们给的栈的范围
继而 淹没 刚才入栈的ebp(push ebp)
甚至是 函数的返回地址
这就是栈溢出
如果淹没了返回地址
那么函数返回了
就会跳转到 一个 可能不存在的地址中
这样程序就崩溃了
或者 我们可以精心设计 一个 返回地址
让 函数 返回的时候 跳转到我们的指令上去
这就是 很多 软件漏洞的原因
331878347
(331878347)
哦~~~这样,
清新/xin陽光
(463216947)
大家可以 根据讲义 边调试 边 研究
学飞的龙
(693458993)
那设置返回地址的时候,可以跳转到程序出错前运行的地方吗
清新/xin陽光
(463216947)
我要说的说完了
清新/xin陽光
(463216947)
如果 我把返回地址 淹没了
丶刀刀
(1511777)
故意跳到我们的指令上去?
清新/xin陽光
(463216947)
那么 肯定 跳不回之前的地址了
学飞的龙
(693458993)
哦,淹没了,就找不到了
清新/xin陽光
(463216947)

丶刀刀
(1511777)
那设置一个安全的返回地址好了不
清新/xin陽光
(463216947)
有的 编译器
清新/xin陽光
(463216947)
会 对这个返回地址进行校验
清新/xin陽光
(463216947)
避免这种情况发生
丶刀刀
(1511777)
让他跳回我们的指令上,就OK?
丶刀刀
(1511777)
O
清新/xin陽光
(463216947)
只要 程序有这个漏洞
学飞的龙
(693458993)
好的,谢谢老师,等老师走了再下去调试
最后编辑零度的穷浪漫 最后编辑于 2009-08-02 15:14:25
gototop
 

回复:8月1日上课QQ群记录整理

辛苦了
gototop
 

回复:8月1日上课QQ群记录整理

嗯~谢谢了
gototop
 

回复:8月1日上课QQ群记录整理

好人啊!!
gototop
 

回复:8月1日上课QQ群记录整理

    昨天出去吃饭回来晚了 错过了现场。。好可惜  复习中
gototop
 

回复:8月1日上课QQ群记录整理

说。。。我自打上次没发现短信,错过了酷卡叫我加群的事情,后来给酷卡发送几次请求都石沉大海,还有哦,这次的作业公布在哪???看到有人交,我没找到啊
gototop
 

回复: 8月1日上课QQ群记录整理



引用:
原帖由 Alice418 于 2009-8-2 18:15:00 发表
说。。。我自打上次没发现短信,错过了酷卡叫我加群的事情,后来给酷卡发送几次请求都石沉大海,还有哦,这次的作业公布在哪???看到有人交,我没找到啊

作业已打包传到群共享里去了
没加群的话
http://bbs.ikaka.com/showtopic-8650441.aspx这个帖子是作业
gototop
 

回复:8月1日上课QQ群记录整理

好人一个……!!!
我本来也想弄得,但是那个图片很痛苦,不知道咋个弄……
谢谢!!
身体发肤,受之父母,不敢毁伤,孝至始也。
立身行道,扬名於后世,以显父母,孝之终也。

Click here to my blog.Welcome!!!
gototop
 

回复:8月1日上课QQ群记录整理

我上榜了.....
gototop
 
12   1  /  2  页   跳转
页面顶部
Powered by Discuz!NT