gdbinit/MachOView
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
_____ .__ ____________ ____.__ / \ _____ ____ | |__ \_____ \ \ / /|__| ______ _ __ / \ / \\__ \ _/ ___\| | \ / | \ Y / | |/ __ \ \/ \/ / / Y \/ __ \\ \___| Y \/ | \ / | \ ___/\ / \____|__ (____ /\___ >___| /\_______ /\___/ |__|\___ >\/\_/ \/ \/ \/ \/ \/ \/ A fork from MachOView to update and fix some bugs, mostly Mountain Lion & iOS 6 related. Also some small changes to the original behaviour. Original MachOView by psaghelyi at http://sourceforge.net/projects/machoview/. Thanks to psaghelyi for his great work :-) Latest versions are Lion+ only. The LLVM disassembler was replaced with Capstone. This eliminates Clang/LLVM packages requirements. The downside is that Capstone stops disassembling on bad instructions which means that for now data in code and jump tables data will create problems and __text section disassembly might be incomplete in binaries that contain such data. Capstone improved disassembly on error but data in code locations are available in header so this can and should be improved. A static Capstone library extracted from the official DMG is included in the repo. If you want to be safe you should download Capstone and compile it yourself. Now features the attach option to analyse headers of a running process. To use this feature you will need to codesign the binary. Follow this LLDB guide to create the certificate and then codesign MachOView binary. https://llvm.org/svn/llvm-project/lldb/trunk/docs/code-signing.txt The necessary entitlements are already added to Info.plist. Be warned that this allows MachOView to have task_for_pid() privs under current under and control every process from user running it. The whole Mach-O parsing code needs to be reviewed and made more robust. Enjoy, fG! Note: This repo is frozen in time and there are kinda active forks out there. The main problem of this codebase is that the Mach-O parser has quite some problems and needs a significant overhaul to make it more robust and secure. I do have much better code but it's under NDAs etc and I don't have energy to reinvent the wheel once again. Secure executable binary parsing is a ton of work in C/C++. It's possible but it's is exhausting.