Cutter is a free and open-source reverse engineering platform powered by rizin

Cutter logo

Cutter

Cutter is a free and open-source reverse engineering platform powered by rizin. It aims at being an advanced and customizable reverse engineering platform while keeping the user experience in mind. Cutter is created by reverse engineers for reverse engineers.

Cutter CI Build status Total alerts

Screenshot

Learn more at cutter.re.

Getting Cutter

Download

Cutter release binaries for all major platforms (Linux, macOS, Windows) can be downloaded from GitHub Releases.

  • Linux: Download the .AppImage file. Then make it executable and run as below or use AppImageLauncher.

    chmod +x Cutter*.AppImage; ./Cutter*.AppImage

  • macOS: Download the .dmg file or use Homebrew Cask:

    brew install --cask cutter

  • Windows: Download the .zip archive or use Chocolatey:

    choco install cutter

Build from sources

To build Cutter from sources, please check the Building Docs.

Docker image

To deploy cutter using a pre-built Dockerfile, it's possible to use the provided configuration. The corresponding README.md file also contains instructions on how to get started using the docker image with minimal effort.

Documentation

User Guide

Contribution Guidelines

Developers Docs

Plugins

Cutter supports both Python and Native C++ plugins.

Our community has built many plugins and useful scripts for Cutter such as the native integration of Ghidra decompiler or the plugin to visualize DynamoRIO code coverage. You can find a list of cutter plugins linked below. Feel free to extend it with your own plugins and scripts for Cutter.

Official & Community Plugins

Plugins Development Guide

Getting Help

Please use the following channels to ask for help from Cutter developers and community:

Owner
Rizin Organization
Rizin is a free and open-source Reverse Engineering framework
Rizin Organization
Comments
  • refactor DisassemblyLeftPanel::paintEvent

    refactor DisassemblyLeftPanel::paintEvent

    Detailed description About two years ago I wrote the algorithm of calculating layers of jump arrows. It was kinda ugly and I didn't understand how it worked (+ it didn't in some corner cases), so I promised myself to refactor it someday.

    Well, this day has come.

    This new algorithm roughly x2 faster, which speeds up whole DisassemblyLeftPanel::paintEvent by ~10%. (I made some changes to algorithm after benchmarking, but I'm sure it didn't affect performance much) I replaced QMap with std::vector, because in this case it's faster to use binary search or brute search than map search because all vector data fits in L1 cache.

    Also I changed standard to C++17, because I needed auto in lambda parameters. This is C++14 feature, but if we changing standard, why not use newer one?

    Test plan (required) some screenshots (binary - /usr/bin/ls): Screenshot_20210109_055221 Screenshot_20210109_055246 Screenshot_20210109_055323

    versus old algorithm:

    Screenshot_20210109_055524 Screenshot_20210109_055441 Screenshot_20210109_055619

    As you can see, new algorithm produces a littler bit prettier results (+ is easier to understand why).

    P.S. Is it possible to know all jumps on analysis stage, so we can call this algorithm only once and then just draw visible arrows? Because now arrows appear and disappear while scrolling, and this is a bit annoying, especially if jump is longer than disassembly listing (arrow will simply disappear before you see where it leads).

  • Add crash handling system

    Add crash handling system

    Work in progress. Tested only on Linux. Create this PR to be sure you dont mind that way of implementation.

    closes #1002

    Some screenshots and how it works:

    First goes information about error (SIGSEGV, SIGILL, SIGABRT, etc). image

    Then user can choose directory to save dump (in case he decided to save it). image

    Then he can open issue on github by clicking href. image

  • Right click for seek to address and select block in hexdump view

    Right click for seek to address and select block in hexdump view

    See issue #761

    For formula input it uses Core->math(), it will not do hexidecimal without the 0x prefix as the math function in r2 does not currently resolve this. Additionally, this method should allow for reference to things like "eip + 0xFF" (in other words better to make the user explicitly define which portions of the formula are hex and which are not).

    This was a real quick implementation so let me know if you want any changes to clean it up

    Screenshots below

    screenshot at 2018-10-05 11-04-58

    Seek to Address: screenshot at 2018-10-05 11-12-05

    Select Block: screenshot at 2018-10-05 11-12-58

    Result: screenshot at 2018-10-05 11-13-52

  • Always build r2 from the submodule and statically link it

    Always build r2 from the submodule and statically link it

    Both the README with its unconditional steps to build r2 as well as communication with developers lead me to believe that the only valid way to use Cutter is with the version of r2 that comes in the submodule. However, right now, this is unnecessarily contrived: Cutter requires r2 to be installed, either system-wide in /usr/local, or in $HOME, or alternatively somewhere else, and it dynamically links r2 so that you have to specify LD_LIBRARY_PATH.

    This PR builds on the r2 PR https://github.com/radare/radare2/pull/9155 that makes libr.a built on desktop platforms actually possible to link against, and does just that. Now, there is just a single, completely foolproof way to build Cutter, and the resulting binary does not need any particular environment.

    The complete list of changes is as follows:

    • radare2 is built in the submodule with only static libraries enabled (the configure/make invocation was extracted from sys/static.sh);
    • support for using pkg-config with either qmake or cmake was removed, since the submodule is always used;
    • FindRadare2.cmake, which now only handled library discovery on Windows, was removed and replaced with a hardcoded list of libraries, since that is what the recommended qmake buildsystem does on Windows anyway.

    Thoughts?

  • Graph mouse click highlight wrong position

    Graph mouse click highlight wrong position

    Work environment

    | Questions | Answers |------------------------------------------------------|-------------------- | OS/arch/bits (mandatory) | Parrot 4.2 64 bit | File format of the file you reverse (mandatory) | ELF (happens to any format) | Architecture/bits of the file (mandatory) | x86_64 (happens to any architecture) | Cutter and r2 version, See About Cutter (mandatory) | Version 1.7.2 / Using r2 3.0.0 | Show version information full output (See About Cutter) in a pastebin document (mandatory) | https://pastebin.com/MSfrUAY6

    Expected behavior

    Cutter should display highlight color under selected object

    Actual behavior

    Cutter shows color from previous character: space, [ or any character before object; object last character does not have highlight color

    Additional Logs, screenshots, source-code, configuration dump, ...

    Screenshot: screenshot at 2018-10-11 00-48-05 Tested binary file hello.zip

  • Add text editor for .cutterrc

    Add text editor for .cutterrc

    Is your feature request related to a problem? Please describe.

    Not all of our users are familiar with .cutterrc (and even not with .radare2rc). There is no comfortable way to edit it from inside Cutter. The use of .cutterrc can complete the settings we don't expose in the UI.

    Describe the solution you'd like I suggest exposing a simple text editor widget to edit the .cutterrc file. When opened, the widget will fetch the content of .cutterrc and display it in the text editor. Then, can be updated and saved to the file.

    It would be nice to have:

    1. Syntax highlighting (in case it looks good with r2 commands)
    2. Some examples of useful settings that the user can set
  • Cutter RC Editor - Part B (basic editor)

    Cutter RC Editor - Part B (basic editor)

    Your checklist for this pull request

    Detailed description I have a created new file named InitializationFileEditor in /src/dialogs/preferences/. This handles most of the logic regarding cutterRC editor. The default location is loaded using a new function in Cutter.cpp named getCutterRCDefaultDirectory(). Due to the way .cutterrc files are loaded, this file will be loaded twice(execute all commands once, and then again) while starting Cutter.

    The following images shows the editor in working. Initially I had no .cutterrc files in any of the directories from where .cutterrc is loaded. Screenshot from 2020-04-19 00-56-45

    This is how the Initialization File Editor looks when no file is loaded.

    Screenshot from 2020-04-19 00-56-54

    Now, solarized theme has been added to the default and the highest priority .cutterrc file (last loaded one) using the editor.

    Screenshot from 2020-04-19 01-32-10

    After closing Cutter, in the next restart, solarized theme is loaded as expected.

    Screenshot from 2020-04-19 01-32-46

    Test plan (required)

    What steps should the reviewer take to test your pull request?

    • [ ] Test if the code creates a new .cutterrc file in case the file is not present in the default location.
    • [ ] Test if the code creates directory if the directory of the default location doesn't exist.
    • [ ] Test if the updates to the cutterRC from Cutter remains even after closing the preferences window and/or after closing Cutter.

    Closing issues

    Part B of #1837 will be completed by this. closes #2063

  • Got Build Error

    Got Build Error

    Followed every step including building radare2 from subdirectory but got following: The output of make [ 1%] Automatic moc, uic and rcc for target cutter Generating moc compilation cutter_automoc.cpp Generating qrc source cutter_automoc.dir/qrc_resources_HAS2BXGMQQBHVI.cpp [ 1%] Built target cutter_automoc Scanning dependencies of target cutter [ 3%] Building CXX object CMakeFiles/cutter.dir/main.cpp.o [ 5%] Building CXX object CMakeFiles/cutter.dir/cutter.cpp.o [ 6%] Building CXX object CMakeFiles/cutter.dir/widgets/DisassemblerGraphView.cpp.o [ 8%] Building CXX object CMakeFiles/cutter.dir/utils/RichTextPainter.cpp.o [ 10%] Building CXX object CMakeFiles/cutter.dir/dialogs/OptionsDialog.cpp.o [ 11%] Building CXX object CMakeFiles/cutter.dir/dialogs/AboutDialog.cpp.o [ 13%] Building CXX object CMakeFiles/cutter.dir/dialogs/CommentsDialog.cpp.o [ 15%] Building CXX object CMakeFiles/cutter.dir/dialogs/FlagDialog.cpp.o [ 16%] Building CXX object CMakeFiles/cutter.dir/dialogs/RenameDialog.cpp.o [ 18%] Building CXX object CMakeFiles/cutter.dir/dialogs/XrefsDialog.cpp.o [ 20%] Building CXX object CMakeFiles/cutter.dir/MainWindow.cpp.o [ 22%] Building CXX object CMakeFiles/cutter.dir/utils/Helpers.cpp.o [ 23%] Building CXX object CMakeFiles/cutter.dir/utils/HexAsciiHighlighter.cpp.o [ 25%] Building CXX object CMakeFiles/cutter.dir/utils/HexHighlighter.cpp.o [ 27%] Building CXX object CMakeFiles/cutter.dir/utils/Highlighter.cpp.o [ 28%] Building CXX object CMakeFiles/cutter.dir/utils/MdHighlighter.cpp.o [ 30%] Building CXX object CMakeFiles/cutter.dir/dialogs/preferences/AsmOptionsWidget.cpp.o [ 32%] Building CXX object CMakeFiles/cutter.dir/dialogs/NewFileDialog.cpp.o [ 33%] Building CXX object CMakeFiles/cutter.dir/AnalThread.cpp.o [ 35%] Building CXX object CMakeFiles/cutter.dir/widgets/CommentsWidget.cpp.o [ 37%] Building CXX object CMakeFiles/cutter.dir/widgets/ConsoleWidget.cpp.o [ 38%] Building CXX object CMakeFiles/cutter.dir/widgets/Dashboard.cpp.o [ 40%] Building CXX object CMakeFiles/cutter.dir/widgets/EntrypointWidget.cpp.o [ 42%] Building CXX object CMakeFiles/cutter.dir/widgets/ExportsWidget.cpp.o [ 44%] Building CXX object CMakeFiles/cutter.dir/widgets/FlagsWidget.cpp.o [ 45%] Building CXX object CMakeFiles/cutter.dir/widgets/FunctionsWidget.cpp.o [ 47%] Building CXX object CMakeFiles/cutter.dir/widgets/ImportsWidget.cpp.o [ 49%] Building CXX object CMakeFiles/cutter.dir/widgets/Notepad.cpp.o [ 50%] Building CXX object CMakeFiles/cutter.dir/widgets/Omnibar.cpp.o [ 52%] Building CXX object CMakeFiles/cutter.dir/widgets/PieView.cpp.o [ 54%] Building CXX object CMakeFiles/cutter.dir/widgets/RelocsWidget.cpp.o [ 55%] Building CXX object CMakeFiles/cutter.dir/widgets/SdbDock.cpp.o [ 57%] Building CXX object CMakeFiles/cutter.dir/widgets/SectionsDock.cpp.o [ 59%] Building CXX object CMakeFiles/cutter.dir/widgets/SectionsWidget.cpp.o [ 61%] Building CXX object CMakeFiles/cutter.dir/widgets/Sidebar.cpp.o [ 62%] Building CXX object CMakeFiles/cutter.dir/widgets/StringsWidget.cpp.o [ 64%] Building CXX object CMakeFiles/cutter.dir/widgets/SymbolsWidget.cpp.o [ 66%] Building CXX object CMakeFiles/cutter.dir/menus/DisassemblyContextMenu.cpp.o [ 67%] Building CXX object CMakeFiles/cutter.dir/widgets/DisassemblyWidget.cpp.o [ 69%] Building CXX object CMakeFiles/cutter.dir/widgets/SidebarWidget.cpp.o [ 71%] Building CXX object CMakeFiles/cutter.dir/widgets/HexdumpWidget.cpp.o [ 72%] Building CXX object CMakeFiles/cutter.dir/utils/Configuration.cpp.o [ 74%] Building CXX object CMakeFiles/cutter.dir/utils/Colors.cpp.o [ 76%] Building CXX object CMakeFiles/cutter.dir/dialogs/SaveProjectDialog.cpp.o [ 77%] Building CXX object CMakeFiles/cutter.dir/utils/TempConfig.cpp.o [ 79%] Building CXX object CMakeFiles/cutter.dir/utils/SvgIconEngine.cpp.o [ 81%] Building CXX object CMakeFiles/cutter.dir/utils/SyntaxHighlighter.cpp.o [ 83%] Building CXX object CMakeFiles/cutter.dir/widgets/PseudocodeWidget.cpp.o [ 84%] Building CXX object CMakeFiles/cutter.dir/widgets/VisualNavbar.cpp.o [ 86%] Building CXX object CMakeFiles/cutter.dir/widgets/GraphView.cpp.o [ 88%] Building CXX object CMakeFiles/cutter.dir/dialogs/preferences/PreferencesDialog.cpp.o [ 89%] Building CXX object CMakeFiles/cutter.dir/dialogs/preferences/GeneralOptionsWidget.cpp.o [ 91%] Building CXX object CMakeFiles/cutter.dir/dialogs/preferences/GraphOptionsWidget.cpp.o [ 93%] Building CXX object CMakeFiles/cutter.dir/widgets/QuickFilterView.cpp.o [ 94%] Building CXX object CMakeFiles/cutter.dir/widgets/ClassesWidget.cpp.o [ 96%] Building CXX object CMakeFiles/cutter.dir/cutter_automoc.cpp.o [ 98%] Building CXX object CMakeFiles/cutter.dir/cutter_automoc.dir/qrc_resources_HAS2BXGMQQBHVI.cpp.o [100%] Linking CXX executable cutter CMakeFiles/cutter.dir/cutter.cpp.o: In function CutterCore::sdbList(QString)': cutter.cpp:(.text+0x4e7): undefined reference tosdb_ns_path' CMakeFiles/cutter.dir/cutter.cpp.o: In function CutterCore::sdbListKeys(QString)': cutter.cpp:(.text+0x679): undefined reference tosdb_ns_path' cutter.cpp:(.text+0x6a5): undefined reference to sdb_foreach_list' CMakeFiles/cutter.dir/cutter.cpp.o: In functionCutterCore::sdbGet(QString, QString)': cutter.cpp:(.text+0x807): undefined reference to sdb_ns_path' cutter.cpp:(.text+0x854): undefined reference tosdb_const_get' CMakeFiles/cutter.dir/cutter.cpp.o: In function CutterCore::sdbSet(QString, QString, QString)': cutter.cpp:(.text+0x965): undefined reference tosdb_ns_path' CMakeFiles/cutter.dir/cutter.cpp.o: In function CutterCore::cmd(QString const&)': cutter.cpp:(.text+0xd30): undefined reference tor_mem_free' CMakeFiles/cutter.dir/cutter.cpp.o: In function CutterCore::cmdj(QString const&)': cutter.cpp:(.text+0x10f4): undefined reference tor_mem_free' cutter.cpp:(.text+0x1269): undefined reference to r_mem_free' CMakeFiles/cutter.dir/cutter.cpp.o: In functionCutterCore::loadFile(QString, unsigned long, unsigned long, bool, int, int, bool, QString const&)': cutter.cpp:(.text+0x14f3): undefined reference to r_bin_force_plugin' CMakeFiles/cutter.dir/cutter.cpp.o: In functionCutterCore::tryFile(QString, bool)': cutter.cpp:(.text+0x2908): undefined reference to sdb_bool_set' CMakeFiles/cutter.dir/cutter.cpp.o: In functionCutterCore::functionAt(unsigned long long)': cutter.cpp:(.text+0x40a1): undefined reference to r_anal_get_fcn_in' CMakeFiles/cutter.dir/cutter.cpp.o:(.data+0x88): undefined reference tor_crypto_version' CMakeFiles/cutter.dir/cutter.cpp.o:(.data+0xe8): undefined reference to `r_magic_version' collect2: error: ld returned 1 exit status make[2]: *** [cutter] Error 1 make[1]: *** [CMakeFiles/cutter.dir/all] Error 2 make: *** [all] Error 2

    Seems like a linking error to me, so tried various methods I've already purged radare2(one which is available from Ubuntu repositories) C/C++ Compiler: gcc-7.1 OS : Ubuntu 14.04 Kernel: 4.4.0-104-generic

  • gdbserver and windbg remote debugging support

    gdbserver and windbg remote debugging support

    Detailed description

    This PR adds support for gdbserver and windbg remote debugging. According to 1246 and the wiki the windbg implementation only supports connecting to a path/pipe so only "WinDbg - Pipe" is available in the remote connect dialog for now.

    Test plan (required)

    For both - try invalid parameters, they should notify the user that cutter failed to connect or raise an error pointing to an issue in one of the parameters.

    Gdbserver: Open gdbserver :1234 /path/to/program and connect through the remote debugging button.

    Note: There's is an issue with suspending background tasks(looking into it @ 15415 in gdbserver so just step/continue with breakpoints or switch threads to see that it works for now.

    WinDbg:

    • Run .server npipe:pipe=PipeName,IcfEnable in WinDbg to start a server - this caused some weird behavior in r2, looking into it.
    • https://radare.gitbooks.io/radare2book/content/debugger/windbg.html - haven't set up a VM yet, would appreciate it if someone else who already has a debugging setup would try it with r2/cutter and report issues.
  • Auto update check

    Auto update check

    Provides auto update check feature. Also improves way of manual update check.

    On start Cutter checks current available version. In case of available update, shows this window (Instead of "Some newer version", there will be newest version number) image

    P.S. Prints QNetworkReplyHttpImplPrivate::_q_startOperation was called more than once QUrl("https://api.github.com/repos/radareorg/cutter/releases/latest") in console when checks. It's a known bug. Fixed in 5.12.2 Qt version.

  • Compiling error:

    Compiling error: "clock_gettime"

    Hi,

    The AppImage can't run on ancient Linux environments. So, I'm trying to compile it from scratch inside a Debian 7 x64. I manually compiled/updated/installed cmake, python, git, meson and ninja, so the build system meets the requirements. No problems until I get this error:

    shlr/libtree_sitter.a(tree-sitter_lib_src_lib.c.o): In function `clock_now':
    /home/user/cutter/build/Radare2-Bundled-prefix/src/Radare2-Bundled-build/../../../../radare2/shlr/tree-sitter/lib/src/././clock.h:73: undefined reference to `clock_gettime'
    collect2: error: ld returned 1 exit status
    [1126/1507] Generating cc-arm-32.sdb with a meson_exe.py custom command
    ninja: build stopped: subcommand failed.
    make[2]: *** [Radare2-Bundled-prefix/src/Radare2-Bundled-stamp/Radare2-Bundled-build] Error 1
    make[1]: *** [CMakeFiles/Radare2-Bundled.dir/all] Error 2
    make: *** [all] Error 2
    

    This problems seems to appear in ancient radare2 compilations: https://github.com/radareorg/radare2/issues/1983 However, I don't know how to fix it. So, please can you help me?

    Futhermore, I suggest to use a more legacy environment to compile the AppImage, for example a Debian 7 or CentOS 7 almost. Or privide different AppImages based on the major kernel version.

    Regards.

  • Comments in Disasm widget change when scroll up / down

    Comments in Disasm widget change when scroll up / down

    Environment information

    • Operating System: Parrot OS 5.1 amd64
    • Cutter version: 2.1.2, rizin 0.4.1
    • Obtained from:
      • [ ] Built from source
      • [ ] Downloaded release from Cutter website or GitHub
      • [x] Distribution repository
    • File format: ELF

    Describe the bug

    When I scroll up / down, the comment of Cutter changed like in the screenshots. image image image

    To Reproduce

    Steps to reproduce the behavior:

    1. Open binary file
    2. Go to disasm widget
    3. Scroll up / down

    Expected behavior

    Comments should not be changed.

    Additional context

    Deroad (on telegram) said it could be Rizin's problem. However, I think this is an issue on Cutter's side calling callback when scroll mouse event triggered.

    Tested file: meter_elf.zip

  • Attaching problem at

    Attaching problem at "CutterCore::attachDebug"

    Environment information

    • Operating System: Windows 10
    • Cutter version: 2.1.2 and commit "d58edca0c858e96fd75ae22627e86eaec09de588"
    • Obtained from:
      • [ x] Built from source
      • [ x] Downloaded release from Cutter website or GitHub
      • [ ] Distribution repository
    • File format:

    Describe the bug attaching programs doesn't work image

    To Reproduce

    Steps to reproduce the behavior:

    1. Go to "Debug" on toolbar
    2. Click on "Attach to Process"
    3. See error

    Expected behavior Expected to connect with debugger

    Screenshots

    Additional context I found the problem at function "CutterCore::attachDebug(int pid)" in the file "Cutter.cpp"; compiled with commit "d58edca0c858e96fd75ae22627e86eaec09de588" The release version(Cutter 2.1.2) doesn't have the problem.

    Working Code image

    The commit version changed the "asyncCmd" part of the code. "asyncCmd" function got removed but idk if it got removed for some important reason(so i didn't use it)

    image

    I would like to learn how this problem would be fixed My Guess - The Function at the end starts task that was supposed to be put in the beginning but the function doesn't have a task to do at the end so it crashes at "debugTask->startTask()".

    Making it Work(copied some code from release) image

  • Allow minimize / maximize widgets

    Allow minimize / maximize widgets

    Is your feature request related to a problem? Please describe.

    Having multiple widgets is very useful to analysis binaries. Especially analyzer can view both disasm code and decompiled code. However, code blocks can be very huge therefore the monitor can't display them all. An example of 1920x1080 screenshot image

    Describe the solution you'd like Having a feature that allow minimizing widgets, so users can simple "hide" it when they need more space on the monitor. It's similar to vscode:

    1. The widgets are in "normal" mode image
    2. Hide the "bookmark widget" therefore "Search" widget has more space to display data

    image

    Describe alternatives you've considered

    Double click on widget's title will maximum it, double click on it again restore previous size

    Additional context

    IMO, the advantage of this method is viewer don't have to remove, then add widgets again and again. And it could be very useful if user sets multiple widgets in 1 position (multiple tabs)

  • stm8

    stm8

    Is there any information how to decompile stm8 binaries with cutter? I dont see any stm8 cpu but there was a plugin in redare2 so should be possible i thought. Perhaps someone can take me by the hand and lead me. There is a module for ghidra on github but i cant make it work.

  • Publish a `winget` maniphest.

    Publish a `winget` maniphest.

    Since choco is getting shittier and outdated, and windows seems serious about its own package downloader discased as package manager aka. winget Could we pretty please have a winget-pkg manifest published for the Coutter. It would greatly improve M$ user experience since winget doesn't requires admin privileges to work and its pkg base is up to date'ier compared to choco now. _btw. Tired contacting on your telegram channel, but its no more 😢

A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.
A FREE Windows C development course where we will learn the Win32API and reverse engineer each step utilizing IDA Free in both an x86 and x64 environment.

FREE Reverse Engineering Self-Study Course HERE Hacking Windows The book and code repo for the FREE Hacking Windows book by Kevin Thomas. FREE Book Do

Dec 27, 2022
The purpose of these streams is to be educational and entertaining for viewers to learn about systems architecture, reverse engineering, software security, etc., and NOT to encourage nor endorse malicious game hacking.
The purpose of these streams is to be educational and entertaining for viewers to learn about systems architecture, reverse engineering, software security, etc., and NOT to encourage nor endorse malicious game hacking.

Memestream This repository holds the code that I develop during my live game "modding" ?? sessions. When I stream, I like to speedrun making a success

Jul 6, 2022
OverRide - Binary Exploitation and Reverse-Engineering (from assembly into C)
OverRide - Binary Exploitation and Reverse-Engineering (from assembly into C)

OverRide Explore disassembly, binary exploitation & reverse-engineering through 10 little challenges. In the folder for each level you will find: flag

Sep 22, 2022
Block Cipher Reverse Engineering: A Challenge by Nintendo European Research & Development
Block Cipher Reverse Engineering: A Challenge by Nintendo European Research & Development

My algorithm cracks NERD HireMe for any output within 1 Second without Brute-Force! Read more if you want to find out how this was accomplished or execute this algorithm yourself on Wandbox - Online C++ Compiler

Nov 15, 2021
Powerful automated tool for reverse engineering Unity IL2CPP binaries
Powerful automated tool for reverse engineering Unity IL2CPP binaries

Powerful automated tool for reverse engineering Unity IL2CPP binaries

Jan 7, 2023
Resources gathered for reverse engineering the FNIRSI-1013D scope

# FNIRSI-1013D-Hack Resources gathered for reverse engineering the FNIRSI-1013D scope As part of what is on EEVBLOG, resources for the reverse engine

Dec 25, 2022
A lightweight ARM reverse engineering tool.

eydis A lightweight (basic and slow) ARM reverse engineering tool. I. Requierements macOS/Linux, Basics compiling tools, The SQLite3 + readline framew

Aug 15, 2022
Info & tools for reverse engineering the M6 smart fitness band
Info & tools for reverse engineering the M6 smart fitness band

m6-reveng This repo contains information and tools for reverse engineering the $7 M6 smart fitness band. Hardware The SoC (system-on-a-chip) is a Teli

Dec 26, 2022
Reverse engineering the V831 npu

v831-npu Reverse engineering the V831 Neural Network Accelerator (NNA) Hardware is primarily based off NVIDIA Deep Learning Accelerator(NVDLA) archite

Jan 7, 2023
Reverse engineering / documenting the SSC (qcom Snapdragon Sensor Core) or SLPI.

QRTR / QMI sensor daemon Device setup (pmos) Install deps sudo apk add alpine-sdk sshfs eudev-dev qrtr-dev Mount build dir First on host setup USB net

Jul 26, 2022
Reverse engineering Genshin Impact anticheat to study how anticheats work on the Windows operating system.
Reverse engineering Genshin Impact anticheat to study how anticheats work on the Windows operating system.

mhyprot2 - Reverse engineering Genshin Impact anticheat for study 1. Demonstration video 2. Screenshots 2.1 Panel 3. Future updates and questions As I

Nov 16, 2022
Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike
Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++, the architecture and usage like Cobalt Strike

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Jan 3, 2023
Khepri is a Cross-platform agent, the architecture and usage like Coblat Strike but free and open-source.
Khepri is a Cross-platform agent, the architecture and usage like Coblat Strike but free and open-source.

Khepri Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++ Description Khepri is a Cross-platform agent, the archi

Dec 30, 2022
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.

SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.

Jan 7, 2023
Reverse engineered source code of the engineowning cheat for cod9 (tags, ignore. Fortnite cheat, engineowning, engineowning cracked, cheat cracked, cod cracked cheat, cod cheat source)

engineowning-cod9 Reverse engineered source code of the engineowning cheat for cod9 Cracked by CODEX notinjector = C:\Windows\Release\ .exe drSYS = C:

Oct 12, 2022
A free and open-source cross-platform application to control your Philips hue compatible lights💡
A free and open-source cross-platform application to control your Philips hue compatible lights💡

?? OpenHue ?? A cross platform application to control your Philips hue compatible lights. licensed under the gpl 3.0 license. Currently in super early

Dec 28, 2022
SomeSmile - a free, open source and not yet cross-platform
SomeSmile - a free, open source and not yet cross-platform

SomeSmile - a free, open source and not yet cross-platform Table Of Contents For What? Structure Start Usage Guide How To Build Screenshots End For Wh

Aug 3, 2022
An open source Zstack3 gateway powered by ESP8266 and CC2652 modules
An open source Zstack3 gateway powered by ESP8266 and CC2652 modules

OpenZ3Gateway An open source Zstack3 gateway powered by ESP8266 and CC2652P modules. One costs less than 60 CNY in China. This repository includes Alt

Dec 26, 2022
Sourcetrail - free and open-source interactive source explorer
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Important Note: This project was archived by the original autors and maintainers of Sourcetrail by the end of 2021. If you want to know mo

Jan 1, 2023