diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4993b209..2afb2310 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,14 +20,6 @@ on: options: - "true" - "false" - icicle_debug: - description: "Run debug tests with icicle emulator" - type: choice - required: false - default: "false" - options: - - "true" - - "false" #concurrency: # group: ${{ github.ref }} @@ -344,7 +336,6 @@ jobs: run: cp build/${{matrix.preset}}/artifacts/test-sample.exe build/${{matrix.preset}}/artifacts/root/filesys/c/ - name: CMake Test - if: "${{ matrix.emulator != 'Icicle' || matrix.configuration != 'Debug' || github.event.inputs.icicle_debug == 'true' || github.event.inputs.icicle_debug == 'true' || github.event_name == 'schedule' }}" run: cd build/${{matrix.preset}} && ctest --verbose -j env: EMULATOR_ROOT: ${{github.workspace}}/build/${{matrix.preset}}/artifacts/root @@ -410,7 +401,6 @@ jobs: run: cp build/${{matrix.preset}}/artifacts/test-sample.exe build/${{matrix.preset}}/artifacts/root/filesys/c/ - name: Run Test - if: "${{ matrix.emulator != 'Icicle' || matrix.configuration != 'Debug' || github.event.inputs.icicle_debug == 'true' || github.event.inputs.icicle_debug == 'true' || github.event_name == 'schedule' }}" uses: reactivecircus/android-emulator-runner@v2.34.0 with: api-level: 29 diff --git a/src/emulator/emulator.hpp b/src/emulator/emulator.hpp index 05ee17cf..cf5cad1b 100644 --- a/src/emulator/emulator.hpp +++ b/src/emulator/emulator.hpp @@ -18,6 +18,8 @@ class emulator : public cpu_interface, public memory_interface, public hook_inte emulator(emulator&&) = delete; emulator& operator=(emulator&&) = delete; + virtual std::string get_name() const = 0; + virtual void serialize_state(utils::buffer_serializer& buffer, bool is_snapshot) const = 0; virtual void deserialize_state(utils::buffer_deserializer& buffer, bool is_snapshot) = 0; }; diff --git a/src/icicle-emulator/icicle_x64_emulator.cpp b/src/icicle-emulator/icicle_x64_emulator.cpp index 8e6aa4b0..06622586 100644 --- a/src/icicle-emulator/icicle_x64_emulator.cpp +++ b/src/icicle-emulator/icicle_x64_emulator.cpp @@ -416,6 +416,11 @@ namespace icicle return false; } + std::string get_name() const override + { + return "icicle-emu"; + } + private: std::list> storage_{}; std::unordered_map> hooks_{}; diff --git a/src/icicle/src/icicle.rs b/src/icicle/src/icicle.rs index 5a25d445..77e6769c 100644 --- a/src/icicle/src/icicle.rs +++ b/src/icicle/src/icicle.rs @@ -6,7 +6,7 @@ use crate::registers; fn create_x64_vm() -> icicle_vm::Vm { let mut cpu_config = icicle_vm::cpu::Config::from_target_triple("x86_64-none"); - cpu_config.enable_jit = true; + cpu_config.enable_jit = false; cpu_config.enable_jit_mem = true; cpu_config.enable_shadow_stack = false; cpu_config.enable_recompilation = true; diff --git a/src/unicorn-emulator/unicorn_x64_emulator.cpp b/src/unicorn-emulator/unicorn_x64_emulator.cpp index c4840092..cd8a94cb 100644 --- a/src/unicorn-emulator/unicorn_x64_emulator.cpp +++ b/src/unicorn-emulator/unicorn_x64_emulator.cpp @@ -678,6 +678,11 @@ namespace unicorn return this->has_violation_; } + std::string get_name() const override + { + return "Unicorn Engine"; + } + private: mutable bool has_snapshots_{false}; uc_engine* uc_{};