02 2020 档案

JCC
摘要:除了jmp call ret指令jcc也可以修改eip指令 与其他不同的是,jcc是有条件修改eip指令 1.JE,JZ 2.JNE,JNZ 3.JS 4.JNS 5.JP,JPE 6.JNP,JP0 7.J0 8.JN0 9. 10. 1.CF(Carry flag) 进位标志 判断无符号数整型计 阅读全文

posted @ 2020-02-21 19:27 没有感情的rainbow 阅读(976) 评论(0) 推荐(0)

esp寻址ebp寻址
摘要:栈顶指针esp 栈底指针ebp esp寻址 构建函数 1.使用寄存器传递参数 2.使用堆栈来传递参数 push 1 push 2 push 3 把要用的参数压入堆栈后,需要用call调用函数来计算参数,调用call时,会将call的下一行指令的地址压入栈中,所以使用参数时地址为[esp+4,8,12 阅读全文

posted @ 2020-02-21 18:47 没有感情的rainbow 阅读(478) 评论(1) 推荐(0)

函数
摘要:jmp 用jmp实现函数,需要再用jmp调回来,且不可重复 call 用call实现函数,并且在使用后能跳回来继续下一行指令 如实现两个整数的加法 0x00186784 mov ecx,1 0x00186788 mov edx,1 0x0018678C call 0x0018679C 记录函数的头地 阅读全文

posted @ 2020-02-20 20:27 没有感情的rainbow 阅读(130) 评论(0) 推荐(0)

反调试
摘要:单布布入(F7 单步步过(F8 阅读全文

posted @ 2020-02-19 21:21 没有感情的rainbow 阅读(99) 评论(0) 推荐(0)

EIP
摘要:EIP中的值就是CPU下次要执行的地址 jmp 直接修改eip的值 1.jmp imm=mov eip,imm 2.jmp r 3.jmp m call 直接修改eip的值,并把当前指令的下一行地址存到堆栈中 1.call imm/r/m ret 栈顶指针+4,把原来栈顶指针的指向的值赋值给eip 阅读全文

posted @ 2020-02-19 21:18 没有感情的rainbow 阅读(404) 评论(0) 推荐(0)

堆栈
摘要:汇编语言中的堆栈和数据结构中的堆栈没有关系 堆栈是操作系统预先分配的内存 ESP为栈指针寄存器,当前堆栈用到哪了 当使用过堆栈后需要修改ESP的值 push 向堆栈中压入数据并修改栈顶指针ESP寄存器的值 1.push r32 2.push r16 3.push m32 4.push m16 5.p 阅读全文

posted @ 2020-02-18 23:09 没有感情的rainbow 阅读(113) 评论(0) 推荐(0)

汇编常用指令
摘要:mov 1.mov r/m8,r8 r 通用寄存器 2.mov r/m16,r16 m 内存 3.mov r/m32,r32 imm 立即数 4.mov r/m8,r8 8/16/32 代表位数 5.mov r/m16,r16 6.mov r/m32,r32 7.mov r8,imm8 8.mov  阅读全文

posted @ 2020-02-18 20:17 没有感情的rainbow 阅读(209) 评论(0) 推荐(0)

计算机的存储模式
摘要:大端模式:数据高位在存储低位,数据低位在高位 小端模式:数据低位在存储低位,数据高位在高位 存储低位 0x00000000 0x00000001 0x00000002 0x00000003 0x00000004 0xFFFFFFFF 存储高位 例如: mov byte ptr ds:[0x00000 阅读全文

posted @ 2020-02-16 20:52 没有感情的rainbow 阅读(391) 评论(0) 推荐(0)

内存
摘要:每个应用程序都有4GB的独立运行空间 4G=4096MB=4194304KB=4294967296B=34359738368bit换算成十六进制是800000000bit=100000000B=(FFFFFFFF+1)B 而FFFFFFFF即32位的内存地址,寻址宽度为32位,所以每个应用程序都有4 阅读全文

posted @ 2020-02-15 23:31 没有感情的rainbow 阅读(555) 评论(0) 推荐(0)

mov指令
摘要:mov指令有两种写法 1.将立即数赋值给寄存器 如 mov eax,1 2.将寄存器中的数值赋值给寄存器 如 mov edx,eax mov后的两个寄存器要为同位数才可以进行 阅读全文

posted @ 2020-02-15 21:04 没有感情的rainbow 阅读(698) 评论(0) 推荐(0)

寄存器
摘要:寄存器是cpu中存储数据的地方 32位cpu中有8位、16位、32位的寄存器 64位cpu中有8位、16位、32位、64位的寄存器 32位通用寄存器 EAX ECX EDX EBX ESP EBP ESI EDI 16位通用寄存器 AX CX DX BX SP BP SI DI 8位通用寄存器 AL 阅读全文

posted @ 2020-02-15 20:52 没有感情的rainbow 阅读(237) 评论(0) 推荐(0)

计算机实现加法
摘要:计算机能做的运算称为位运算,即直接对0和1做运算 有些计算机功能必须通过位运算才能实现:比如写调试器,判断CPU的各种状态位 位运算主要有 1.与(&)1&1=1 2.或(|)0|1=1 3.异或(^)0^1=1 1^0=1 0^0=0 1^1=0 4.非(~)~0=1 ~1=0 5.左移:各二进制 阅读全文

posted @ 2020-02-14 23:26 没有感情的rainbow 阅读(653) 评论(0) 推荐(0)

原码反码补码
摘要:原码:最高位为符号位,其余各位为数值本身的绝对值 反码:正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码:正数:补码与原码相同 负数:符号位为1,其余位对原码取反加1 计算机中正数以原码存储,负数以补码存储 阅读全文

posted @ 2020-02-14 23:04 没有感情的rainbow 阅读(96) 评论(0) 推荐(0)