广义数据类型(如匿名函数实体)的一些想法笔记

再汇编层面,LoadLibrary配合GetProcAddress调用dll库当中的函数时,有一个问题:无法直接使用invoke

因为 GetProcAddress 返回的是函数地址

看到了一种取巧的办法能正常使用invoke

首先我们需要定义一种函数实体,该实体拥有n个参数,参数类型分别为A,B,C,D.....对应了我们需要调用的dll函数

比如我们调用foo(int X)

那么就先定义一种函数实体数据类型:

1
_PROCVAR typedef proto :dword

然后再定义指向实体的指针

1
PROCVAR typedef ptr _PROCVAR

然后把返回值(地址)填入这个指针

1
2
3
4
5
6
      .data?
lp PROCVAR


.code
mov lp,eax;

简直完美

同时也算是加深理解了指针和匿名实体

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2019-2024 kier Val
  • Visitors: | Views: