Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Port to Rizin
  • Loading branch information
thestr4ng3r committed Dec 7, 2020
1 parent 0e9b0c9 commit 2b8ac6e
Show file tree
Hide file tree
Showing 52 changed files with 954 additions and 954 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/ccpp.yml
Expand Up @@ -29,7 +29,8 @@ jobs:
steps:
- uses: actions/checkout@v2
with:
submodules: true # 'recursive' 'true' or 'false'
token: ${{ secrets.RIZIN_TOKEN }} # TODO: remove when the repo is public
submodules: recursive
persist-credentials: false
- name: apt dependencies
if: contains(matrix.os, 'ubuntu')
Expand Down Expand Up @@ -101,20 +102,20 @@ jobs:
then
cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCUTTER_ENABLE_PYTHON=ON \
-DCMAKE_BUILD_TYPE=Release \
-DPYTHON_LIBRARY="$CUTTER_DEPS_PYTHON_PREFIX/lib/libpython3.6m.so.1.0" \
-DPYTHON_INCLUDE_DIR="$CUTTER_DEPS_PYTHON_PREFIX/include/python3.6m" \
-DPYTHON_EXECUTABLE="$CUTTER_DEPS_PYTHON_PREFIX/bin/python3" \
-DCUTTER_ENABLE_PYTHON_BINDINGS=OFF \
-DCUTTER_ENABLE_CRASH_REPORTS=ON \
-DCUTTER_USE_BUNDLED_RADARE2=ON \
../src
-DCUTTER_USE_BUNDLED_RIZIN=ON \
../src && \
else
cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCUTTER_USE_BUNDLED_RADARE2=ON \
-DCUTTER_USE_BUNDLED_RIZIN=ON \
../src
fi
ninja
Expand All @@ -137,7 +138,7 @@ jobs:
-DCUTTER_ENABLE_PYTHON=ON \
-DCUTTER_ENABLE_PYTHON_BINDINGS=ON \
-DCUTTER_ENABLE_CRASH_REPORTS=ON \
-DCUTTER_USE_BUNDLED_RADARE2=ON \
-DCUTTER_USE_BUNDLED_RIZIN=ON \
-DBREAKPAD_FRAMEWORK_DIR="$BREAKPAD_FRAMEWORK_DIR" \
../src && \
make -j4;
Expand All @@ -163,7 +164,7 @@ jobs:
set PACKAGE_NAME=cutter-git-x64.Windows
cmake ^
-DCMAKE_BUILD_TYPE=Release ^
-DCUTTER_USE_BUNDLED_RADARE2=ON ^
-DCUTTER_USE_BUNDLED_RIZIN=ON ^
-DCUTTER_ENABLE_PYTHON=ON ^
-DCUTTER_ENABLE_PYTHON_BINDINGS=ON ^
-DCUTTER_PACKAGE_DEPENDENCIES=ON ^
Expand Down
193 changes: 98 additions & 95 deletions .gitignore
@@ -1,96 +1,99 @@
# Binaries
AStyle*

# OSX files
*.DS_Store
.AppleDouble
.LSOverride

# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib

# Qt files
*.qmake.cache
*.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
qrc_*.cpp
moc_*.h
ui_*.h
build*/
cmake-build-*/
# Binaries
AStyle*

# OSX files
*.DS_Store
.AppleDouble
.LSOverride

# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib

# Qt files
*.qmake.cache
*.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
qrc_*.cpp
moc_*.h
ui_*.h
build*/
cmake-build-*/
/src-build/

# Build folders
Debug
Release

# QtCreator
*.autosave
*.qmlproject.user
*.qmlproject.user.*
CMakeLists.txt.user

# CLion
.idea

# Vim
*.swp
*~

# Git mergetool
~.orig

# CMake Files:
src/*_automoc.cpp
*CMakeCache.txt*
*cmake_install.cmake*
src/CMakeFiles/*

# Prepare_r2
ninja.exe
r2_dist_x86/
r2_dist_x64/
r2_dist/
*.pdb

# Mesonbuild
src/subprojects/

# Python
__pycache__
/python/

# Other
compile_commands.json
.ccls-cache
docs/source/_build

# vscode
/.vscode/*
!/.vscode/settings.json
!/.vscode/extensions.json

# Visual Studio CMake
src/out
.vs

# cutter-deps
/cutter-deps

/breakpad

# astyle backup .orig files
*.orig

# Build folders
Debug
Release

# QtCreator
*.autosave
*.qmlproject.user
*.qmlproject.user.*
CMakeLists.txt.user

# CLion
.idea

# Vim
*.swp
*~

# Git mergetool
~.orig

# CMake Files:
src/*_automoc.cpp
*CMakeCache.txt*
*cmake_install.cmake*
src/CMakeFiles/*

# Prepare_r2
ninja.exe
r2_dist_x86/
r2_dist_x64/
r2_dist/
*.pdb

# Mesonbuild
src/subprojects/

# Python
__pycache__
/python/

# Other
compile_commands.json
.ccls-cache
docs/source/_build

# vscode
/.vscode/*
!/.vscode/settings.json
!/.vscode/extensions.json

# Visual Studio CMake
src/out
.vs

# cutter-deps
/cutter-deps

/breakpad

# astyle backup .orig files
*.orig

# Gdb's history
.gdb_history
8 changes: 4 additions & 4 deletions .gitmodules
@@ -1,6 +1,6 @@
[submodule "radare2"]
path = radare2
url = https://github.com/radareorg/radare2
[submodule "rizin"]
path = rizin
url = git@github.com:rizinorg/rizin
[submodule "src/translations"]
path = src/translations
url = https://github.com/radareorg/cutter-translations
url = git@github.com:rizinorg/cutter-translations
1 change: 0 additions & 1 deletion radare2
Submodule radare2 deleted from 293cf5
1 change: 1 addition & 0 deletions rizin
Submodule rizin added at 8b30c4
22 changes: 11 additions & 11 deletions src/CMakeLists.txt
Expand Up @@ -10,9 +10,9 @@ include(Utils)

set(CUTTER_PYTHON_MIN 3.5)

option(CUTTER_USE_BUNDLED_RADARE2 "Use radare2 from src/radare2 submodule instead of searching for it on the system" OFF)
option(CUTTER_USE_ADDITIONAL_RADARE2_PATHS "Search radare2 in additional paths which are not part of default system library paths.\
Disable this option if you are linking against radare2 pacakged as proper system library or in a custom path and additional are paths causing problems." ON)
option(CUTTER_USE_BUNDLED_RIZIN "Use rizin from src/rizin submodule instead of searching for it on the system" OFF)
option(CUTTER_USE_ADDITIONAL_RIZIN_PATHS "Search rizin in additional paths which are not part of default system library paths.\
Disable this option if you are linking against rizin pacakged as proper system library or in a custom path and additional are paths causing problems." ON)
option(CUTTER_ENABLE_PYTHON "Enable Python integration. Requires Python >= ${CUTTER_PYTHON_MIN}." OFF)
option(CUTTER_ENABLE_PYTHON_BINDINGS "Enable generating Python bindings with Shiboken2. Unused if CUTTER_ENABLE_PYTHON=OFF." OFF)
option(CUTTER_ENABLE_CRASH_REPORTS "Enable crash report system. Unused if CUTTER_ENABLE_CRASH_REPORTS=OFF" OFF)
Expand Down Expand Up @@ -65,12 +65,12 @@ find_package(${QT_PREFIX} REQUIRED COMPONENTS Core Widgets Gui Svg Network)

include(CutterInstallDirs)

if(CUTTER_USE_BUNDLED_RADARE2)
include(BundledRadare2)
set(RADARE2_TARGET Radare2)
if(CUTTER_USE_BUNDLED_RIZIN)
include(BundledRizin)
set(RIZIN_TARGET Rizin)
else()
find_package(Radare2 REQUIRED)
set(RADARE2_TARGET Radare2::libr)
find_package(Rizin REQUIRED)
set(RIZIN_TARGET Rizin::librz)
endif()

if(CUTTER_ENABLE_PYTHON)
Expand Down Expand Up @@ -129,7 +129,7 @@ endif()
message(STATUS "")
message(STATUS "Building Cutter version ${CUTTER_VERSION_FULL}")
message(STATUS "Options:")
message(STATUS "- Bundled radare2: ${CUTTER_USE_BUNDLED_RADARE2}")
message(STATUS "- Bundled rizin: ${CUTTER_USE_BUNDLED_RIZIN}")
message(STATUS "- Python: ${CUTTER_ENABLE_PYTHON}")
message(STATUS "- Python Bindings: ${CUTTER_ENABLE_PYTHON_BINDINGS}")
message(STATUS "- Crash Handling: ${CUTTER_ENABLE_CRASH_REPORTS}")
Expand Down Expand Up @@ -226,7 +226,7 @@ if(CUTTER_ENABLE_CRASH_REPORTS)
endif()

target_link_libraries(Cutter PUBLIC ${QT_PREFIX}::Core ${QT_PREFIX}::Widgets ${QT_PREFIX}::Gui PRIVATE ${QT_PREFIX}::Svg ${QT_PREFIX}::Network)
target_link_libraries(Cutter PUBLIC ${RADARE2_TARGET})
target_link_libraries(Cutter PUBLIC ${RIZIN_TARGET})
if(CUTTER_ENABLE_PYTHON)
if (WIN32)
# On windows some of the Python STABLE API functions are in seperate library
Expand Down Expand Up @@ -255,7 +255,7 @@ if(CUTTER_ENABLE_PYTHON)
list(APPEND BINDINGS_INCLUDE_DIRS "${_qt5Core_install_prefix}/include/QtWidgets")
endif()
list(APPEND BINDINGS_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS})
list(APPEND BINDINGS_INCLUDE_DIRS ${Radare2_INCLUDE_DIRS})
list(APPEND BINDINGS_INCLUDE_DIRS ${Rizin_INCLUDE_DIRS})
list(APPEND BINDINGS_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}")
if (NOT WIN32)
string(REPLACE ";" ":" BINDINGS_INCLUDE_DIRS "${BINDINGS_INCLUDE_DIRS}")
Expand Down
28 changes: 14 additions & 14 deletions src/CutterApplication.cpp
Expand Up @@ -75,8 +75,8 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
}

// Check r2 version
QString r2version = r_core_version();
QString localVersion = "" R2_GITTAP;
QString r2version = rz_core_version();
QString localVersion = "" RZ_GITTAP;
if (r2version != localVersion) {
QMessageBox msg;
msg.setIcon(QMessageBox::Critical);
Expand All @@ -99,7 +99,7 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
#endif

#ifdef Q_OS_WIN
// Redefine r_sys_prefix() behaviour
// Redefine rz_sys_prefix() behaviour
qputenv("R_ALT_SRC_DIR", "1");
#endif

Expand Down Expand Up @@ -151,8 +151,8 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
appdir.cdUp(); // appdir

auto sleighHome = appdir;
sleighHome.cd("share/radare2/plugins/r2ghidra_sleigh"); // appdir/share/radare2/plugins/r2ghidra_sleigh
Core()->setConfig("r2ghidra.sleighhome", sleighHome.absolutePath());
sleighHome.cd("share/radare2/plugins/rz_ghidra_sleigh"); // appdir/share/radare2/plugins/rz_ghidra_sleigh
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());

auto r2decHome = appdir;
r2decHome.cd("share/radare2/plugins/r2dec-js"); // appdir/share/radare2/plugins/r2dec-js
Expand All @@ -162,15 +162,15 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc

#ifdef Q_OS_MACOS
{
auto r2prefix = QDir(QCoreApplication::applicationDirPath()); // Contents/MacOS
r2prefix.cdUp(); // Contents
r2prefix.cd("Resources/r2"); // Contents/Resources/r2
auto rzprefix = QDir(QCoreApplication::applicationDirPath()); // Contents/MacOS
rzprefix.cdUp(); // Contents
rzprefix.cd("Resources/r2"); // Contents/Resources/r2

auto sleighHome = r2prefix;
sleighHome.cd("share/radare2/plugins/r2ghidra_sleigh"); // Contents/Resources/r2/share/radare2/plugins/r2ghidra_sleigh
Core()->setConfig("r2ghidra.sleighhome", sleighHome.absolutePath());
auto sleighHome = rzprefix;
sleighHome.cd("share/radare2/plugins/rz_ghidra_sleigh"); // Contents/Resources/r2/share/radare2/plugins/rz_ghidra_sleigh
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());

auto r2decHome = r2prefix;
auto r2decHome = rzprefix;
r2decHome.cd("share/radare2/plugins/r2dec-js"); // Contents/Resources/r2/share/radare2/plugins/r2dec-js
qputenv("R2DEC_HOME", r2decHome.absolutePath().toLocal8Bit());
}
Expand All @@ -182,8 +182,8 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
#ifdef Q_OS_WIN
{
auto sleighHome = QDir(QCoreApplication::applicationDirPath());
sleighHome.cd("lib/plugins/r2ghidra_sleigh");
Core()->setConfig("r2ghidra.sleighhome", sleighHome.absolutePath());
sleighHome.cd("lib/plugins/rz_ghidra_sleigh");
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());
}
#endif
}
Expand Down
2 changes: 1 addition & 1 deletion src/Main.cpp
Expand Up @@ -70,7 +70,7 @@ int main(int argc, char *argv[])
qRegisterMetaType<QList<StringDescription>>();
qRegisterMetaType<QList<FunctionDescription>>();

QCoreApplication::setOrganizationName("RadareOrg");
QCoreApplication::setOrganizationName("RizinOrg");
QCoreApplication::setApplicationName("Cutter");

Cutter::initializeSettings();
Expand Down

0 comments on commit 2b8ac6e

Please sign in to comment.