Skip to content

Commit

Permalink
Fix warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
momo5502 committed Sep 24, 2024
1 parent 0d2ccce commit 136ff11
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 32 deletions.
2 changes: 1 addition & 1 deletion deps/mini-gdbstub
8 changes: 1 addition & 7 deletions src/bad-sample/bad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

#define THE_SIZE 30

extern "C" __declspec(noinline)
__declspec(dllexport)
extern "C" __declspec(noinline) __declspec(dllexport)
void vulnerable(const uint8_t* data, const size_t size)
{
if (size < 10)
Expand Down Expand Up @@ -38,11 +37,6 @@ void vulnerable(const uint8_t* data, const size_t size)
return;
}

if (data[0] != 'H' || data[1] != 'u')
{
return;
}

if (size < 100)
{
return;
Expand Down
1 change: 1 addition & 0 deletions src/sample/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ namespace
application, {}
};

(void)&watch_system_objects;
//watch_system_objects(win_emu);
win_emu.buffer_stdout = true;
//win_emu.verbose_calls = true;
Expand Down
7 changes: 6 additions & 1 deletion src/unicorn-emulator/function_wrapper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@ class function_wrapper : public object
{
}

c_function_type* get_function() const
c_function_type* get_c_function() const
{
return +[](Args... args, user_data_pointer user_data) -> ReturnType
{
return (*static_cast<functor_type*>(user_data))(std::forward<Args>(args)...);
};
}

void* get_function() const
{
return reinterpret_cast<void*>(this->get_c_function());
}

user_data_pointer get_user_data() const
{
return this->functor_.get();
Expand Down
11 changes: 11 additions & 0 deletions src/unicorn-emulator/unicorn.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,19 @@

#pragma warning(push)
#pragma warning(disable: 4505)

#ifdef __clang__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

#define NOMINMAX
#include <unicorn/unicorn.h>

#ifdef __clang__
#pragma GCC diagnostic pop
#endif

#pragma warning(pop)

#include <stdexcept>
Expand Down
2 changes: 1 addition & 1 deletion src/unicorn-emulator/unicorn_x64_emulator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ namespace unicorn
}*/

emulator_hook* hook_instruction(int instruction_type,
instruction_hook_callback callback)
instruction_hook_callback callback) override
{
function_wrapper<int, uc_engine*> wrapper([c = std::move(callback)](uc_engine*)
{
Expand Down
22 changes: 0 additions & 22 deletions src/windows-emulator/syscalls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,28 +92,6 @@ namespace
}
}

uint64_t get_syscall_id(const std::vector<std::string>& ntdll_syscalls,
const std::vector<std::string>& win32u_syscalls, const std::string_view name)
{
for (size_t i = 0; i < ntdll_syscalls.size(); ++i)
{
if (ntdll_syscalls[i] == name)
{
return i;
}
}

for (size_t i = 0; i < win32u_syscalls.size(); ++i)
{
if (win32u_syscalls[i] == name)
{
return i + 0x1000;
}
}

throw std::runtime_error("Unable to determine syscall id: " + std::string(name));
}

template <typename T>
requires(std::is_integral_v<T> || std::is_enum_v<T>)
T resolve_argument(x64_emulator& emu, const size_t index)
Expand Down

0 comments on commit 136ff11

Please sign in to comment.