中图科学技术大学计算机科学与技术系 University of Science and Technology of China DEPARTMENT OF C口PUT三马B1 ENCE AND T三CHNOL口回/ 基本的”防”黑客技术 Basic"Hacker Technique
基本的”防”黑客技术 Basic” ” Hacker Technique
四】 中国科学技术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 上节裸介招的工具 ■Ol川dbg:调试器 ■IDA:反汇编器 ■Winhex:十六进制编辑器 chenkm@ustc.edu.cn 0551-3602824 3
上节课介绍的工具 ■ Olldbg: 调试器 ■ IDA: 反汇编器 ■ Winhex: 十六进制编辑器 3 chenkm@ustc.edu.cn 0551-3602824
中国科学枝木大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣SB1ENC三ANDT三GNN口L口回 汇编器入门 低级语言如机器码,汇编语言等是计算机的母语, 优点:可以直接访问硬件,容易学习. ■不精通汇编语言,仅掌握高级语言在黑客领域很难做成 象样的事情.比如如何识别大量没有源代码的海量程序中 的算法。 ■访问未公开的操作系统特性,艘索程序后门,抑制病毒, 从事逆向工程,破解秘密算法等. chenkm@ustc.edu.cn 0551-3602824 4
汇编器入门 ■ 低级语言如机器码,汇编语言等是计算机的母语. 优点: 可以直接访问硬件, 容易学习. ■ 不精通汇编语言, 仅掌握高级语言在黑客领域很难做成 象样的事情. 比如如何识别大量没有源代码的海量程序中 的算法. ■ 访问未公开的操作系统特性. 艘索程序后门, 抑制病毒, 从事逆向工程, 破解秘密算法等. 4 chenkm@ustc.edu.cn 0551-3602824
】 中图科学技术大营计算机科学与技术系 University of Science and Technology of China DEPARTM三T OF COMPUT三马B1巨NCE AND T三CHNOL口回/ 汇褊器入门 ■例子: 在程序运行过程中不时弹出臭名昭著的错误提示窗口 提示用户在程序中出现了严重的错误,并且含有地址等 信息、。 若只会高级语言,则无能为力,只能生闷气或骂人。 精通汇编语言就大不一样,可以通过地址修复错误。 chenkm@ustc.edu.cn 0551-3602824 5
汇编器入门 ■ 例子: 在程序运行过程中不时弹出臭名昭著的错误提示窗口 ,提示用户在程序中出现了严重的错误,并且含有地址等 信息。 若只会高级语言,则无能为力,只能生闷气或骂人。 精通汇编语言就大不一样,可以通过地址修复错误。 5 chenkm@ustc.edu.cn 0551-3602824
中国科学枝术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 汇编语言介招 ■单条指令功能有限:找不到一条可直接用语显示 “Hello,World!”字特串的命令。 若要输出该字特串,需要查阅显示卡的硬件资料。 拷贝硬盘数据,需要知道扇区,查阅硬盘驱动器的文档 资料等。 端口:高级语言不能任意访问,在应用程序级别 chenkm@ustc.edu.cn 0551-3602824 6
汇编语言介绍 ■ 单条指令功能有限: 找不到一条可直接用语显示 “Hello, World!”字符串的命令。 若要输出该字符串,需要查阅显示卡的硬件资料。 拷贝硬盘数据,需要知道扇区,查阅硬盘驱动器的文档 资料等。 端口: 高级语言不能任意访问,在应用程序级别 6 chenkm@ustc.edu.cn 0551-3602824
中图科学技术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 汇编语言介招 ■寄存器概念:解释清楚很难。 微观:很多处理器不能直接处理两个内存单元之间的运算 ,需要用寄存器。 宏观:机器码要经过解释才能执行。 X86:寄存器虚拟,MU儿,DIV等指令用到特殊组合的积 存器,不支持内存到内存的直接操作。 ■地址空间:处理器可用的一组虚拟内存单元。其中又 细分为代码,数据与堆栈等段。 ■堆栈:存储数据的方法,像清单与数组的结合,有 PUSH,POP指令,处理函数调用,ESP指示栈顶。 ■EIP:指向下一条要执行的指令地址。 chenkm@ustc.edu.cn 0551-3602824 7
汇编语言介绍 ■ 寄存器概念:解释清楚很难。 微观:很多处理器不能直接处理两个内存单元之间的运算 ,需要用寄存器。 宏观:机器码要经过解释才能执行。 X86: 寄存器虚拟,MUL,DIV等指令用到特殊组合的积 存器,不支持内存到内存的直接操作。 ■地址空间: 处理器可用的一组虚拟内存单元。其中又 细分为代码,数据与堆栈等段。 ■ 堆栈:存储数据的方法,像清单与数组的结合,有 PUSH,POP指令,处理函数调用,ESP指示栈顶。 ■ EIP:指向下一条要执行的指令地址。 7 chenkm@ustc.edu.cn 0551-3602824
中图科学技术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 汇编语言介招 ■主 通用寄存器:EAX,EBX,ECX,EDX4个通用32位 AX,BX,CX,DX:低16位 AH(AL),BH(BL),CH(CL),DH(DL) 高8位(低8位) ESI,EDI: 32位 EBP:处理局部变量(C语言) ■段寄存器,标志寄存器等。 chenkm@ustc.edu.cn 0551-3602824 8
汇编语言介绍 ■ 通用寄存器: EAX,EBX,ECX,EDX 4个通用32位 AX, BX, CX, DX: 低16位 AH(AL), BH(BL), CH(CL), DH(DL) 高8位( 低8位) ESI, EDI: 32位 EBP: 处理局部变量(C语言) ■段寄存器,标志寄存器等。 8 chenkm@ustc.edu.cn 0551-3602824
中图科学技术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 汇编语言介招 ■主 通用寺存器:EAX,EBX,ECX,EDX4个通用32位 AX,BX,CX,DX:低16位 AH(AL),BH(BL),CH(CL),DH(DL) 高8位(低8位) ESI,EDI: 32位 EBP:处理局部变量(C语言) ■段寄存器,标志寄存器等。 chenkm@ustc.edu.cn 0551-3602824 9
汇编语言介绍 ■ 通用寄存器: EAX,EBX,ECX,EDX 4个通用32位 AX, BX, CX, DX: 低16位 AH(AL), BH(BL), CH(CL), DH(DL) 高8位( 低8位) ESI, EDI: 32位 EBP: 处理局部变量(C语言) ■段寄存器,标志寄存器等。 9 chenkm@ustc.edu.cn 0551-3602824
中国科学枝术大学计算机科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 基于C程序示例解释汇编梳念 ■MOV等价于"=” c=0x333 等价于:MOV eax,333h a=*b 等价于:WOV eax,[ebx] a=b[0x66] MOV eax,[ebx+66h] db 1b,dw 2b,dd 4b chenkm@ustc.edu.cn 0551-3602824 10
基于C 程序示例解释汇编概念 ■ MOV 等价于 “=” c= 0x333 等价于: MOV eax, 333h a=*b 等价于: MOV eax, [ebx] a=b[0x66] MOV eax, [ebx+66h] db 1b, dw 2b, dd 4b 10 chenkm@ustc.edu.cn 0551-3602824
中国科学技术大学计算凯科学与技术系 University of Science and Technology of China D三PARTMENT OF C口P3T宣S1END三ANDT三BNN口L口回Y 数据交换的主要方法 LEA EDX,b ;ED以含有指向变量b的指针 MOV EBX, a EBX包含变量a的值 MOV ECX,offset a;ECX包含指向变量a的指针 MOV [EDX],EBX ;将变量a的值复制给变量b MOV b,EBX ;将变量:的值复制给变量b Mov b,a ;出错!这是一个无效的操作 ;MOv指令的两个变量不能都加载到内存 a DD 66h ;将变量a声明为双字类型(dword),并初始化为66h b DD 将没有经过初始化的变量b声明为双字类型(dword) chenkm@ustc.edu.cn 0551-3602824 11
数据交换的主要方法 11 chenkm@ustc.edu.cn 0551-3602824