Commit Graph

966 Commits

Author SHA1 Message Date
momo5502
62c972333a Support ignoring multiple functions 2025-04-07 19:01:10 +02:00
Maurice Heumann
73c37eaeb1 Fix NtQueryInformationProcess ProcessDebugFlags 2025-04-07 15:47:00 +02:00
Maurice Heumann
66a529cf43 More logging 2025-04-07 15:36:25 +02:00
Maurice Heumann
f087d3998a Ignore certain function calls 2025-04-07 15:17:52 +02:00
Maurice Heumann
7f3c5d080c Basic working icicle support (#181) 2025-04-07 09:31:42 +02:00
Maurice Heumann
e749c7d47f Adapt readme 2025-04-07 09:02:05 +02:00
Maurice Heumann
1cfe20b7a1 Skip icicle debug tests 2025-04-07 08:04:24 +02:00
Maurice Heumann
787410ff33 Remove IP skip check 2025-04-07 07:52:02 +02:00
Maurice Heumann
baad36ccf2 Support interrupt hooks 2025-04-07 07:24:46 +02:00
momo5502
1ed997445d Fix IRETQ instruction 2025-04-06 20:56:28 +02:00
momo5502
e8ac70f0d0 Use ghidra spec from icicle-python
--> https://github.com/icicle-emu/icicle-python
2025-04-06 20:55:51 +02:00
momo5502
5fde8c033d Fix hooks
This fixes #180
2025-04-06 20:01:18 +02:00
momo5502
cacf2c152c Fix single stepping after breakpoints 2025-04-06 17:50:02 +02:00
momo5502
e40e1bfb83 Ugly hack to *sometimes* fix instruction skipping 2025-04-06 10:46:21 +02:00
momo5502
3450a6a517 Fix reading/writing eflags 2025-04-06 09:44:46 +02:00
momo5502
320af6bb46 Support GDB stepping
...almost :(
2025-04-06 09:44:05 +02:00
momo5502
ed711197ae Fix GDB debugging with icicle 2025-04-05 16:15:56 +02:00
momo5502
bfb9760d29 Fix unicorn read hook 2025-04-05 15:58:34 +02:00
momo5502
3978eeed2a Finish execution hook support 2025-04-05 15:28:14 +02:00
momo5502
efe5a21e57 Switch to icicle fork 2025-04-05 14:50:11 +02:00
momo5502
638ad2c7a4 Support read and write hooks 2025-04-05 12:51:37 +02:00
momo5502
349526a54a Simplify hooking interface 2025-04-05 11:59:49 +02:00
momo5502
a336bdf2af Simplify violation hook API 2025-04-05 10:01:28 +02:00
momo5502
0fbb7a2e0d Revert "Disable exceptions for now"
This reverts commit 3391780c2f.
2025-04-05 09:28:01 +02:00
momo5502
3de9043299 Revert "Disable icicle tests"
This reverts commit dd7a80a9f0.
2025-04-05 09:23:38 +02:00
Maurice Heumann
3391780c2f Disable exceptions for now 2025-04-05 09:23:30 +02:00
Maurice Heumann
8935a3d56e Integrate icicle into CI (#179)
But disable it for now
2025-04-05 09:23:01 +02:00
momo5502
dd7a80a9f0 Disable icicle tests 2025-04-05 09:03:41 +02:00
momo5502
d191f8e667 Optimize MMIO handling 2025-04-05 09:03:41 +02:00
momo5502
b696117424 Add safety checks 2025-04-05 09:03:41 +02:00
momo5502
102676b51c Unify environment variables 2025-04-05 09:03:41 +02:00
Maurice Heumann
d6a419d5f6 Add Ghidra processor specification 2025-04-04 15:35:10 +02:00
Maurice Heumann
8de5c7be3a Run icicle tests 2025-04-04 15:34:58 +02:00
Maurice Heumann
6b6d2d29f7 Merge icicle progress (#178) 2025-04-04 13:34:26 +02:00
Maurice Heumann
24df7c65c2 Support accurate instruction counts 2025-04-04 13:13:09 +02:00
Maurice Heumann
204159f137 Support violation hooks 2025-04-02 08:21:37 +02:00
momo5502
f5b77ffa67 Tests 2025-04-02 07:03:01 +02:00
momo5502
84268bc7e3 More icicle progress 2025-04-02 06:28:01 +02:00
momo5502
ec235202fb Prepare instruction hook injection 2025-04-01 20:54:08 +02:00
momo5502
5846d2c0b9 Generalize hook store 2025-04-01 20:54:08 +02:00
momo5502
bdf5d60fd9 Implement serialization 2025-04-01 20:54:08 +02:00
Maurice Heumann
31464c1c68 Bump deps/googletest from 2ae29b5 to 52204f7 (#177)
Bumps [deps/googletest](https://github.com/google/googletest) from
`2ae29b5` to `52204f7`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="52204f78f9"><code>52204f7</code></a>
Remove obsolete references to LinuxThreads.</li>
<li>See full diff in <a
href="2ae29b52fd...52204f78f9">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2025-04-01 20:18:29 +02:00
Maurice Heumann
960db24193 Bump reactivecircus/android-emulator-runner from 2.33.0 to 2.34.0 (#176)
Bumps
[reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner)
from 2.33.0 to 2.34.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/reactivecircus/android-emulator-runner/releases">reactivecircus/android-emulator-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.34.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Allow arbitrary value for <code>api-level</code> such as
<code>Baklava</code> and <code>35-ext15</code>. by <a
href="https://github.com/TimoPtr"><code>@​TimoPtr</code></a> in <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">ReactiveCircus/android-emulator-runner#428</a></li>
<li>Add option to specify <code>system-image-api-level</code> to use a
system image with a different API level than the platform. by <a
href="https://github.com/TimoPtr"><code>@​TimoPtr</code></a> in <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">ReactiveCircus/android-emulator-runner#428</a></li>
<li>Support automotive and desktop targets:
<code>android-automotive</code>,
<code>android-automotive-playstore</code>, <code>android-desktop</code>.
by <a href="https://github.com/TimoPtr"><code>@​TimoPtr</code></a> in <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">ReactiveCircus/android-emulator-runner#428</a></li>
<li>Add <code>Baklava</code> support by <a
href="https://github.com/yujincheng08"><code>@​yujincheng08</code></a>
in <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/424">ReactiveCircus/android-emulator-runner#424</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/TimoPtr"><code>@​TimoPtr</code></a> made
their first contribution in <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">ReactiveCircus/android-emulator-runner#428</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ReactiveCircus/android-emulator-runner/compare/v2.33.0...v2.34.0">https://github.com/ReactiveCircus/android-emulator-runner/compare/v2.33.0...v2.34.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md">reactivecircus/android-emulator-runner's
changelog</a>.</em></p>
<blockquote>
<h2>v2.34.0</h2>
<ul>
<li>Allow arbitrary value for <code>api-level</code> such as
<code>Baklava</code> and <code>35-ext15</code>. - <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">428</a></li>
<li>Add option to specify <code>system-image-api-level</code> to use a
system image with a different API level than the platform. - <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">428</a></li>
<li>Support automotive and desktop targets:
<code>android-automotive</code>,
<code>android-automotive-playstore</code>, <code>android-desktop</code>.
- <a
href="https://redirect.github.com/ReactiveCircus/android-emulator-runner/pull/428">428</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1dcd009011"><code>1dcd009</code></a>
Merge branch 'main' into release/v2</li>
<li><a
href="2548f9f3fc"><code>2548f9f</code></a>
Prepare for release 2.34.0.</li>
<li><a
href="595a4563df"><code>595a456</code></a>
Update README.md and CHANGELOG.md.</li>
<li><a
href="a173d65200"><code>a173d65</code></a>
Support API levels for SDK extensions and add missing targets for
automotive ...</li>
<li><a
href="50d5b10c01"><code>50d5b10</code></a>
Add <code>Baklava</code> support (<a
href="https://redirect.github.com/reactivecircus/android-emulator-runner/issues/424">#424</a>)</li>
<li>See full diff in <a
href="https://github.com/reactivecircus/android-emulator-runner/compare/v2.33.0...v2.34.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=reactivecircus/android-emulator-runner&package-manager=github_actions&previous-version=2.33.0&new-version=2.34.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2025-04-01 20:08:46 +02:00
dependabot[bot]
ae00e664e1 Bump deps/googletest from 2ae29b5 to 52204f7
Bumps [deps/googletest](https://github.com/google/googletest) from `2ae29b5` to `52204f7`.
- [Release notes](https://github.com/google/googletest/releases)
- [Commits](2ae29b52fd...52204f78f9)

---
updated-dependencies:
- dependency-name: deps/googletest
  dependency-version: 52204f78f94d7512df1f0f3bea1d47437a2c3a58
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 17:54:04 +00:00
dependabot[bot]
30f752cc15 Bump reactivecircus/android-emulator-runner from 2.33.0 to 2.34.0
Bumps [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) from 2.33.0 to 2.34.0.
- [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases)
- [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md)
- [Commits](https://github.com/reactivecircus/android-emulator-runner/compare/v2.33.0...v2.34.0)

---
updated-dependencies:
- dependency-name: reactivecircus/android-emulator-runner
  dependency-version: 2.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-01 17:48:31 +00:00
Maurice Heumann
c0e2ef1a89 First step towards supporting icicle-emu (#175)
This PR aims to provide initial support for icicle-emu.
It's not done yet, but things are making progress.
As it contains interface adjustments and fixes for unicorn, merging the
current state makes sense.
2025-04-01 19:22:48 +02:00
momo5502
1cdf280fcf Support disabling rust code 2025-04-01 18:49:41 +02:00
momo5502
7d5555e985 Fix unicorn and switch back to it as default emulator 2025-04-01 18:37:00 +02:00
momo5502
afd9344e97 Extract registers 2025-04-01 18:34:29 +02:00
momo5502
fd018c46b4 Support saving and restoring registers 2025-04-01 18:23:24 +02:00