永发信息网

有知道TcAPI.dll中接口函数的使用方法吗

答案:1  悬赏:0  手机版
解决时间 2021-01-09 22:52
有知道TcAPI.dll中接口函数的使用方法吗
最佳答案
一般的办法是这样:

1. 查询dll的导出函数表来得到该dll导出了多少个函数。这可以通过工具软件得到,比如PE Explorer.

2. 自己设计一个加载程序,把该dll加载上来,然后依次调用查找到的所有导出函数。方法是:
2.1 用LoadLibrary加载dll.
2.2 用GetProcAddress通过函数名把函数地址取出,然后假定函数的原型是void ExFun(void);,调用它。

3. 在调试器中设置断点到调用导出函数的语句,F11跟进去。

4. 这个时候就比较麻烦了。首先看函数结尾的ret语句有没有带参数。如果ret带参数,那这个函数有可能是stdcall类型的,那么ret的参数通常就是导出函数参数的字节数。如果ret不带参数,那有可能这个函数不带参数,也有可能函数是cdecl类型的。此时无法判断究竟是哪种情况,需要进一步阅读函数汇编码。

5. 查看整个函数的汇编码,找出所有类似于"ebp+X"的字样,比如ebp+8, ebp+C等,这些都是参数。ebp+4是返回地址。如果函数是stdcall或cdecl类型的,那么ebp+8是函数第一个参数,ebp+C是第二个。

从上面可以看出,如果函数是stdcall类型,可能比较容易找出函数原型。但如果是cdecl类型的,那就要靠运气了。因为有可能函数有参数,却没有使用。

就算函数是stdcall的,然后取得了字节数,又通过第5步的查找法找到了可能的参数的个数。有一种可能是函数传递了一个结构,假定结构是8字节的,栈地址为ebp+C,那么你有可能找不出ebp+10的引用点,这样你就无法确定函数究竟是使用了一个8字节的结构还是没有使用一个参数,这就无法还原函数原型了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
盆栽花卉施用未腐熟的有机肥害处大,怎么辨别
蛇粉该怎么吃?
I think this talk is worth _______.
跑滴滴和跑黑车,出租车,哪个更赚钱更舒服
请问一下,框架柱500✘500的柱子,十字
怎样才能做到一天最少两次大便
墙上的胶带印怎么去除
算命流年每个月的称呼
区间测速,限速80开100超速多少?
川椒木耳凉菜的做法
挨住造句
场内质押和场外质押区别,质押和抵押的区别是
啡时尚地址在什么地方,想过去办事,
判断题吲哚酚试剂可以检测维生素C;双缩脲试
大师帮我看哈,我这是什么财神
推荐资讯
8平米卧室装修需要多少钱
下列说法正确的是A.人工合成脊髓灰质炎病毒,
格力7P空调 内机 一根 四芯电缆 到外机 然后
单选题下列各句标点符号运用错误的一项是A.长
c620-1型车床参与调整主轴转速的滑移齿轮有几
入园早好还是入园晚好
短信总是带有呵呵是什么意思?
我的世界被网易收购了以后买以前的我的世界的
360网贷靠谱吗 需要征信那些资料么
汽车沿半径为R的圆形跑道行驶,设跑道的路面
像电波一样的是什么p图软件
富贵险中求,恶从胆边生,大家怎么理解这句话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?