Re: Краш при использовании системы лицензирования
Posted: Thu Jun 12, 2025 2:10 pm
Чтобы не приходилось возиться с экспортами, vmprotect по хорошему должен уметь делать demangling
Определить что для символа стоит использовать librustc_demangle вместо того что сейчас vmprotect использует сейчас можно по одному из двух признаков:
Префикс: _Z (по аналогии с C++, однако там возможный синтаксис шире чем встречается в C++)
Суффикс: 17hXXXXXXXXXXXXXXXXE (X-hexadecimal number, ::h... суффикс в Rust означает какому пакету принадлежит функция)
После которого опционально следует .llvm.XXX... (X - uppercase hex / _ / @)
- legacy схема mangling rust, библиотека что я прислал собрана с ней
Префикс: _R
Суффикс .llvm.XXX... тут тоже может присутствовать (Он добавляется когда включена параллельная компиляция кода)
- v0 схема mangling rust (https://doc.rust-lang.org/beta/rustc/sy ... bol-format)
IDA PRO по умолчанию применяет эту библиотеку для Rust кода:
https://docs.hex-rays.com/user-guide/pl ... gling-name
Определить что для символа стоит использовать librustc_demangle вместо того что сейчас vmprotect использует сейчас можно по одному из двух признаков:
Префикс: _Z (по аналогии с C++, однако там возможный синтаксис шире чем встречается в C++)
Суффикс: 17hXXXXXXXXXXXXXXXXE (X-hexadecimal number, ::h... суффикс в Rust означает какому пакету принадлежит функция)
После которого опционально следует .llvm.XXX... (X - uppercase hex / _ / @)
- legacy схема mangling rust, библиотека что я прислал собрана с ней
Префикс: _R
Суффикс .llvm.XXX... тут тоже может присутствовать (Он добавляется когда включена параллельная компиляция кода)
- v0 схема mangling rust (https://doc.rust-lang.org/beta/rustc/sy ... bol-format)
IDA PRO по умолчанию применяет эту библиотеку для Rust кода:
https://docs.hex-rays.com/user-guide/pl ... gling-name