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

发布于 2021-08-24  37 次阅读


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

因为 GetProcAddress 返回的是函数地址

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

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

比如我们调用foo(int X)

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

_PROCVAR typedef proto :dword

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

PROCVAR typedef ptr _PROCVAR

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

      .data?
lp PROCVAR


       .code
mov lp,eax;

简直完美

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