boilerplate code to research string removal
This commit is contained in:
parent
9b85e4938f
commit
925429c4a9
1
research/strings_empty/.gitignore
vendored
Normal file
1
research/strings_empty/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
out/*
|
75
research/strings_empty/build.sh
Executable file
75
research/strings_empty/build.sh
Executable file
@ -0,0 +1,75 @@
|
||||
set -e
|
||||
clear
|
||||
VERSION=${1:-14}
|
||||
OUT=./out
|
||||
LOGIC=1
|
||||
make -C ../../macho-go
|
||||
mkdir -p $OUT
|
||||
|
||||
echo "using mach-o version $VERSION"
|
||||
if [[ $VERSION -ge 14 ]]
|
||||
then
|
||||
echo "Resulting binary uses MODERN symbol resolver"
|
||||
else
|
||||
echo "Resulting binary uses LEGACY symbol resolver"
|
||||
fi
|
||||
|
||||
cat <<'fly'
|
||||
______
|
||||
_\ _~-\___
|
||||
= = ==(____AA____D
|
||||
\_____\___________________,-~~~~~~~`-.._
|
||||
/ o O o o o o O O o o o o o o O o |\_
|
||||
`~-.__ ___..----.. )
|
||||
`---~~\___________/------------`````
|
||||
= ===(_________D
|
||||
fly
|
||||
|
||||
# this is a joke for those who knows
|
||||
# https://www.blackhat.com/presentations/bh-dc-09/Iozzo/BlackHat-DC-09-Iozzo-let-your-mach0-fly-whitepaper.pdf
|
||||
echo "make your Mach-O fly"
|
||||
|
||||
if [[ $LOGIC -eq 0 ]]
|
||||
then
|
||||
|
||||
clang-format -i -style=llvm *.cc
|
||||
|
||||
elif [[ $LOGIC -eq 1 ]]
|
||||
then
|
||||
|
||||
# build test binaries
|
||||
clang -mmacosx-version-min=$VERSION -o $OUT/c_code tests/c_code.c
|
||||
clang -fobjc-arc -ObjC -mmacosx-version-min=$VERSION -o $OUT/objc_code tests/objc_code.m
|
||||
swiftc -o $OUT/swift_code tests/swift_code.swift
|
||||
|
||||
# c program
|
||||
../../macho-go/bin/ios-wrapper pepe -o $OUT/c_code_fixed -b $OUT/c_code.bcell -l $OUT/librestore_c.dylib --remove-strings $OUT/c_code
|
||||
../../macho-go/bin/ios-wrapper bcell2header -b $OUT/c_code.bcell -o $OUT/restore.h
|
||||
clang++ -mmacosx-version-min=$VERSION -o $OUT/librestore_c.dylib -shared -Wl,-reexport_library restore.cc
|
||||
|
||||
# objc program
|
||||
# ../../macho-go/bin/ios-wrapper pepe -o $OUT/objc_code_fixed -b $OUT/objc_code.bcell -l $OUT/librestore_objc.dylib --remove-strings $OUT/objc_code
|
||||
# ../../macho-go/bin/ios-wrapper bcell2header -b $OUT/c_code.bcell -o $OUT/restore.h
|
||||
# clang++ -mmacosx-version-min=$VERSION -o $OUT/librestore_objc.dylib -shared -Wl,-reexport_library restore.cc
|
||||
|
||||
# swift program
|
||||
# ../../macho-go/bin/ios-wrapper pepe -o $OUT/swift_code_fixed -b $OUT/swift_code.bcell -l $OUT/librestore_swift.dylib --remove-strings $OUT/swift_code
|
||||
# ../../macho-go/bin/ios-wrapper bcell2header -b $OUT/c_code.bcell -o $OUT/restore.h
|
||||
# clang++ -mmacosx-version-min=$VERSION -o $OUT/librestore_swift.dylib -shared -Wl,-reexport_library restore.cc
|
||||
|
||||
# executable
|
||||
chmod +x $OUT/c_code_fixed
|
||||
# chmod +x $OUT/objc_code_fixed
|
||||
# chmod +x $OUT/swift_code_fixed
|
||||
|
||||
# resign
|
||||
codesign --force --deep -s - $OUT/c_code_fixed
|
||||
# codesign --force --deep -s - $OUT/objc_code_fixed
|
||||
# codesign --force --deep -s - $OUT/swift_code_fixed
|
||||
|
||||
# run
|
||||
$OUT/c_code_fixed
|
||||
# $OUT/objc_code_fixed
|
||||
# $OUT/swift_code_fixed
|
||||
|
||||
fi
|
1991
research/strings_empty/restore.cc
Normal file
1991
research/strings_empty/restore.cc
Normal file
File diff suppressed because it is too large
Load Diff
6
research/strings_empty/tests/c_code.c
Normal file
6
research/strings_empty/tests/c_code.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main() {
|
||||
printf("Hello, World!\n");
|
||||
return 0;
|
||||
}
|
8
research/strings_empty/tests/objc_code.m
Normal file
8
research/strings_empty/tests/objc_code.m
Normal file
@ -0,0 +1,8 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
int main() {
|
||||
@autoreleasepool {
|
||||
NSLog(@"Hello, World!");
|
||||
}
|
||||
return 0;
|
||||
}
|
1
research/strings_empty/tests/swift_code.swift
Normal file
1
research/strings_empty/tests/swift_code.swift
Normal file
@ -0,0 +1 @@
|
||||
print("Hello, World!")
|
Loading…
Reference in New Issue
Block a user