V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Roarbit
V2EX  ›  Windows

有点混乱了?!可以直接调用一个 exe 程序的函数?有这样的骚操作?

  •  
  •   Roarbit · 2019-05-10 13:34:34 +08:00 · 3255 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天一个项目要和一个系统做接口,功能很简单,就是向他传一段 xml 实现收费。 但上游系统工程师给我一个 EXE 文件,告知在本地设为开机启动并运行,然后就是一堆函数说明,说直接调用这个 exe 的函数就可以了。态度还极差~ 我的妈呀~还有这样的操作?

    6 条回复    2019-05-10 14:06:27 +08:00
    jadec0der
        1
    jadec0der  
       2019-05-10 13:40:43 +08:00
    上游系统不想给你调用的时候,就是这么操作的
    thedrwu
        2
    thedrwu  
       2019-05-10 13:42:31 +08:00 via Android
    exe 跟 dll 是一样的,都可以输出函数 /api。只是入口函数不一样。地址空间 exe 独立进程,dll 需要附到别的进程。
    如果楼主说的是这个。。。
    visonme
        3
    visonme  
       2019-05-10 13:48:28 +08:00
    调用 EXE 中函数是完全可以的,正如#2 说的,EXE 跟 DLL 其实一样都可以导出函数的,只是相对 DLL,你要从 exe 中调用导出函数,貌似需要保留函数地址,不然调用时候容易报异常,而且通过 LoadLibrary 加载目标 EXE 然后调用,需要处理函数地址问题(其实就是看你怎么初始化目标 EXE,然后保证正常调用那些函数),不然也是无效~
    co3site
        4
    co3site  
       2019-05-10 13:51:27 +08:00 via Android
    建议了解下 PE 结构,具体到导出表
    Roarbit
        5
    Roarbit  
    OP
       2019-05-10 13:59:54 +08:00
    @thedrwu 我这边日常实现这个功能一般都是对方给一个 web 服务或者存储过程就 OK 了。但这个厂商给的是一个 EXE,还要求以一个类似服务的进程一直运行才行 ε(┬┬﹏┬┬)3 如果是 DLL 我直接 import,按照他的逻辑调用传参就可以了……
    geelaw
        6
    geelaw  
       2019-05-10 14:06:27 +08:00 via iPhone
    也可能是 local server 的 COM
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2905 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:30 · PVG 22:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.