当前位置: 代码迷 >> 汇编语言 >> masm使用,该怎么处理
  详细解决方案

masm使用,该怎么处理

热度:192   发布时间:2016-05-02 04:36:34.0
masm使用
本帖最后由 yusss 于 2014-04-27 20:23:02 编辑
写一段汇编,在这个汇编里生成一个函数指针表,然后在C语言里使用这个表:
.686P
.MODEL FLAT,c

public _SysguardDispatch

.CODE
_SysguardDispatch:
 
hook macro syscall:REQ
LOCAL lbl;;
.CODE
lbl:
mov eax , syscall
jmp DWORD PTR _SysguardDispatch
;;函数指针表
.DATA
dd lbl
endm

num = 0
WHILE num LE 10
hook(num)
num = num + 1
ENDM

END

问题是如何导出这个函数指针表呢?

------解决方案--------------------
; 也许可以这样吧
.686P
.MODEL FLAT,c

option casemap:none

public _SysguardDispatch


.data
arPtrs label dword
  forc i, 0123456789
    dd  lbl&i
  endm


.CODE

  forc x, 0123456789
    lbl&x:
      mov eax, x
      jmp dword ptr _SysguardDispatch
  endm

_SysguardDispatch:
; your dispatch code here  

END