jmp和jnz跳转机器码计算方式求解
这个两个是我玩DNF碰上的两个crc088DB970^\0F85 2CB6FFFF jnz 088D6FA2第一
088D6FA2 8BF0 mov esi,eax
088D6FA4 C1E1 0B shl ecx,0xB
088D6FA7 C1EE 05 shr esi,0x5
088D6FAA 33CE xor ecx,esi
088D6FAC 0FB632 movzx esi,byte ptr ds:
088D6FAF 33CE xor ecx,esi
088D6FB1 F7D1 not ecx
088DB976^\E9 CDC1FFFF jmp 088D7B48第二
088D7B48 8BF0 mov esi,eax ; 这里
088D7B4A C1E1 07 shl ecx,0x7
088D7B4D C1EE 03 shr esi,0x3
088D7B50 33CE xor ecx,esi
088D7B52 0FB632 movzx esi,byte ptr ds:
088D7B55 33CE xor ecx,esi
第一个 088DB970 0F 85 2C B6 FFFF 转到了088D6FA2这个地址 2C B6 FF FF这个是相关的机器码
第二个 088DB976E9 CD C1 FF FF 转到了088D7B48地址 CD C1 FF FF 相关机器码
那么问题来了 我不看汇编光看机器码应该怎么计算出 他跳转的位置?????
在线求等大神赐教 过程求详细点。
不用了 我自己百度找到方法了
00401000 >- E9 FBF3FFFF jmp 某逆向.00400400
E9 FB F3 FF FF
FB F3 FF FF就是这个了
计算器00401000+FFFFF3FB+5=100400400
汇编中只是取00400400 八位
一个jmp就是5字节+上5字节就是的了 00401005 B9 00104000 mov ecx,00401000
0040100A 81C1 FBF3FFFF add ecx,-0xC05
00401010 83C1 05 add ecx,0x5
ecx=00400400 支持…谢谢了 jmp远跳转指令偏移 = 要跳转的地址 - 当前地址 - 5(0xe9 0x00 0x00 0x00 0x00)
jcc远跳转指令偏移 = 要跳转的地址 - 当前地址 - 6(0x0f 0x?? 0x00 0x00 0x00 0x00) 佩服楼主,自学研究的精神很强
页:
[1]