alexzielenski / optool Goto Github PK
View Code? Open in Web Editor NEWCommand Line Tool for interacting with MachO binaries on OSX/iOS
License: BSD 2-Clause "Simplified" License
Command Line Tool for interacting with MachO binaries on OSX/iOS
License: BSD 2-Clause "Simplified" License
The precompiled binary for optool does not run on Lion (10.7.5). It just crashes.
Nor am I able to build optool from source on Lion.
(see https://trac.macports.org/ticket/62276)
Is there any easy fix?
Hi alexzielenski,
Thank you. I've used it in many projects. It's very great.
Recently I found a problem, when I uninstall a dylib using optool. and then reinject another dylib using yololib (https://github.com/KJCracks/yololib). but It seems wrong. I am not sure whether it is a defect of optool or a defect of yololib. Can you help me? Please see the attachment.
I'm trying to use optool with patchapp.sh to inject my theos tweak into an .ipa file. However, I can't figure out how to build the xcodeproj or find any way to get the optool binary, help would be appreciated.
Hi, I cloned the repo, but it didn't bring with it its submodule.
So, naturally, I tried
git submodule init
git submodule update
and it failed because I didn't have "access rights" to the submodule.
Above this - you set your Xcode project "Base SDK" to 10.9, which no longer exists in recent Xcode releases (Xcode 6.4, Xcode 7.x)
Can you please verify your repository is still usable?
I injected a few more dyibs and entered here. How can I solve this problem? Is there control that can't inject too much dylib?
Hello! I'm trying to uninstall system lib:
optool uninstall -p "/usr/lib/libsqlite3.dylib" -t "$TARGET_APP_PATH/$APP_BINARY"
All looks like fine, see before and after otool -l
output
before.txt
after.txt
But I'm getting an error in runtime about another lib:
dyld: Symbol not found: OBJC_CLASS$_NSFileManager
Referenced from: /var/containers/Bundle/Application/7AFFEF62-62B4-4C44-BF78-4E20467B31AF/IPAPatch-DummyApp.app/Wrapping Test
Expected in: /usr/lib/libobjc.A.dylib
in /var/containers/Bundle/Application/7AFFEF62-62B4-4C44-BF78-4E20467B31AF/IPAPatch-DummyApp.app/Wrapping Test
Can I do something with that?
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree fetch origin
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree pull origin master
From https://github.com/alexzielenski/optool
git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree submodule update --init --recursive
Cloning into 'optool/FSArgumentParser'...
warning: templates not found /usr/local/git/share/git-core/templates
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of '[email protected]:NSError/ArgumentParser.git' into submodule path 'optool/FSArgumentParser' failed
Cloning into 'optool/FSArgumentParser'...
warning: templates not found /usr/local/git/share/git-core/templates
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of '[email protected]:NSError/ArgumentParser.git' into submodule path 'optool/FSArgumentParser' failed
Cloning into 'optool/FSArgumentParser'...
warning: templates not found /usr/local/git/share/git-core/templates
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of '[email protected]:NSError/ArgumentParser.git' into submodule path 'optool/FSArgumentParser' failed
Cloning into 'optool/FSArgumentParser'...
warning: templates not found /usr/local/git/share/git-core/templates
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Clone of '[email protected]:NSError/ArgumentParser.git' into submodule path 'optool/FSArgumentParser' failed
Completed with errors, see above
BOOL removeLoadEntryFromBinary(NSMutableData *binary, struct thin_header macho, NSString *payload) {
// parse load commands to see if our load command is already there
binary.currentOffset = macho.offset + macho.size;
uint32_t num = 0;
uint32_t cumulativeSize = 0;
uint32_t removedOrdinal = -1;
...........
if ([dylibname isEqualToString:payload] && removedOrdinal != -1) {
// if ([dylibname isEqualToString:payload] && removedOrdinal == -1) { ???
............
removedOrdinal =-1, it will never remove the payload!!!
Great work here!
Hi there
I need to do some slightly grim Mach-O header hacking on some precompiled binaries I've been given in order to make Xcode deal with them properly.
It would be great if optool had support for inserting/removing the LC_VERSION_MIN_MACOSX load command - that would be the simplest path to getting those binaries working with Xcode (although perhaps not the cleanest!).
If you're feeling generous, support for LC_VERSION_MIN_IPHONEOS might be an extra bonus for our iOS developer friends.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.