V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Zorro825
V2EX  ›  程序员

PC 桌面软件需要实现的一个功能。

  •  
  •   Zorro825 · 2023-12-28 10:35:03 +08:00 · 3054 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我开发个 PC 软件,windows 端的。需要调用电脑里面已经安装的一个软件,打开软件,在软件登录框自动输入账号密码。

    实现是肯定可以实现的,因为我看到别人这样弄了, 请问用什么技术?

    我做 WEB 开发的,所以不太懂。

    21 条回复    2023-12-29 09:38:22 +08:00
    xtreme1
        1
    xtreme1  
       2023-12-28 10:37:27 +08:00
    pywinauto
    fdghjk
        2
    fdghjk  
       2023-12-28 10:40:24 +08:00
    上号器就是这个技术
    rming
        3
    rming  
       2023-12-28 10:40:29 +08:00
    模拟鼠标键盘输入
    SWALLOWW
        4
    SWALLOWW  
       2023-12-28 10:45:37 +08:00
    获取目标句柄发消息
    zhuzixian
        5
    zhuzixian  
       2023-12-28 10:49:27 +08:00
    nullp
        6
    nullp  
       2023-12-28 11:24:19 +08:00
    AU3
    Daniate
        7
    Daniate  
       2023-12-28 11:25:50 +08:00 via iPhone
    可以试试微软的 power automate
    opengps
        8
    opengps  
       2023-12-28 11:28:15 +08:00
    不用太多技术,先看下有没有快捷键能完成这一系列操作。剩下的就是模拟键盘
    StubbornHuang
        9
    StubbornHuang  
       2023-12-28 11:28:26 +08:00
    获取窗口句柄 获取控件句柄 模拟控件事件
    clorischan
        10
    clorischan  
       2023-12-28 12:14:49 +08:00
    那得看你打开登录的目标软件有没有做安全措施了.
    没有的话, 找到输入控件句柄发消息就行.
    有的话根据其强度, 可能需要写驱动+代码签名
    cuicuiv5
        11
    cuicuiv5  
       2023-12-28 12:29:55 +08:00
    按键精灵
    zcjwxf
        12
    zcjwxf  
       2023-12-28 12:48:31 +08:00
    技术实现就不说了,挺简单的,唯一注意的是你用了那些自动化方案后这台电脑不能玩网络游戏咯,会被封号的,
    morgan1freeman
        13
    morgan1freeman  
       2023-12-28 13:00:31 +08:00
    针对任意 exe 程序的话,驱动层面上 hook 对应的 win32 的 execute 函数,如果传入的 exe 文件的 md5 匹配上就直接 hook 住,不让启动,这个东西比较复杂,搞 win32 搞的多的话,github 上找一个 驱动 hook 的例子,应该就能实现
    morgan1freeman
        14
    morgan1freeman  
       2023-12-28 13:03:04 +08:00
    @clorischan 目标程序已经启动的话,针对目标程序句柄发消息,能干嘛,hide 窗口么😅,这种是不是 hook win32 的 execute 函数比较合适
    morgan1freeman
        15
    morgan1freeman  
       2023-12-28 14:09:13 +08:00
    用到的技术应该是 ssdt hook ,底层貌似是这两个函数 ,NtCreateProcess or ZwCreateProcess ,上内核驱动 patch 掉 这两个函数,应该就可以了
    liuhuihao
        16
    liuhuihao  
       2023-12-28 14:10:24 +08:00
    简单的来说 用按键精灵写个脚本就行了
    morgan1freeman
        17
    morgan1freeman  
       2023-12-28 14:13:50 +08:00
    https://github.com/angelkillah/zer0m0n/blob/02b81321108a8a8f245984b71dbdb37171ef5f82/src/driver/hooking.c#L23 这里有代码可以抄,它 hook 了 NtCreateProcess or ZwCreateProcess
    chutianyao
        18
    chutianyao  
       2023-12-28 16:15:39 +08:00
    autohotkey
    morgan1freeman
        19
    morgan1freeman  
       2023-12-28 17:28:35 +08:00
    @clorischan 不好意思 我看错题意了,它这个需求是打开一个 exe 然后填入密码账号,这个确实 sendMessage 就行了
    Zorro825
        20
    Zorro825  
    OP
       2023-12-28 19:15:00 +08:00
    @morgan1freeman 谢谢大佬
    layxy
        21
    layxy  
       2023-12-29 09:38:22 +08:00
    ahk
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2595 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:26 · PVG 18:26 · LAX 02:26 · JFK 05:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.