惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
Recent Announcements
Recent Announcements
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
J
Java Code Geeks
博客园_首页
Jina AI
Jina AI
美团技术团队
H
Help Net Security
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
S
SegmentFault 最新的问题

博客园 - 康国庆--thinkinlove

ubuntu flash 乱码解决 Crypto ++ (cryptopp) 与加密 (1) cryptoAPI crypto API 与crypto++(前) ubuntu下使用urllib2 发布一个小的实用工具-机票助手 test scribeFire 抓取网页、以及传输网络文件产生 “1ff8” 串的原因 C#和 C++ 中秋节体验Xmanager,vnc linux (ubuntu) 下双屏显示解决? linux下的pdf乱码解决方法 针对curl程序库静态链接的问题解决办法 稳定下来了继续写 SICP:使我着了魔 显示器与程序员的效率 认真学习Lisp、FP 工作之余的休闲假期 Glusterfs分析报告
关于exe中导出函数限制的疑惑
康国庆--thinkinlove · 2008-10-27 · via 博客园 - 康国庆--thinkinlove

最近有个想法,就是想将原本是dll导出的函数,统统放到一个原本可以执行的文件中,且要求

已让能够导出函数像原来dll一样,给其他的pe来使用。

测试环境是vc8。

开始拿了小的测试工程,2个exe的project。都非常简单。传递参数,简单的add操作。没问题。

网络上许多说法,其实没有什么和平常的dll导出方法操作是一样的,只有你使用def文件的时候不要加

那行library就行。 在这个过程中还试验出。调用函数的两边都是使用dllexport 居然也能够调用成功。

 于是开始了大规模的移动代码过程。代码就绪后,编译 ok 过了,链接ok 也过了。

但是在执行上出了问题。追了很久 ,发现是因为在函数内部使用了string。(注这里使用string只是做了交换的临时变量)

于是用char* 替换了string 修改代码n处。。。最终测试出在malloc上出了问题。

用string时出的问题是特权指令出错。 而用char* malloc(堆分配)时 出现的是非法访问内存。。堆分配出错。

于是改用其他的alloca(栈分配) 等一族方法,出错地址依旧。 

换个思路-自己维护堆, 用api 开了一个堆。 结果在执行api时 出错。作罢。

网络上传的调用方式都是很简单的方法。。并没有动态申请内存的过程。。还有就是看雪论坛的那个帖子

olly.dbg(好像是这么拼的) 功能我不知怎么能搞出来。

还有就是"调用门" 一个exe调用一个dll ,而这个dll反过来调用exe的一个导出函数。这样的实现是能找到例子的。

核心部分嵌了几行汇编。 但是我的这个问题是没有解决的。。 只有绕过,或是也许在2进制上做手脚才行吧。。忘达人

告知解决方法。