Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows frida support #1607

Merged
merged 99 commits into from
May 14, 2024
Merged

Windows frida support #1607

merged 99 commits into from
May 14, 2024

Conversation

s1341
Copy link
Collaborator

@s1341 s1341 commented Oct 5, 2023

Supercedes #1298

@domenukk
Copy link
Member

domenukk commented Nov 2, 2023

Let's merge this soon? :)

@s1341
Copy link
Collaborator Author

s1341 commented Nov 2, 2023

I need something from frida gum before I can merge. And Ole has yet to get to it.

@domenukk domenukk marked this pull request as draft November 4, 2023 16:43
@s1341
Copy link
Collaborator Author

s1341 commented Nov 15, 2023

This is the fix I was waiting for: frida/frida-gum#754

@domenukk
Copy link
Member

Sweet so now we need to wait for updated bindings and then this can be merged?

@s1341
Copy link
Collaborator Author

s1341 commented Nov 15, 2023

I still have to test the new solution... but yeah. It's a step closer.

@domenukk domenukk marked this pull request as ready for review May 12, 2024 16:38
fuzzers/frida_libpng/src/fuzzer.rs Outdated Show resolved Hide resolved
fuzzers/qemu_systemmode/src/fuzzer_classic.rs Outdated Show resolved Hide resolved
libafl/src/events/llmp.rs Outdated Show resolved Hide resolved
@domenukk
Copy link
Member

@s1341 from my PoV this looks good now, feel free to merge

libafl_frida/src/utils.rs Outdated Show resolved Hide resolved
@domenukk
Copy link
Member

Any reason to keep frida_to_cs for aarch64? It's not in use

@domenukk domenukk merged commit 19087f3 into main May 14, 2024
83 of 99 checks passed
@domenukk domenukk deleted the frida_windows branch May 14, 2024 08:45
riesentoaster pushed a commit to riesentoaster/LibAFL that referenced this pull request May 24, 2024
* WIP: windows frida

* frida-windows: fix hooks not present on windows

* windows: allow building using cargo xwin

* frida-windows: fmrt

* frida-windows: cleanup and allow asan/drcov on windows

* frida-windows: fmt

* frida-windows: fix clippy

* frida-windows: handle unknown exceptions gracefully

* frida-windows: rework shadow mapping algo

* frida-windows: add hook functions

* frida-windows: hook functions; fix stack register

* minibsod: enable for windows

* check_shadow: fix edge casees

* asan_rt: rework and add hooks for windows

* inprocess: add minibsod on windows

* Fix warnings

* minibsod: disable test on windows

* WIP: HookRuntime

* Cleanup after merge

* Bump frida-gum version

* Fix conflict marker; update frida

* Make winsafe windows-specific

* Fmt

* Format

* Better detection of clang++ (using cc)

* Make AsanErrors crate public so we can use it in tests

* Add helper to get immediate of operand

* Use HookRuntime to hook asan functions

Tests now passing

* fmt

* Implement recurisve jmp resolve

* Fix reversed logic

* windows_hooks: Don't die if functions are already replaced

* Allow utils to work on windows

* Enable allocator hooking on windows

* Warnings; add trace to free

* Make ASAN tests run windows (with cargo xwin compilation)

* Fmt

* clang-format

* clang-format

* Add more tests

* Fix partial range access bug in unpoisoning/shadow_check

* Merge main

* Fix check_shadow and implement unit tests

* Fix hooking and PC retrieval

* WIP: Working gdiplus fuzzing with frida-ASAN, no false positives

* LibAFL Frida asan_rt and hook_rt fixes for frida_windows (AFLplusplus#2095)

* Introduce aarch64

* MacOS fix - MemoryAreas is broken on MacOS and just loops

* Introduce working aarch64 ASAN check

* Implement large blob

* Fix hook_rt for arm64

* Fix poison/unpoison

* Fix shadow check

* Update x86-64

* Fix aarch64 unused import

* Remove extraneous println statement

* merge main

* Fixes

* alloc: add tests, pass the tests

* HookRuntime before AsanRuntime, and don't Asan if Hooked

* hook_rt: Fixes

* Frida windows check shadow fix (AFLplusplus#2159)

* Fix check_shadow and add additional tests

* add some additional documentation

* Revert to Interceptor based hooks

* fixes

* format

* Get rid of hook_rt; fixes

* clang-format

* clang-format

* Fix with_threshold

* fixes

* fix build.rs

* fmt

* Fix offset to RDI on stack

* Fix clippy

* Fix build.rs

* clippy

* hook MapViewOfFile

* fmt

* fix

* clippy

* clippy

* Missing brace

* fix

* Clippy

* fomrrat

* fix i64 cast

* clippy exclude

* too many lines

* Undo merge fails

* fmt

* move debug print

* Fix some frida things

* Remove unused frida_to_cs fn for aarch64

* name

* Don't touch libafl_qemu

---------

Co-authored-by: Dongjia "toka" Zhang <tokazerkje@outlook.com>
Co-authored-by: Sharad Khanna <sharad@mineo333.dev>
Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.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.

4 participants