Update rizin & translation submodules (#3194)

* Fix plugins paths for windows builds due recent changes in rizin
* Disable openssl support for yara win
* Disable use_sys_yara in linux/osx/win builds
This commit is contained in:
Giovanni 2023-06-20 16:40:57 +08:00 committed by GitHub
parent 44917603fa
commit 4742003ff4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 30 additions and 42 deletions

2
dist/CMakeLists.txt vendored
View File

@ -7,7 +7,7 @@ unset(RZ_GHIDRA_PREFIX_PATH)
if(WIN32) if(WIN32)
set(CPACK_GENERATOR "ZIP") set(CPACK_GENERATOR "ZIP")
set(RIZIN_INSTALL_PLUGDIR "lib/plugins") set(RIZIN_INSTALL_PLUGDIR "lib/rizin/plugins")
if (CUTTER_PACKAGE_DEPENDENCIES) if (CUTTER_PACKAGE_DEPENDENCIES)
if (CUTTER_ENABLE_PYTHON) if (CUTTER_ENABLE_PYTHON)

View File

@ -5,12 +5,13 @@ if (-not (Test-Path -Path 'jsdec' -PathType Container)) {
git clone https://github.com/rizinorg/jsdec.git --depth 1 --branch master git clone https://github.com/rizinorg/jsdec.git --depth 1 --branch master
} }
cd jsdec cd jsdec
& meson.exe --buildtype=release -Dc_args=-DDUK_USE_DATE_NOW_WINDOWS -Djsc_folder=".." --prefix=$dist p build & meson.exe --buildtype=release -Dc_args=-DDUK_USE_DATE_NOW_WINDOWS -Djsc_folder=".." --prefix="$dist" p build
ninja -C build install ninja -C build install
$ErrorActionPreference = 'Stop' $ErrorActionPreference = 'Stop'
$pathdll = "$dist\lib\plugins\core_pdd.dll" $pathdll = "$dist\lib\rizin\plugins\core_pdd.dll"
if(![System.IO.File]::Exists($pathdll)) { if(![System.IO.File]::Exists($pathdll)) {
type build\meson-logs\meson-log.txt type build\meson-logs\meson-log.txt
ls "$dist\lib\rizin\plugins\"
throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll)) throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll))
} }
Remove-Item -Recurse -Force $dist\lib\plugins\core_pdd.lib Remove-Item -Recurse -Force "$dist\lib\rizin\plugins\core_pdd.lib"

View File

@ -7,10 +7,10 @@ if (-not (Test-Path -Path 'libswift' -PathType Container)) {
cd libswift cd libswift
& meson.exe --buildtype=release --prefix=$dist build & meson.exe --buildtype=release --prefix=$dist build
ninja -C build install ninja -C build install
$pathdll = "$dist/lib/plugins/swift.dll" $pathdll = "$dist\lib\rizin\plugins\swift.dll"
if(![System.IO.File]::Exists($pathdll)) { if(![System.IO.File]::Exists($pathdll)) {
type build/meson-logs/meson-log.txt type build/meson-logs/meson-log.txt
ls "$dist/lib/plugins/" ls "$dist\lib\rizin\plugins\"
throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll)) throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll))
} }
Remove-Item -Recurse -Force $dist/lib/plugins/swift.lib Remove-Item -Recurse -Force "$dist\lib\rizin\plugins\swift.lib"

View File

@ -8,15 +8,15 @@ if (-not (Test-Path -Path 'rz_libyara' -PathType Container)) {
git -C rz_libyara submodule update git -C rz_libyara submodule update
} }
cd rz_libyara cd rz_libyara
& meson.exe --buildtype=release --prefix=$dist build & meson.exe --buildtype=release --prefix=$dist -Duse_sys_yara=disabled -Denable_openssl=false build
ninja -C build install ninja -C build install
$pathdll = "$dist/lib/plugins/rz_yara.dll" $pathdll = "$dist\lib\rizin\plugins\rz_yara.dll"
if(![System.IO.File]::Exists($pathdll)) { if(![System.IO.File]::Exists($pathdll)) {
type build/meson-logs/meson-log.txt type build/meson-logs/meson-log.txt
ls "$dist/lib/plugins/" ls "$dist\lib\rizin\plugins\"
throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll)) throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll))
} }
Remove-Item -Recurse -Force $dist/lib/plugins/rz_yara.lib Remove-Item -Recurse -Force "$dist\lib\rizin\plugins\rz_yara.lib"
cd cutter-plugin cd cutter-plugin
mkdir build mkdir build

View File

@ -8,10 +8,10 @@ if (-not (Test-Path -Path 'rz-silhouette' -PathType Container)) {
cd rz-silhouette cd rz-silhouette
& meson.exe --buildtype=release --prefix=$dist build & meson.exe --buildtype=release --prefix=$dist build
ninja -C build install ninja -C build install
$pathdll = "$dist/lib/plugins/rz_silhouette.dll" $pathdll = "$dist\lib\rizin\plugins\rz_silhouette.dll"
if(![System.IO.File]::Exists($pathdll)) { if(![System.IO.File]::Exists($pathdll)) {
type build/meson-logs/meson-log.txt type build/meson-logs/meson-log.txt
ls "$dist/lib/plugins/" ls "$dist\lib\rizin\plugins\"
throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll)) throw (New-Object System.IO.FileNotFoundException("File not found: $pathdll", $pathdll))
} }
Remove-Item -Recurse -Force $dist/lib/plugins/rz_silhouette.lib Remove-Item -Recurse -Force "$dist\lib\rizin\plugins\rz_silhouette.lib"

2
rizin

@ -1 +1 @@
Subproject commit 9ab709bc34843f04ffde3b63322c809596123e77 Subproject commit 9c6feafd4733903fca0cdad50b3bd213ab2b6228

View File

@ -15,7 +15,7 @@ fi
cd rz_libyara cd rz_libyara
meson --buildtype=release --pkg-config-path="$INSTALL_PREFIX/lib/pkgconfig" --prefix="$INSTALL_PREFIX" build meson --buildtype=release --pkg-config-path="$INSTALL_PREFIX/lib/pkgconfig" --prefix="$INSTALL_PREFIX" -Duse_sys_yara=disabled build
ninja -C build install ninja -C build install
cd cutter-plugin cd cutter-plugin

View File

@ -33,9 +33,9 @@
// has RZ_GITTAP defined and uses it in rz_core_version(). // has RZ_GITTAP defined and uses it in rz_core_version().
// After that, RZ_GITTAP is not defined anymore and RZ_VERSION is used. // After that, RZ_GITTAP is not defined anymore and RZ_VERSION is used.
#ifdef RZ_GITTAP #ifdef RZ_GITTAP
#define CUTTER_COMPILE_TIME_RZ_VERSION "" RZ_GITTAP # define CUTTER_COMPILE_TIME_RZ_VERSION "" RZ_GITTAP
#else #else
#define CUTTER_COMPILE_TIME_RZ_VERSION "" RZ_VERSION # define CUTTER_COMPILE_TIME_RZ_VERSION "" RZ_VERSION
#endif #endif
CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc, argv) CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc, argv)
@ -162,7 +162,8 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
appdir.cdUp(); // appdir appdir.cdUp(); // appdir
auto sleighHome = appdir; auto sleighHome = appdir;
sleighHome.cd("lib/rizin/plugins/rz_ghidra_sleigh/"); // appdir/lib/rizin/plugins/rz_ghidra_sleigh/ // appdir/lib/rizin/plugins/rz_ghidra_sleigh/
sleighHome.cd("lib/rizin/plugins/rz_ghidra_sleigh/");
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath()); Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());
} }
#endif #endif
@ -174,8 +175,8 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
rzprefix.cd("Resources"); // Contents/Resources/ rzprefix.cd("Resources"); // Contents/Resources/
auto sleighHome = rzprefix; auto sleighHome = rzprefix;
sleighHome.cd( // Contents/Resources/lib/rizin/plugins/rz_ghidra_sleigh
"lib/rizin/plugins/rz_ghidra_sleigh"); // Contents/Resources/lib/rizin/plugins/rz_ghidra_sleigh sleighHome.cd("lib/rizin/plugins/rz_ghidra_sleigh");
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath()); Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());
} }
#endif #endif
@ -183,7 +184,7 @@ CutterApplication::CutterApplication(int &argc, char **argv) : QApplication(argc
#if defined(Q_OS_WIN) && defined(CUTTER_ENABLE_PACKAGING) #if defined(Q_OS_WIN) && defined(CUTTER_ENABLE_PACKAGING)
{ {
auto sleighHome = QDir(QCoreApplication::applicationDirPath()); auto sleighHome = QDir(QCoreApplication::applicationDirPath());
sleighHome.cd("lib/plugins/rz_ghidra_sleigh"); sleighHome.cd("lib/rizin/plugins/rz_ghidra_sleigh");
Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath()); Core()->setConfig("ghidra.sleighhome", sleighHome.absolutePath());
} }
#endif #endif

View File

@ -3084,8 +3084,6 @@ QList<ImportDescription> CutterCore::getAllImports()
RzBinImport *import; RzBinImport *import;
RzListIter *iter; RzListIter *iter;
bool va = core->io->va || core->bin->is_debugger; bool va = core->io->va || core->bin->is_debugger;
int bin_demangle = getConfigi("bin.demangle");
int keep_lib = getConfigi("bin.demangle.libs");
CutterRzListForeach (imports, iter, RzBinImport, import) { CutterRzListForeach (imports, iter, RzBinImport, import) {
if (RZ_STR_ISEMPTY(import->name)) { if (RZ_STR_ISEMPTY(import->name)) {
continue; continue;
@ -3099,13 +3097,6 @@ QList<ImportDescription> CutterCore::getAllImports()
if (RZ_STR_ISNOTEMPTY(import->classname)) { if (RZ_STR_ISNOTEMPTY(import->classname)) {
name = QString("%1.%2").arg(import->classname, import->name); name = QString("%1.%2").arg(import->classname, import->name);
} }
if (bin_demangle) {
char *dname = rz_bin_demangle(bf, NULL, name.toUtf8().constData(),
importDescription.plt, keep_lib);
if (dname) {
name = fromOwnedCharPtr(dname);
}
}
if (core->bin->prefix) { if (core->bin->prefix) {
name = QString("%1.%2").arg(core->bin->prefix, name); name = QString("%1.%2").arg(core->bin->prefix, name);
} }
@ -3135,7 +3126,6 @@ QList<ExportDescription> CutterCore::getAllExports()
return {}; return {};
} }
QString lang = getConfigi("bin.demangle") ? getConfig("bin.lang") : "";
bool va = core->io->va || core->bin->is_debugger; bool va = core->io->va || core->bin->is_debugger;
QList<ExportDescription> ret; QList<ExportDescription> ret;
@ -3145,7 +3135,7 @@ QList<ExportDescription> CutterCore::getAllExports()
} }
RzBinSymNames sn = {}; RzBinSymNames sn = {};
rz_core_sym_name_init(core, &sn, symbol, lang.isEmpty() ? NULL : lang.toUtf8().constData()); rz_core_sym_name_init(&sn, symbol);
ExportDescription exportDescription; ExportDescription exportDescription;
exportDescription.vaddr = rva(bf->o, symbol->paddr, symbol->vaddr, va); exportDescription.vaddr = rva(bf->o, symbol->paddr, symbol->vaddr, va);
@ -3543,19 +3533,18 @@ QList<BinClassDescription> CutterCore::getAllClassesFromBin()
RzListIter *iter, *iter2, *iter3; RzListIter *iter, *iter2, *iter3;
RzBinClass *c; RzBinClass *c;
RzBinSymbol *sym; RzBinSymbol *sym;
RzBinField *f; RzBinClassField *f;
CutterRzListForeach (cs, iter, RzBinClass, c) { CutterRzListForeach (cs, iter, RzBinClass, c) {
BinClassDescription classDescription; BinClassDescription classDescription;
classDescription.name = c->name; classDescription.name = c->name;
classDescription.addr = c->addr; classDescription.addr = c->addr;
classDescription.index = c->index;
CutterRzListForeach (c->methods, iter2, RzBinSymbol, sym) { CutterRzListForeach (c->methods, iter2, RzBinSymbol, sym) {
BinClassMethodDescription methodDescription; BinClassMethodDescription methodDescription;
methodDescription.name = sym->name; methodDescription.name = sym->name;
methodDescription.addr = sym->vaddr; methodDescription.addr = sym->vaddr;
classDescription.methods << methodDescription; classDescription.methods << methodDescription;
} }
CutterRzListForeach (c->fields, iter3, RzBinField, f) { CutterRzListForeach (c->fields, iter3, RzBinClassField, f) {
BinClassFieldDescription fieldDescription; BinClassFieldDescription fieldDescription;
fieldDescription.name = f->name; fieldDescription.name = f->name;
fieldDescription.addr = f->vaddr; fieldDescription.addr = f->vaddr;
@ -3591,7 +3580,6 @@ QList<BinClassDescription> CutterCore::getAllClassesFromFlags()
} }
desc->name = match.captured(1); desc->name = match.captured(1);
desc->addr = item.offset; desc->addr = item.offset;
desc->index = RVA_INVALID;
continue; continue;
} }
@ -3605,7 +3593,6 @@ QList<BinClassDescription> CutterCore::getAllClassesFromFlags()
BinClassDescription cls; BinClassDescription cls;
cls.name = tr("Unknown (%1)").arg(className); cls.name = tr("Unknown (%1)").arg(className);
cls.addr = RVA_INVALID; cls.addr = RVA_INVALID;
cls.index = 0;
ret << cls; ret << cls;
classDesc = &ret.last(); classDesc = &ret.last();
classesCache[className] = classDesc; classesCache[className] = classDesc;

View File

@ -239,7 +239,6 @@ struct BinClassDescription
QString name; QString name;
RVA addr = RVA_INVALID; RVA addr = RVA_INVALID;
RVA vtableAddr = RVA_INVALID; RVA vtableAddr = RVA_INVALID;
ut64 index = 0;
QList<BinClassBaseClassDescription> baseClasses; QList<BinClassBaseClassDescription> baseClasses;
QList<BinClassMethodDescription> methods; QList<BinClassMethodDescription> methods;
QList<BinClassFieldDescription> fields; QList<BinClassFieldDescription> fields;

@ -1 +1 @@
Subproject commit e8fc5ca1acd70fd82a2ac9ac02b0261e57703250 Subproject commit 5ac7217b12623c7bfd0378380f923cf694ccee22

View File

@ -13,7 +13,7 @@ ComboQuickFilterView::ComboQuickFilterView(QWidget *parent)
[this]() { emit filterTextChanged(ui->lineEdit->text()); }); [this]() { emit filterTextChanged(ui->lineEdit->text()); });
connect(ui->lineEdit, &QLineEdit::textChanged, this, connect(ui->lineEdit, &QLineEdit::textChanged, this,
[this](const QString &text) { debounceTimer->start(150); }); [this]() { debounceTimer->start(150); });
} }
ComboQuickFilterView::~ComboQuickFilterView() ComboQuickFilterView::~ComboQuickFilterView()

View File

@ -16,7 +16,7 @@ QuickFilterView::QuickFilterView(QWidget *parent, bool defaultOn)
[this]() { emit filterTextChanged(ui->filterLineEdit->text()); }); [this]() { emit filterTextChanged(ui->filterLineEdit->text()); });
connect(ui->filterLineEdit, &QLineEdit::textChanged, this, connect(ui->filterLineEdit, &QLineEdit::textChanged, this,
[this](const QString &text) { debounceTimer->start(150); }); [this]() { debounceTimer->start(150); });
if (!defaultOn) { if (!defaultOn) {
closeFilter(); closeFilter();