前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windhawk 的简单逆向

Windhawk 的简单逆向

作者头像
FloatSheep
发布2024-06-07 15:08:44
800
发布2024-06-07 15:08:44
举报
文章被收录于专栏:yetonwooyetonwoo

在使用 Windhawk1 的时候对它产生了好奇,于是就有了这篇文章

Windhawk 的源码是完全开源的,可以在 ramensoftware/windhawk 中查看源码

进入它的目录,我们可以看到结构如下

很好理解

代码语言:javascript
复制
{
    "meanings": {
        "Compiler": "编译器",
        "Engine": "引擎(Windhawk 功能的核心)",
        "UI": "Windhawk 的 GUI",
        "windhawk.exe": "Windhawk 的主程序"
    },
    "functions": {
        "Compiler": "对编写好的功能模块进行编译",
        "Engine": "用于将编译好的模块注入进目标程序的引擎",
        "UI": "安装、编写模组",
        "windhawk.exe": "驻留后台、拉起 GUI 进程"
    }
}

UI 界面的简单逆向 #

打开任务管理器(GUI 打开时),会发现在前台进程中出现了 VSCodium

右键打开文件所在位置,会发现进入了 WindhawkUI 目录

其中,VSCodium.exe 就是 WindhawkUI 程序

双击运行,我们会发现直接进入了 VSCodium 的主界面

同时,右下角出现了提示。提示的大概意思是说,我们用了错误的方式打开了 UI 进程(VSCode 直接启动了)

于是,我写了个 Rust 来查看它的启动参数,代码如下

代码语言:javascript
复制
use std::env;
use std::io;
use std::io::prelude::*;

fn main() {
    let args: Vec<String> = env::args().collect();
    println!("接收到的命令行参数:{:?}", args);

    let command_line = format!("{}", args.join(" "));
    println!("命令行调用方式:{}", command_line);

    println!("按任意键退出...");
    let _ = io::stdout().flush();
    io::stdin().read(&mut [0u8]).unwrap();
}

我们将其放入 UI 目录并将名字改为 VSCodium.exe(记得备份原程序)然后再次唤起 UI 进程,发现命令行调用如下

也就是说,这个程序是通过 C:\Program Files\Windhawk\UI\VSCodium.exe C:\ProgramData\Windhawk\EditorWorkspace --locale=en --no-sandbox --disable-gpu-sandbox 启动的

我们在终端中通过这个命令启动

?为什么还是报VSCode 直接启动了 :thinking_face_color:

简单分析一下,这个 UI 进程是通过 windhawk.exe 拉起的,也许需要我们伪装一下?不过在我的测试中要么是无法启动,要么是报错

前端架构 #

通过在 WindhawkUI 进程中使用公开方法打开 Developer Tools,我们发现,UI 使用的是 Ant Design

顺带提一嘴,第一行的注释内容如下 :rolling_on_the_floor_laughing_color:

代码语言:javascript
复制
<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->

Engine 的简单逆向 #

通过对 windhawk.dll 的反编译,我们了解到,这个动态链接库是 Windhawk 需要使用的一些钩子

当然啦,这个动态链接库是不能通过 rundll32 启动(main entry)的

  1. Windows 下的自定义功能模组平台 ↩︎
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • UI 界面的简单逆向 #
    • 前端架构 #
    • Engine 的简单逆向 #
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档