📄 sub-x86.c
字号:
/* * libDebug * * Copyright (C) 2000 Patrick Alken * This library comes with absolutely NO WARRANTY * * Should you choose to use and/or modify this source code, please * do so under the terms of the GNU General Public License under which * this library is distributed. * * $Id: sub-x86.c,v 1.2 2004/09/11 05:17:16 pa33 Exp $ */#include "sub-x86.h"static struct OpSub SubOpcodes[] = { { 0xE8, -1, 5 }, { 0xFF, 2, 2 }, { 0x9A, -1, 7 }, { 0xFF, 3, 2 }, { 0, 0, 0 }};/*IsSubroutine() Determine if the first few bytes of 'buf' correspond to a CALLinstruction, indicating we are about to enter a subroutine.Return: 0 if it is not a subroutine, or the number of bytes in the opcode if it is*/intIsSubroutine(unsigned char *buf){ unsigned char first; struct OpSub *optr; first = *buf++; for (optr = SubOpcodes; optr->oplen; ++optr) { if (first == optr->byte) { if (optr->digit != (-1)) { unsigned char reg; /* * This opcode expects a ModR/M digit - make sure it * matches the next byte of 'buf' */ reg = (*buf >> 3) & 0x07; if (reg != optr->digit) continue; /* bad match */ } /* * Good match */ return (optr->oplen); } } return (0);} /* IsSubroutine() */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -