软件破解常用汇编指令分享
2887 点击·0 回帖
![]() | ![]() | |
![]() | 软件破解常用汇编指令 cmp a,b // 比较a与b mov a,b // 把b值送给a值,使a=b ret // 返回主程序 nop // 无作用 call // 调用子程序,子程序以ret结尾 je或jz // 相等则跳(机器码是74或84) jne或jnz // 不相等则跳(机器码是75或85) jmp // 无条件跳(机器码是EB) jb // 若小于则跳 ja // 若大于则跳 jg // 若大于则跳 jge // 若大于等于则跳 jl // 若小于则跳 pop xxx // xxx出栈 push xxx // xxx压栈 ★★破解经典句式★★ 1.(最常用) mov eax [ ] mov edx [ ] call 00?????? 关键call test eax eax jz(jnz)或 jne(je) 关键跳转 2 (最常用) mov eax [ ] mov edx [ ] call 00?????? 关键call jne(je) 关键跳转 3 mov eax [ ] mov edx [ ] cmp eax,edx jnz(jz) 4 lea edi [ ] lea esi [ ] repz cmpsd jz(jnz) 5 mov eax [ ] mov edx [ ] call 00?????? setz (setnz) al (bl,cl…) 6 mov eax [ ] mov edx [ ] call 00?????? test eax eax setz (setnz) bl,cl… 7 call 00?????? *** push eax (ebx,ecx…) …… …… call 00?????? pop eax (ebx,ecx…) test eax eax jz(jnz) 一、数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里 ) XLAT 字节查表转换. ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL ) 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 ) 输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时, 其范围是 0-65535. 3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI. 4. 标志传送指令. LAHF 标志寄存器传送,把标志装入AH. SAHF 标志寄存器传送,把AH内容装入标志寄存器. PUSHF 标志入栈. POPF 标志出栈. PUSHD 32位标志入栈. POPD 32位标志出栈. 二、算术运算指令 ─────────────────────────────────────── ADD 加法. ADC 带进位加法. INC 加 1. AAA 加法的ASCII码 | |
![]() | ![]() |