第1章 99

Size: px
Start display at page:

Download "第1章 99"

Transcription

1 1.1 上机建立第一个工程 用 Visual Studio 创建工程 用 Visual Studio 查看汇编代码 简要复习常用的汇编指令 堆栈相关指令 数据传送指令 跳转与比较指令 C 函数的参数传递过程... 9

2 本书总是假设读者的 母语 是 C/C++ ( 是 Java 或者 PHP? 喔, 还是建议读者首先学习 C 语言 ) 由于 MSMicrosoft 并没有在 Windows 中附带所有的 C 代码, 因此读者遇到的很多将是汇编代码 实际上, 这些代码都是反汇编代码 那么理解汇编代码就成为当前最大的问题 汇编代码之所以看不懂, 除了汇编代码可读性本来就比较差之外, 更重要的一点原因是, 读者的母语是 C 语言 甚至会常常觉得, 自己虽然能看懂每一行指令, 却完全看不懂一段程序在做什么 但是实际上,Windows 的内核代码基本上都是由 C 语言代码编译而成的 这些生成的机器码, 再反汇编得到的汇编语言, 和 C 语言有着千丝万缕的联系 只要熟悉它们之间的对应关系, 像理解 C 语言一样理解反汇编代码, 就完全是可能的了 为了强化这种关系, 本书常常从汇编代码反写为 C 语言, 并称为反 C 何为软件反工程 ( 逆向工程 ) 反汇编与反 C 都是反工程 ( 又称逆向工程 ) 作为编程爱好者 程序员, 大多数人从事 软件工程 的工作 这种工作是从人类可以理解的高级语言编译为机器可以理解的机器码的过程 反工程则是相反的, 是从机器可以理解的机器码, 到人类可以理解的某种形式的过程 其目的在于, 通过别人出售的产品得到别人的工程技术 反工程往往被看作是旁门左道 因此在正式出版的计算机书籍中提及并不多, 可谓讳莫如深 ; 而破解者 黑客 病毒制造者则对此乐此不疲 反工程有专门的软件工具 知识体系, 许多 秘笈 在网络上流传 系统的反工程技术涉及从还原下层逻辑一直到大型软件的顶级架构 这些都不是本书的内容, 也不是作者有能力讲述的范围 本书仅仅利用逆向的最基础能力 : 阅读反汇编的代码, 以加深对 Windows 底层的理解, 增加读者解决下层 bug 的能力 有兴趣了解反工程的读者, 可以阅读 Reversing: 逆向工程解密 此书信息如下 : 英文名 :Reversing:Secrets of Reverse Engineering 中文名 :Reversing: 逆向工程解密作者 : Eldad Eilam;Elliot Chikofsky 译者 : 韩琪 杨艳等 3

3 天书夜读. 从汇编语言到 Windows 内核编程 出版社 : 电子工业出版社 不过, 回归主题, 建议读者还是先继续阅读本书, 继续做好 Windows 底层程序 员这份有前途的职业吧 1.1 上机建立第一个工程 一条指令可能有很多细节, 比如第二个操作数和第一个操作数中, 哪个只能是寄存器, 哪个不能用寄存器加立即数等 如果要用手写汇编语言来开发一个软件的话, 这些知识很重要 但是实际上, 现在需要的是用 C 语言或者更高级的语言进行开发, 只是需要理解一些没有 C 代码的部分 读者可以认为, 那些代码的汇编指令用法一定是正确的, 因为它们是编译器生成的 1.2 节 ( 简要复习常用的汇编指令 ) 将简要地回顾那些指令, 并保证这些回顾非常容易理解 用 Visual Studio 创建工程 建议读者的计算机中操作系统的版本最好是 Windows XP 或者更高的版本, 使用 Vista 问题也不大, 虽然可能操作细节和界面与本书描述的情况稍有不同 然后, 请安装某个版本的 Visual Studio, 推荐 Visual Studio 2003 或者更高的版本 下面的描述同时顾及 Visual Studio 2003 和 Visual Studio 2005 的情况, 语言版本为英文 下面的步骤将在 Visual Studio 上建立一个用于实验的工程 有经验的读者可以忽略下面的描述 打开 Microsoft Visual Studio 2005, 选择主菜单 File 选择子菜单 New 下面的 Project, 打开 New Project 对话框 左边选择 Visual C++,Win32; 右边选择 Win32 Console Application; 下面输入一个工程名, 然后单击 OK 按钮, 出现向导 一切都选择默认设置, 最后单击 Finish 按钮 此时新建立工程的主文件是一个扩展名为.cpp 的文件, 请将它改为扩展名为.c 的文件 4

4 Windows 底层代码基本上都是用 C 语言编写的, 研究 C 语言和汇编指令的关系是 本节的任务 为此, 这个文件必须改变为扩展名为.c 的文件, 这样 VC 才会自动以 C 语 言的方式进行编译 本书后面专门有一章的内容来研究 C++ 下的反汇编阅读 ( 第 5 章用 C++ 编写的内核程序 ) 如果读者使用的是 Visual Studio 2005, 直接在左边的 Solution Explorer 中用鼠 标右键单击文件 YourProjectName.cpp, 选择 Rename, 然后把.cpp 改为.c 即可 如果是更老的 Visual Studio 版本, 请单击右键,Remove 这个文件 然后在外面改 名, 再对工程单击右键, 选择 Add, 再选择 Exist Item, 追加进来 此时程序是这样的 : #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } 用 Visual Studio 查看汇编代码 C 语言程序对应的汇编代码, 可以在 VC 中非常清楚地显示出对应关系 但是并不 是所有的读者都知道如何调出汇编指令窗口 这个诀窍在下面描述 VC 必须处于调试状态才能看到汇编指令窗口 因此, 请在 return 0 一句上设置 一个断点 : 把光标移到那一行, 然后按下 F9 键设置一个断点 按下 F5 键调试程序 当程序停止在这一行的时候, 打开菜单 Debug 下的 Windows 子菜单, 选择 Disassembly 这样, 出现一个窗口, 显示下面的信息 : --- f:\root\work\any\t12\t12\t12.c -- // t12.cpp : Defines the entry point for the console application. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { push ebp mov ebp,esp sub esp,0c0h push ebx A push esi 5

5 天书夜读. 从汇编语言到 Windows 内核编程 B push edi C lea edi,[ebp-0c0h] mov ecx,30h mov eax,0cccccccch C rep stos dword ptr es:[edi] return 0; E xor eax,eax } pop edi pop esi pop ebx mov esp,ebp pop ebp ret 如果上面的内容完全看不懂, 也许读者需要复习一下汇编指令 以上的汇编指令数 量非常的少, 只需要了解 push mov sub lea stos xor pop ret, 就可以继续本书 的学习之旅了 所以请不用担心, 接下来就会熟悉这些代码 1.2 简要复习常用的汇编指令 堆栈相关指令 对指令的详细了解, 应该查阅 Intel 发布的指令手册 但是从头开始阅读那些手册是一件令人望而生畏的事情 读者暂时可以只初步了解, 忽略一些细节, 当实际用到的时候, 再具体查阅相关指令 push: 把一个 32 位的操作数压入堆栈中 这个操作导致 esp 被减 4 esp 被形象地称为栈顶 我们认为顶部是地址小的区域, 那么, 压入堆栈的数据越多, 这个堆栈也就越堆越高,esp 也就越来越小 在 32 位平台上,esp 每次减少 4( 字节 ) pop: 相反,esp 被加 4, 一个数据出栈 pop 的参数一般是一个寄存器, 栈顶的数据被弹出到这个寄存器中 一般不会吧把 sub add 这样的算术指令, 以及 call ret 这样的跳转指令归入堆栈相关指令中 但是实际上在函数参数传递过程中,sub 和 add 最常用来操作堆栈 ;call 和 ret 对堆栈也有影响 所以这里做特殊处理 6

6 sub: 减法 第一个参数是被减数所在的寄存器 ; 第二个参数是减数 ( 对应的还有 add 指令 ) add: 加法 ret: 返回 相当于跳转回调用函数的地方 ( 对应的 call 指令来调用函数, 返回到 call 之后的下一条指令 ) call: 调用函数 说到这里, 有必要详述一些指令对堆栈的影响 某些指令会 自动 地操作堆栈, 这就是 call 和 jmp 的不同之处 call 指令会把它的下一条指令的地址压入堆栈中, 然后跳转到它调用的函数的开头处 ; 而单纯的 jmp 是不会这样做的 同时,ret 会自动地弹出返回地址 call 的本质相当于 push+jmp ret 的本质相当于 pop+jmp 不但 push pop call 和 ret 会操作堆栈,sub 和 add 也可以用于操作堆栈 如果我要一次在堆栈中分配 4 个 4 字节长整型的空间, 那么没有必要 4 次调用 push, 很简单地把 esp 减去 4*4=16 即可 当然, 也可以同样地用 add 指令来恢复它 这常常用于分配函数局部变量空间, 因为 C 语言函数的局部变量保存在栈里 数据传送指令 mov: 数据移动 第一个参数是目的, 第二个参数是来源 在 C 语言中相当于赋值号 这是最广为人知的指令 xor: 异或 这虽然是逻辑运算的指令, 但是有趣的是,xor eax,eax 这样的操作常常用来代替 mov eax,0 好处是速度更快, 占用字节数更少 lea: 取得地址 ( 第二个参数 ) 后放入到前面的寄存器 ( 第一个参数 ) 中 见到 xor eax,eax, 应该马上明白这是清零操作 但是实际上, 有时候 lea 用来做和 mov 同样的事情, 比如赋值 看下面一条指令 : lea edi,[ebp-0cch] 方括弧表示存储器, 也就是 ebp-0cch 这个地址所指的存储器内容 但是 lea 要求取 7

7 天书夜读. 从汇编语言到 Windows 内核编程 [ebp-0cch] 的地址, 那么地址也就是 ebp-0cch, 这个地址将被放入到 edi 中 换句话说, 这等同于 : mov edi,ebp-0cch 但是以上 mov 指令是错误的, 因为 mov 不支持后一个操作数中加入一个减号 但是 lea 支持, 所以可以用 lea 来代替它 指令的操作数能采用的运算符号有非常复杂的限制 如果需要使用, 应该查询指令手册 为了讲解 stos, 下面解说前面提到的代码 : mov mov rep ecx,30h eax,0cccccccch stos dword ptr es:[edi] stos 是串存储指令, 它的功能是将 eax 中的数据放入 edi 所指的地址中, 同时,edi 会增加 4( 字节数 ) rep 使指令重复执行 ecx 中填写的次数 方括弧表示存储器, 这个地址实际上就是 edi 的内容所指向的地址 这里的 stos 其实对应的是 stosd, 其他还有 stosb stosw, 分别对应于处理 个字节, 这里对堆栈中 30h*4(0c0h) 个字节初始化为 0cch( 也就是 int 3 指令的机器码 ), 这样发生意外时执行堆栈里面的内容会引发调试中断 跳转与比较指令 部分跳转指令如下 jmp: 无条件跳转 这也是多年后我依然未忘记的少量指令之一 jg: 顾名思义, 大于的时候跳转 通常前面有一条比较指令 jl: 顾名思义, 小于的时候跳转 通常前面有一条比较指令 jge: 顾名思义, 大于等于的时候跳转 通常前面有一条比较指令 类似的指令还有一些, 这里就不介绍了 下面介绍一条比较指令 cmp: 顾名思义, 比较 往往是 jg jl jge 之类的条件跳转指令的执行条件 本书在这里只是为了满足阅读后面章节的需要, 简单地介绍了部分汇编指令, 一些 8

8 后面才会碰到的指令则在遇到时再专门提及 对于希望进一步学习汇编语言的读者, 我推荐 Windows 环境下的 32 位汇编语言程序设计 一书 这本书的信息如下 : 书名 :Windows 环境下的 32 位汇编语言程序设计作者 : 罗云彬出版社 : 电子工业出版社相对于复杂艰深的 Intel 指令手册, 此书会比较容易入手 1.3 C 函数的参数传递过程 基础知识 函数调用的本质将在这里得到阐明 首先请读者理解堆栈的操作 函数和堆栈的关系密切, 这是因为 :C 语言程序通过堆栈把参数从函数外部传入到函数内部 此外, 在堆栈中划分区域来容纳函数的内部变量 调用 push 和 pop 指令的时候, 寄存器 esp 用于指向栈顶的位置 栈顶总是栈中地址最小的位置 push 执行的结果,esp 总是减少,pop 则增加 对于 C 程序默认的调用方式, 堆栈总是调用方把参数反序 ( 从右到左 ) 地压入堆栈中, 被调用方把堆栈复原 ( 这些我们会在后面见到 ) 这些参数对齐到机器字长,16 位 32 位 64 位 CPU 下分别对齐到 个字节 这种调用是 C 编译器默认的 C 方式 函数调用规则 在一个编写高级语言的程序员的观念中, 函数 ( 或者没有返回值的过程 ) 是必不可少的基础单元 C 语言的程序完全由函数构成, 所有的代码都在某一个函数中 Pascal 区分函数和过程, 但是本质依然是类似的 对计算机硬件而言, 这种区分毫无必要, 因为 CPU 只关心一条一条的指令, 并不关心它们是以怎样的结构组织的 call 指令和 ret 指令只是为了调用的方便而已, 绝不是函数存在的绝对证据 即使我们仅仅使用 jmp 并自己操作堆栈, 也一样可以实现函数的功能 因此, 一种高级语言如何实现函数调用, 并没有法律的约束, 所以出现了各种不同的函数调用规则 9

9 天书夜读. 从汇编语言到 Windows 内核编程 但是毫无疑问, 如果一个第三方提供的函数要能被使用, 那么必须有约定的函数调用规则 函数调用规则指的是调用者和被调用函数间传递参数及返回参数的方法, 在 Windows 上, 常用的有 Pascal 方式 WINAPI 方式 (_stdcall) C 方式 (_cdecl) _cdecl C 调用规则 : (1) 参数从右到左进入堆栈 ; (2) 在函数返回后, 调用者要负责清除堆栈, 所以这种调用常会生成较大的可执行程序 _stdcall 又称为 WINAPI, 其调用规则 : (1) 参数从右到左进入堆栈 ; (2) 被调用的函数在返回前自行清理堆栈, 所以生成的代码比 cdecl 小 Pascal 调用规则 : Pascal 调用规则主要用在 Win16 函数库中, 现在基本不用 (1) 参数从左到右进入堆栈 ; (2) 被调用的函数在返回前自行清理堆栈 (3) 不支持可变参数的函数调用 此外, 在 Windows 内核中还常见有快速调用方式 (_fastcall); 在 C++ 编译的代码中有 this call 方式 (_thiscall) 这些会在后面的章节中详细阐明 技术细节 在用 C 语言所写的程序中, 堆栈用于传递函数参数 写一个简单的函数如下 : void myfunction(int a,int b) { int c = a+b; } 这是标准的 C 函数调用方式 其过程是 : 调用者把参数反序地压入堆栈中 10

10 调用函数 调用者把堆栈清理复原 这就是 C 编译器默认的 _cdecl 方式, 而 Windows API 一般采用的 _stdcall 则是被调用者恢复堆栈 ( 可变参数函数调用除外 ) 至于返回值都是写入 eax 中, 然后返回的 在 Windows 中, 不管哪种调用方式都是返回值放在 eax 中, 然后返回 外部 从 eax 中得到返回值 _cdecl 方式下被调用函数需要做以下一些事情 (1) 保存 ebp ebp 总是被我们用来保存这个函数执行之前的 esp 的值 执行完毕 之后, 我们用 ebp 恢复 esp; 同时, 调用此函数的上层函数也用 ebp 做同样的事情 所 以先把 ebp 压入堆栈, 返回之前弹出, 避免 ebp 被我们改动 (2) 保存 esp 到 ebp 中 上面两步的代码如下 : ; 保存 ebp, 并把 esp 放入 ebp 中, 此时 ebp 与 esp 同 ; 都是这次函数调用时的栈顶 push ebp mov ebp,esp (3) 在堆栈中腾出一个区域用来保存局部变量, 这就是常说的所谓局部变量是保存 在栈空间中的 方法是 : 把 esp 减少一个数值, 这样就等于压入了一堆变量 要恢复时, 只要把 esp 恢复成 ebp 中保存的数据就可以了 (4) 保存 ebx esi edi 到堆栈中, 函数调用完后恢复 对应的代码如下 : ; 把 esp 往下移动一个范围, 等于在堆栈中放出一片新 ; 的空间用来存局部变量 sub esp,0cch push ebx ; 下面保存三个寄存器 :ebx esi edi push esi push edi (5) 把局部变量区域初始化成全 0cccccccch 0cch 实际是 int 3 指令的机器码, 这 是一个断点中断指令 因为局部变量不可能被执行, 如果执行了, 必然程序有错, 这时 11

11 天书夜读. 从汇编语言到 Windows 内核编程 发生中断来提示开发者 这是 VC 编译 Debug 版本的特有操作 相关代码如下 : lea edi,[ebp-0cch] ; 本来是要 mov edi,ebp-0cch, 但是 mov 不支持 - 操作 ; 所以对 ebp-0cch 取内容, 而 lea 把内容的地址, 也就 ; 是 ebp-0cch 加载到 edi 中 目的是把保存局部变量 ; 的区域 ( 从 ebp-0cch 开始的区域 ) 初始化成全 ; 部 0cccccccch mov ecx,33h mov eax,0cccccccch rep stos dword ptr [edi] ; 串写入 (6) 然后做函数里应该做的事情 参数的获取是 ebp+8 字节为第一个参数,ebp+12 为第二个参数, 依次增加 ebp+4 字节处是要返回的地址 (7) 恢复 ebx esi edi esp ebp, 最后返回 代码如下 : pop edi pop esi pop ebx mov esp,ebp pop ebp ret ; 恢复 edi esi ebx ; 恢复原来的 ebp 和 esp, 让上一个调 ; 用的函数正常使用 为了简单起见, 我的函数没有返回值 如果要返回值, 函数应该在返回之前, 把返 回值放入 eax 中 外部通过 eax 得到返回值 代码分析 用 VC 2003 编译 Debug 版本, 完整的反汇编代码如下 : void myfunction(int a,int b) { push ebp ; 保存 ebp, 并把 esp 放入 ebp 中 此时 ebp 与 esp 同 mov ebp,esp ; 都是这次函数调用时的栈顶 sub esp,0cch ; 把 esp 往上移动一个范围, 等于在堆栈中放出一片新 ; 的空间用来存储局部变量 push ebx ; 下面保存三个寄存器 :ebx esi edi push esi push edi lea edi,[ebp-0cch] ; 本来是要 mov edi,ebp-0cch, 但是 mov 不支持 ; - 操作, 所以对 ebp-0cch 取内容, 而 lea 把内容 ; 的地址, 也就是 ebp-0cch 加载到 edi 中 目的是 ; 把保存局部变量的区域 ( 从 ebp-0cch 开始的区域 ) 12

12 ; 初始化成全部 0cccccccch mov ecx,33h mov eax,0cccccccch rep stos dword ptr [edi] ; 写入 0cch 指令 ( 中断 ) int c = a+b; mov eax,dword ptr [a] ; 简单的相加操作 这里从堆栈中取得从外部 ; 传入的参数 那么,a 和 b 到底是怎么取得的呢 add eax,dword ptr[b] ; 通过 ida 反汇 ; 编可以看到, 其实这两条指令是 ;mov eax, [ebp+8],add eax, [ebp+0ch] ; 参数是通过 ebp 从堆栈中取得的 这里看到 ; 的是 VC 调试器的显示结果, 为了阅读方 ; 便, 直接加上了参数名 mov dword ptr[c],eax } pop edi ; 恢复 edi esi ebx pop esi pop ebx mov esp,ebp pop ebp ret 主程序中对这个函数的调用方式是 : ; 恢复原来的 ebp 和 esp, 让上一个调用的函数 ; 正常使用 mov eax,dword ptr[b] push eax mov ecx,dword ptr[a] push ecx call myfunction add esp,8 ; 把 b a 两个参数压入堆栈 ; 调用函数 myfunction ; 恢复堆栈 这样一来, 函数调用的过程就很清楚了 在下一章开始, 进一步介绍各种各样的 C 语言程序, 变成了怎样的汇编指令 重点观察那些涉及 call ret push 和 pop, 操作 ebp 和 esp 的指令, 就能看 到 C 语言函数的调用过程 13

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

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

DbgPrint 函数流程分析

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

More information

Guava学习之Resources

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

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

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== 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

保母人員丙級應檢資料第二部份 doc

保母人員丙級應檢資料第二部份 doc 15400903018 9 09 15 95 01 10 95 11 16 ...-3...4-9... 10...11-1...13-16...17-54... 55...56-64 1 5 3 154-90301154-9030 1 1 3 1 4 60 1 180 L 5 1 6 1 7 1 8 1 9 90 70 1 10 1 11 1 1 1 13 1 14 1 15 1 16 1 17

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

漏 洞 攻 防 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

bingdian001.com

bingdian001.com 1. DLL(Dynamic Linkable Library) DLL ± lib EXE DLL DLL EXE EXE ± EXE DLL 1 DLL DLL DLL Windows DLL Windows API Visual Basic Visual C++ Delphi 2 Windows system32 kernel32.dll user32.dll gdi32.dll windows

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

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

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

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

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

Microsoft Word - 119002_Java_術科 .doc

Microsoft Word - 119002_Java_術科 .doc 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 人 參 考 資 料 (Java) 試 題 編 號 :11900-1000201~3 審 定 日 期 :100 年 6 月 28 日 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 人 參 考 資 料 目 錄 ( 第 二 部 分 ) 壹 電 腦 軟 體 設 計 乙 級 技 術 士 技

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

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

<4D F736F F D20CEC4BCFEBCB6B6F1D2E2B4FAC2EBC9A8C3E8D2FDC7E6D6D0B5C4BCD3BFC7CAB6B1F0BCBCCAF52E646F6378>

<4D F736F F D20CEC4BCFEBCB6B6F1D2E2B4FAC2EBC9A8C3E8D2FDC7E6D6D0B5C4BCD3BFC7CAB6B1F0BCBCCAF52E646F6378> 文件级恶意代码扫描引擎中的加壳识别技术 安天实验室 Swordlea 2003 年 12 月 25 日 在文件级恶意代码扫描引擎的设计与实现过程中, 加壳后样本的特征选取和识别是较为棘手的问题 恶意代码的制作者为了使其作品传播更广, 往往使用软件加壳的方式 样本被加壳以后, 其原有特征码被变形或彻底隐藏, 在一定程度中增加了样本分析与识别的难度 目前反病毒公司在对加壳后样本的处理上一般采用以下几种方式

More information

untitled

untitled MPICH anzhulin@sohu.com 1 MPICH for Microsoft Windows 1.1 MPICH for Microsoft Windows Windows NT4/2000/XP Professional Server Windows 95/98 TCP/IP MPICH MS VC++ 6.x MS VC++.NET Compaq Visual Fortran 6.x

More information

易语言逆向分析

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

More information

序 软 件 工 程 思 想 林 锐 序 软 件 工 程 思 想 讲 述 软 件 开 发 和 做 程 序 员 的 道 理, 视 野 独 特, 构 思 新 颖, 内 容 风 趣, 不 落 窠 臼, 令 人 耳 目 一 新 堪 称 难 得, 以 至 回 味 无 穷 作 者 从 事 了 八 年 的 软 件 开 发 工 作, 在 他 的 博 士 学 位 论 文 完 成 之 际 写 下 了 这 本 心 之 所 感

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

ARM中C和汇编混合编程及示例.doc

ARM中C和汇编混合编程及示例.doc ARM 中 C 和汇编混合编程及示例 在嵌入式系统开发中, 目前使用的主要编程语言是 C 和汇编,C++ 已经有相应的编译器, 但是现在使用还是比较少的 在稍大规模的嵌入式软件中, 例如含有 OS, 大部分的代码都是用 C 编写的, 主要是因为 C 语言的结构比较好, 便于人的理解, 而且有大量的支持库 尽管如此, 很多地方还是要用到汇编语言, 例如开机时硬件系统的初始化, 包括 CPU 状态的设定,

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

学习MSP430单片机推荐参考书

学习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

More information

书名 : 作 者 : 出版社 : 出版 :

书名 : 作 者 : 出版社 : 出版 : 书名 : 作 者 : 出版社 : 出版 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

More information

书名 : 作 者 : 出版社 : 出版 :

书名 : 作 者 : 出版社 : 出版 : 书名 : 作 者 : 出版社 : 出版 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

More information

书名 : 作 者 : 出版社 : 出版 :

书名 : 作 者 : 出版社 : 出版 : 书名 : 作 者 : 出版社 : 出版 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

More information

教育部高等学校教学

教育部高等学校教学 i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2007 2008 2009 13 2007 50 98 6 38 1 13 8 1 2 20 8 3 1000 2010 1000 13 13 1 20 80 1984 25 8 21 2 1 1 26 1 5 1 3 2 1987 4.5 2 9.5 13.5 3 1 2 1990 9 3 22

More information

ebook50-15

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

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

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

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

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

42 2141601026 2016 11 27 2 1.1............................................. 2 1.2....................................... 2 1.2.1......................................... 2 1.3.............................................

More information

Microsoft Word - 13院21号.doc

Microsoft Word - 13院21号.doc 川 教 考 院 2013 21 号 四 川 省 教 育 考 试 院 关 于 全 国 计 算 机 等 级 考 试 体 系 调 整 的 通 知 各 NCRE 考 点 : 为 进 一 步 适 应 新 时 期 计 算 机 应 用 技 术 的 发 展 和 人 才 市 场 需 求 的 变 化, 确 保 全 国 计 算 机 等 级 考 试 ( 以 下 简 称 NCRE) 健 康 持 续 发 展, 教 育 部 考

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

Microsoft Word - “调戏”反遭“反调戏”—记Visual Toolbar 的破解过程.doc

Microsoft Word - “调戏”反遭“反调戏”—记Visual Toolbar 的破解过程.doc 调戏 反遭 反调戏 记 Visual Toolbar 的破解过程 cntrump 由于要做工具栏, 在网上找到了 Visual Toolbar 这个工具, 看了介绍挺不错的, 下载回 来之后发现软件要注册, 但是这是个 04 年的软件, 已经没法向作者购买了, 更重要的原因 是俺还在失业中, 吃饭都成问题了, 哪里还有钱注册呀 ~~ 用 PEID 检测是 UPX 的老壳, 直接手脱, 过程不是重点反正能脱壳就行了

More information

<4D6963726F736F667420576F7264202D203135343030AB4FA5C0A448ADFBA4FEAFC5C0B3C0CBB8EAAEC6B2C4A447B3A1A5F73938303230362E646F63>

<4D6963726F736F667420576F7264202D203135343030AB4FA5C0A448ADFBA4FEAFC5C0B3C0CBB8EAAEC6B2C4A447B3A1A5F73938303230362E646F63> 保 母 人 員 單 一 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 參 考 資 料 試 題 編 號 :15400-960401~8 審 定 日 期 :96 年 11 月 30 日 修 訂 日 期 :97 年 1 月 31 日 98 年 0 月 06 日 保 母 人 員 單 一 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 參 考 資 料 第 二 部 份 壹 保 母 人 員 技

More information

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63>

<4D F736F F D20CAB5D1E BACDBBE3B1E0D3EFD1D4B5C4BBECBACFB1E0B3CCCAB5D1E92E646F63> 1 实验目的 实验 2 C 和汇编语言的混合编程实验 学习在 C 程序中使用嵌入式汇编编写程序 了解嵌入式汇编的格式 语言特点 2 实验设备 S3C2410 开发板 ADS1.2 集成开发环境,JTAG 调试器 串口连接线 3 实验原理 在 ARM 的应用开发中,C 语言功能强大且容易编写程序, 但是汇编程序在底层的操作仍然具有 C 程序无法替代的功能, 有时候我们需要在 C 程序中嵌入汇编程序来完成一些直接对底层的诸如寄存器的操作

More information

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ] 作者 : 利尔达 MSP430 系列单片机的指令系统 1 CPU 内核组成 : 16 位的 (ALU) 算术运算单元 16 个寄存器 (PC SP SR R4~R15) 指令控制单元 2 存储器组织结构 3 外围模块寄存器地址 它们被分配在相应的字模块或字节模块当中 分配在 00-FFH 中为字节, 分配在 100-1FFH 中为字 4 寻址模式 : 5 指令格式 : 1) 书写格式标号指令助记符源操作数,

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

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

378高雄市都市計畫說明書

378高雄市都市計畫說明書 378 高 雄 市 都 市 計 畫 說 明 書 案 名 : 變 更 高 雄 市 楠 梓 區 高 楠 段 二 七 九 地 號 等 八 筆 農 業 區 土 地 為 批 發 市 場 用 地 擬 定 申 請 單 位 : 高 雄 市 政 府 計 畫 範 圍 : 如 圖 示 法 令 依 據 : 都 市 計 畫 法 第 二 十 七 條 第 一 項 第 四 款 一 背 景 說 明 : ( 一 ) 本 市 現 有 果

More information

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

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

More information

一 学 校 基 本 情 况 目 录 二 部 门 预 算 报 表 ( 一 ) 收 支 总 表 ( 二 ) 收 入 总 表 ( 三 ) 支 出 总 表 ( 四 ) 财 政 拨 款 支 出 表 三 部 门 预 算 报 表 说 明 ( 一 ) 收 支 总 表 说 明 ( 二 ) 收 入 总 表 说 明 (

一 学 校 基 本 情 况 目 录 二 部 门 预 算 报 表 ( 一 ) 收 支 总 表 ( 二 ) 收 入 总 表 ( 三 ) 支 出 总 表 ( 四 ) 财 政 拨 款 支 出 表 三 部 门 预 算 报 表 说 明 ( 一 ) 收 支 总 表 说 明 ( 二 ) 收 入 总 表 说 明 ( 浙 江 大 学 2016 年 部 门 预 算 2016 年 5 月 1 一 学 校 基 本 情 况 目 录 二 部 门 预 算 报 表 ( 一 ) 收 支 总 表 ( 二 ) 收 入 总 表 ( 三 ) 支 出 总 表 ( 四 ) 财 政 拨 款 支 出 表 三 部 门 预 算 报 表 说 明 ( 一 ) 收 支 总 表 说 明 ( 二 ) 收 入 总 表 说 明 ( 三 ) 支 出 总 表 说 明

More information

目 录 一 学 校 基 本 情 况 二 2016 年 预 算 报 表 ( 一 ) 中 南 大 学 收 支 预 算 总 表 ( 二 ) 中 南 大 学 收 入 预 算 表 ( 三 ) 中 南 大 学 支 出 预 算 表 ( 四 ) 中 南 大 学 财 政 拨 款 支 出 预 算 表 三 2016 年

目 录 一 学 校 基 本 情 况 二 2016 年 预 算 报 表 ( 一 ) 中 南 大 学 收 支 预 算 总 表 ( 二 ) 中 南 大 学 收 入 预 算 表 ( 三 ) 中 南 大 学 支 出 预 算 表 ( 四 ) 中 南 大 学 财 政 拨 款 支 出 预 算 表 三 2016 年 中 南 大 学 2016 年 部 门 预 算 二 一 六 年 五 月 1 目 录 一 学 校 基 本 情 况 二 2016 年 预 算 报 表 ( 一 ) 中 南 大 学 收 支 预 算 总 表 ( 二 ) 中 南 大 学 收 入 预 算 表 ( 三 ) 中 南 大 学 支 出 预 算 表 ( 四 ) 中 南 大 学 财 政 拨 款 支 出 预 算 表 三 2016 年 预 算 情 况 说 明 (

More information

信息参考

信息参考 内 部 资 料 注 意 保 密 信 息 参 考 2016 年 第 1 期 ( 总 第 26 期 ) 党 政 办 公 室 编 2016 年 2 月 29 日 工 作 要 点 教 育 部 2016 年 工 作 要 点 (1) 中 共 北 京 市 委 教 育 工 作 委 员 会 北 京 市 教 育 委 员 会 北 京 市 人 民 政 府 教 育 督 导 室 2015 年 工 作 要 点 (10) 中 共

More information

Microsoft Word - 15dbtb007

Microsoft Word - 15dbtb007 第 7 期 中 共 浙 江 大 学 委 员 会 办 公 室 2015 年 12 月 16 日 按 :2015 年 12 月 15 日, 学 校 召 开 了 2015 年 党 建 工 作 会 议, 党 委 书 记 金 德 水 同 志 作 出 重 要 讲 话, 深 刻 分 析 了 学 校 改 革 发 展 面 临 的 形 势, 对 加 强 和 改 进 学 校 党 的 建 设 进 行 了 部 署, 对 充

More information

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

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

More information

Microsoft Word - em78 sub program.doc

Microsoft Word - em78 sub program.doc 一 二进制数转换为 ASCⅡ 码 将一个字节的二进制数转换为两位 16 进制数的 ASCⅡ 码 main: mov a,@0x9f ; 二进制数为 0x9f mov 0x30,a ; 二进制数存入 0x30 mov a,@0x02 mov 0x10,a ;0x10 中存放转换次数 mov a,@0x31 mov 0x04,a ;0x04 中为转换后数据存放地址 mov a,0x30 B1: ; 取

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

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

母親節-「寶貝進廚房,孝心早餐輕鬆做」

母親節-「寶貝進廚房,孝心早餐輕鬆做」 101 年 母 親 節 - 寶 貝 進 廚 房, 孝 心 早 餐 輕 鬆 做 比 賽 就 讀 學 校 : 復 興 國 小 五 年 11 班 姓 名 : 葉 玟 廷 聯 絡 人 : 葉 佳 聖 林 苑 暉 作 品 名 稱 :Tiffany 幸 福 早 點 來 四 ~ 六 年 級 食 譜 設 計 比 賽 第 1 名 寫 出 感 謝 媽 媽 的 幾 句 話 :( 約 50 字 ) 謝 謝 媽 媽 每 天

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

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

,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

More information

程序 linux/include/linux/math_emu.h 1 /* 2 * linux/include/linux/math_emu.h 3 * 4 * (C) 1991 Linus Torvalds 5 */ 6 #ifndef _LINUX_MATH_EMU_H 7 #de

程序 linux/include/linux/math_emu.h 1 /* 2 * linux/include/linux/math_emu.h 3 * 4 * (C) 1991 Linus Torvalds 5 */ 6 #ifndef _LINUX_MATH_EMU_H 7 #de 程序 14-24 linux/include/linux/math_emu.h 1 /* 2 * linux/include/linux/math_emu.h 3 * 4 * (C) 1991 Linus Torvalds 5 */ 6 #ifndef _LINUX_MATH_EMU_H 7 #define _LINUX_MATH_EMU_H 8 9 #include

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................

More information

幻灯片 1

幻灯片 1 字符串处理是指对一系列的字母或数字的代码进行相同功能的处理 计算机中字符代码一般都采用 ASCII 码, 每个字符的代码占一个字节, 一组字符串存放在一个连续的存储区中 存放在连续的存储区中的这组字符串, 可看为一个数据块 为了提高对字符串 ( 或数据块 ) 的处理效率,8086/8088 指令系统中专门提供了一组对字符串处理的指令, 这些指令包括 : 字符串传送指令 (MOVS) 字符串比较指令

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

Microsoft PowerPoint - lec11 [兼容模式]

Microsoft PowerPoint - lec11 [兼容模式] 代码生成 代码生成 代码生成的输入 - 各种中间代码形式 目标代码与目标机器模型 简单的代码生成器 基本块 DAG 图及代码生成 目标代码 绝对地址目标代码 可重定位的目标 - linker/loader 汇编代码 - assembler 目标机器模型 指令形式 op 源, 目的 寻址模式 - 绝对地址 :op M, R R op (M) R - 寄存器 :op R1,R2 R2 op R1 R2

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

使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他

使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他 使用 Eclipse 开发 Java EE 应用 (Web 应用 ) 这里以开发一个简单的 Web 应用为例, 介绍使用 Eclipse 开发 Java EE 应用的一般步 骤 此处使用的 Eclipse 是 Eclipse IDE for Java EE Developers; 如果是使用的其他 Eclipse 插件 ( 比如 MyEclipse 插件 ), 其开发方式和步骤可能略有差异和不同 在该例中,

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

0000001

0000001 烟 台 市 综 合 实 践 教 育 研 究 室 文 件 烟 教 实 研 发 2016 4 号 烟 台 市 综 合 实 践 教 育 研 究 室 关 于 公 布 第 二 届 全 市 中 小 学 综 合 实 践 活 动 优 课 及 优 质 课 程 资 源 评 选 获 奖 名 单 的 通 知 各 县 市 区 教 体 局 教 研 室, 开 发 区 综 合 实 践 教 育 中 心, 高 新 区 教 育 办 公

More information

Ps22Pdf

Ps22Pdf ( ) ( 150 ) 25 15 20 40 ( 25, 1, 25 ), 1. A. B. C. D. 2. A. B. C. D. 3., J = 1 H = 1 ( A B, J', J, H ) A. A = B = 1, J' =0 B. A = B = J' =1 C. A = J' =1, B =0 D. B = J' = 1, A = 0 4. AB + AB A. AB B. AB

More information

Microsoft PowerPoint - XCon2010_win7_cn.ppt [兼容模式]

Microsoft PowerPoint - XCon2010_win7_cn.ppt [兼容模式] 绕过 windows 7 浏览器内存保护 Chen XiaoBo Xiao_Chen@McAfee.com Xie Jun Jun_Xie@McAfee.com com Windows 保护机制回顾 GS Stack cookies 防止覆盖 EIP 可以通过覆盖 SEH chains 来绕过 /GS 保护 SafeSEH & SEHOP SEH handler 验证 可以通过已注册的 SEH handler

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有

3 程序的机器级表示 2017 年 3 月 11 日 11: 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有 3 程序的机器级表示 2017 年 3 月 11 日 11:29 2. 3. 4. 计算机执行机器代码, 用字节序列编码低级的操作, 包括处理数据 管理存储器 读写存储在设备上的数据, 以及利用网络通信 通常情况下, 现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 用高级语言编写的程序可以在很多不同的机器上编译和执行, 而汇编代码则是与特定机器密切相关的 学习机器代码的意义在于,

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE P Oracle Solaris Studio 12.3 IDE 2011 12 E26461-01 2 7 8 9 9 Oracle 10 12 14 21 26 27 29 31 32 33 Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "Project

More information

书名 : 作 者 : 出版社 : 出版 :

书名 : 作 者 : 出版社 : 出版 : 书名 : 作 者 : 出版社 : 出版 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

More information

Xcon2003_funnywei

Xcon2003_funnywei 缓冲区溢出漏洞发掘模型 作者 :funnywei 日期 :2003.12 内容摘要 简介 (Introduction) 相关工作 (Related Work) 我们的模型 (Our Model) 总结 (Conclusion) 简介 研究的必要性 C 和 C++ 语言仍然是开发的主要工具 缓冲区溢出攻击已成为主要攻击手段 相关工作 (Related Work) 静态检测 (Static Detection)

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE Project Properties IDE makefile 1. Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New

More information

ebook129-11

ebook129-11 11 TThread Wi n 32 16 Wi n d o w s Wi n 3 32 D e l p h i 11.1 3 Win32 API Wi n 32 C P U C P U 16 Windows 32 Delphi Delphi 1 11.1.1 16 Wi n 32 Windows 3.1 1 2 C P U 1 Windows 3.1 Wi n d o w s 16 Wi n d

More information

1... . 48 30 14 1000c.c 7.5 60 5 (7.5 ) (22 15 6 ). () 90 11 ~91 3 --- 1 2 3 4 () 91 4 ~91 5 --- 1 1 60 5 2 1 3 18 11 350ml ( ) 2 1 350ml 2 2 1-a 91 4 ~91 5 3 1-b 91 4 ~91 5 4 1-c 91 4 ~91 5 5 1 -- ab

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

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++;

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 trio@seu.edu.cn 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,

More information

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式] 函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)

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

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式] 本教案内容 第 3 章 8086CPU 指令系统 1. 汇编语言指令 9. 转移指令 10. 2. 8086 指令分类循环控制指令 11. 子程序调用返回 3. 数据与转移地址的指令寻址方式 12. 中断调用返回指 4. 数据传送类指令令 5. 算术运算类指令 13. 字符串操作指令 6. 逻辑运算类指令 14. I/O 输入输出指令 7. 移位类指令 15. 其它指令 8. 标志位操作指令 16.

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

Microsoft Word zw

Microsoft Word zw 第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000

More information

Microsoft PowerPoint sun-arm isa2.ppt [Compatibility Mode]

Microsoft PowerPoint sun-arm isa2.ppt [Compatibility Mode] 嵌入式系统设计与应用 第二章 ARM 指令系统 (2) 西安交通大学电信学院 孙宏滨 汇编伪指令 汇编伪指令 : 在 ARM 汇编语言里, 有一些特殊指令助记符, 没有相对应的操作码 ( 或直接对应指令 ) 通常称这些特殊指令助记符为伪指令, 它们所完成的操作叫做伪操作 伪指令在源程序中的作用是为完成汇编程序作各种准备工作 这些伪指令仅在汇编过程中起作用, 一旦汇编结束, 伪指令的使命完成 ADR:

More information

数据库系统概论

数据库系统概论 指令系统 是指 CPU 能完成的所有 指令的集合, 它是在 CPU 设计时就确定了的 所以, 对不同的 CPU, 其指令系统中所包含的具体指令将是各不相同的 但 8088/8086 CPU 的指令系统是完全一样的 8088/8086 CPU 的指令系统可分成下面 9 类 : (1) 数据传送指令 ; (2) 算术运算指令 ; (3) 逻辑运算指令 ; (4) 移位指令 ; (5) 标志处理指令和 CPU

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

用户大会 论文集2.2.doc

用户大会 论文集2.2.doc MagGis MapGis GIS MagGis API DLL MapGis VC++ VB BC++ Delphi., Windows API MapGis VC++V Delphi Delphi Delphi MapGis Delphi Delphi Windows Delphi Delphi MapGis MapGis DLL API MapGis function _InitWorkArea(HINST:Integer):Integer;

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

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

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

More information

正式版

正式版 VMSweeper 分析 一. 基本使用 最近, 有一位牛人发布了一个比较有意思的插件, 我们一起看一下其中一些好玩的东西 既然有大牛放血, 那我就顺便给没有追踪 VM 的同学扫扫盲 ( 本文对应插件更新至 VMSweeper1.4 beta 8) 由于我并没有源码, 很多东西都是靠猜了, 如果有什么地方说的不对, 请各位多多指教 这个插件的下载地址是 http://forum.exetools.com/showthread.php?t=13084

More information

修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 下面是一个 C 语言程序 : long f1( i

修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 下面是一个 C 语言程序 : long f1( i 2013.12.8 7.4 修改图 7.5 中计算声明名字的类型和相对地址的翻译方案, 允许名字表而不是单个名字出现在形式为 D id : T 的声明中 即允许 a, b, c : integer 这种形式的变量声明 2013.12.1 6.12 下面是一个 C 语言程序 : long f1( i ) long i; { return(i 10); long f2(long i) { return(i

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

前言

前言 Exploit 编写系列教程第六篇 : 绕过 Cookie,SafeSeh,HW DEP 和 ASLR 作者 :Peter Van Eeckhoutte 译者 :dge 导言 在本系列教程的以前章节中, 我们看到了如何在 windows xp/2003 server 上编写 exploit 这些 exploit 之所以有效是基于这样一个事实 --- 我们能找到一个固定的跳转地址或 pop/pop/ret

More information

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品 Autodesk Product Design Suite Standard 20122 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品设计 Autodesk Product Design Suite Standard 版本包包括以下软件产产品

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

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

untitled

untitled SAP SAP Business One ... 4 SAP Business One... 5... 5 SAP Business One... 7 SAP Business One... 8... 8... 8... 9... 10... 11 mysap Business Suite... 12... 13... 14 Copyright 2004 SAP AG. All rights reserved.

More information

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

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

More information