Skip to content

[Example] Send all Win32 API calls to an ElasticSearch instance - #11

Draft
calladoum-elastic wants to merge 25 commits into
mainfrom
hugsy/ttd-to-es
Draft

calladoum-elastic wants to merge 25 commits into
mainfrom
hugsy/ttd-to-es

Conversation

@calladoum-elastic

Copy link
Copy Markdown
Collaborator

Summary

Description

Checklist

  • Code compiles (cargo build --all-targets)
  • Tests/Linting pass
    • cargo test
    • cargo doc
    • cargo clippy

@hugsy hugsy changed the title Hugsy/ttd to es [Example] Send all Win32 API calls to an ElasticSearch instance Jun 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new example workspace binary that replays a TTD trace and ships Win32 API entrypoint hits to Elasticsearch, while also updating the ttd_sys build script and switching the auto_unpack disassembler backend.

Changes:

  • Add ttd_to_es workspace crate to stream watched Win32 API calls into an Elasticsearch index via Bulk API.
  • Refactor ttd_sys/build.rs to remove const_format usage and move several paths/versions to runtime PathBuf/env-driven helpers.
  • Replace zydis with iced-x86 in auto_unpack, and update CI workflow action versions and caching paths.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
ttd_to_es/src/main.rs New example binary: index module exports, arm execute watchpoints, bulk-send API-call docs to Elasticsearch.
ttd_to_es/Cargo.toml New crate manifest + dependencies for the Elasticsearch streaming example.
ttd_sys/Cargo.toml Remove const_format build-dependency and minor cleanup.
ttd_sys/build.rs Refactor build-script paths/versioning; update CMake invocation and binding generation.
Cargo.toml Add ttd_to_es to workspace members.
Cargo.lock Lockfile updates for new crate + dependency changes (elasticsearch, iced-x86, etc.).
auto_unpack/src/main.rs Swap disassembly implementation from zydis to iced-x86.
auto_unpack/Cargo.toml Replace zydis dependency with iced-x86.
.github/workflows/build.yml Update actions versions, caching paths, and matrix behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ttd_to_es/src/main.rs Outdated
Comment thread ttd_to_es/src/main.rs Outdated
Comment thread ttd_to_es/src/main.rs
Comment thread ttd_sys/build.rs Outdated
Comment thread ttd_sys/build.rs Outdated
Comment thread ttd_sys/build.rs Outdated
Comment thread ttd_sys/build.rs
Comment on lines 112 to 116
fn get_ttd_sdk_path() -> std::path::PathBuf {
let mut ttd_sdk_path = std::path::PathBuf::from(std::env::var("USERPROFILE").unwrap().as_str());
ttd_sdk_path.push(format!(".nuget/packages/{}/{}", TTD_SDK_PACKAGE_NAME, TTD_SDK_PACKAGE_VERSION).as_str());
ttd_sdk_path
}
Comment thread ttd_sys/build.rs Outdated
Comment thread ttd_sys/build.rs
Comment on lines 286 to 290
fn install_winget_ttd() {
let install_dir = get_winget_ttd_install_path();
std::process::Command::new("winget")
.args([
"install",
hugsy and others added 2 commits June 19, 2026 10:21
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants