mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-29 14:34:18 +01:00
push some bullcrap
This commit is contained in:
parent
89346359cd
commit
faad5a7c72
@ -3,6 +3,8 @@ project(Lightswitch VERSION 1 LANGUAGES CXX)
|
|||||||
set_property(GLOBAL PROPERTY CMAKE_CXX_STANDARD 17 PROPERTY CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
set_property(GLOBAL PROPERTY CMAKE_CXX_STANDARD 17 PROPERTY CMAKE_CXX_STANDARD_REQUIRED TRUE)
|
||||||
|
|
||||||
set(source_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
|
set(source_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
|
||||||
|
|
||||||
include_directories(${source_DIR}/include)
|
include_directories(${source_DIR}/include)
|
||||||
|
|
||||||
add_library(lightswitch SHARED ${source_DIR}/lightswitch.cpp)
|
add_library(lightswitch SHARED ${source_DIR}/lightswitch.cpp)
|
||||||
target_link_libraries(lightswitch ${source_DIR}/lib/${ANDROID_ABI}/libunicorn.a)
|
target_link_libraries(lightswitch ${source_DIR}/lib/${ANDROID_ABI}/libunicorn.a)
|
5
app/src/main/cpp/core/arm/cpu.cpp
Normal file
5
app/src/main/cpp/core/arm/cpu.cpp
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include "cpu.h"
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
|
||||||
|
}
|
10
app/src/main/cpp/core/arm/cpu.h
Normal file
10
app/src/main/cpp/core/arm/cpu.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <unicorn/unicorn.h>
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
class Cpu {
|
||||||
|
private:
|
||||||
|
uc_engine *uc;
|
||||||
|
};
|
||||||
|
}
|
@ -20,13 +20,20 @@ static void hook_code(uc_engine *uc, uint64_t address, uint32_t size, void *user
|
|||||||
syslog(LOG_DEBUG, ">>> Tracing instruction at 0x%" PRIx64 ", instruction size = 0x%x\n", size);
|
syslog(LOG_DEBUG, ">>> Tracing instruction at 0x%" PRIx64 ", instruction size = 0x%x\n", size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void hook_intr(uc_engine *uc, uint32_t intno, void *user_data)
|
||||||
|
{
|
||||||
|
if (intno == 2) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT jstring JNICALL
|
extern "C" JNIEXPORT jstring JNICALL
|
||||||
Java_gq_cyuubi_lightswitch_MainActivity_stringFromJNI(
|
Java_gq_cyuubi_lightswitch_MainActivity_stringFromJNI(
|
||||||
JNIEnv *env,
|
JNIEnv *env,
|
||||||
jobject /* this */) {
|
jobject /* this */) {
|
||||||
uc_engine *uc;
|
uc_engine *uc;
|
||||||
uc_err err;
|
uc_err err;
|
||||||
uc_hook trace1, trace2;
|
uc_hook trace1, trace2, intr;
|
||||||
|
|
||||||
int64_t x11 = 0x12345678; // X11 register
|
int64_t x11 = 0x12345678; // X11 register
|
||||||
int64_t x13 = 0x10000 + 0x8; // X13 register
|
int64_t x13 = 0x10000 + 0x8; // X13 register
|
||||||
@ -58,6 +65,8 @@ Java_gq_cyuubi_lightswitch_MainActivity_stringFromJNI(
|
|||||||
// tracing one instruction at ADDRESS with customized callback
|
// tracing one instruction at ADDRESS with customized callback
|
||||||
uc_hook_add(uc, &trace2, UC_HOOK_CODE, (void*)hook_code, NULL, ADDRESS, ADDRESS);
|
uc_hook_add(uc, &trace2, UC_HOOK_CODE, (void*)hook_code, NULL, ADDRESS, ADDRESS);
|
||||||
|
|
||||||
|
uc_hook_add(uc, &intr, UC_HOOK_INTR, (void*)hook_intr, NULL, 1, 0);
|
||||||
|
|
||||||
// emulate machine code in infinite time (last param = 0), or when
|
// emulate machine code in infinite time (last param = 0), or when
|
||||||
// finishing all the code.
|
// finishing all the code.
|
||||||
err = uc_emu_start(uc, ADDRESS, ADDRESS + sizeof(ARM_CODE) -1, 0, 0);
|
err = uc_emu_start(uc, ADDRESS, ADDRESS + sizeof(ARM_CODE) -1, 0, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user