STCObfuscator — это инструмент, используемый для запутывания кода на языке Objective-C. При работе в среде имитации отладки он генерирует запутанные макросы, которые могут быть скомпилированы в других средах. STCObfuscator также поддерживает запутывание кода, использующего Cocoapods.
Дополнительная информация доступна в блоге: https://blog.csdn.net/cating1314/article/details/80189295.
Если ваш проект поддерживает Cocoapods, вы можете просто добавить его! Pod «STCObfuscator» (обратите внимание: используйте последнюю версию, рекомендуется обновить мастер-репозиторий).
Добавьте следующий код в метод Appdelegate didFinishLaunchingWithOptions:
#import "STCObfuscator.h"
#if (DEBUG == 1) [[STCObfuscator obfuscatorManager] confuseWithRootPath:[NSString stringWithFormat:@"%s", STRING(ROOT_PATH)] resultFilePath:[NSString stringWithFormat:@"/STCDefination.h", [NSString stringWithFormat:@"%s", STRING(ROOT_PATH)]] linkmapPath:[NSString stringWithFormat:@"%s", STRING(LINKMAP_FILE)]]; #endif
Затем выполните следующие шаги настройки:
В разделе Build Settings->Preprocessor Macros->DEBUG добавьте переменные среды: LINKMAP_FILE=$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt и ROOT_PATH="${SRCROOT}" (обратите внимание: по возможности не размещайте проект в каталоге с китайскими символами).
Включите опцию Write Link Map File в Build Settings, установив значение YES.
Добавьте скрипт оболочки в Build Phases:
dir=${SRCROOT}
file_list=`ls -R $dir 2> /dev/null | grep -v '^$'`
for file_name in $file_list
do
temp=`echo $file_name | sed 's/:.*$//g'`
if [ "$file_name" != "$temp" ]; then
cur_dir=$temp
else
if [ ${file_name##*.} = a ]; then
find -P $dir -name $file_name > tmp.txt
var=$(cat tmp.txt)
nm $var > ${file_name}.txt
fi
done
Перед прекомпилированными файлами добавьте следующий код: #if (DEBUG != 1) #import "STCDefination.h" #endif
Запустите проект в среде отладки с использованием симулятора, чтобы создать запутанные макросы в файле STCDefination.h. Все запутанные символы будут сохранены в файле confuse.json в каталоге проекта. Этот файл можно использовать для обратной деобфускации после отправки отчётов об ошибках.
Добавьте файл STCDefination.h из каталога проекта в проект. После добавления нового кода в проект необходимо снова запутать его, предварительно очистив содержимое файла STCDefination.h от любых пробелов и переносов строк, а затем выполнить команду pod update. Затем снова запустите проект в режиме отладки с помощью симулятора.
Для реализации запутывания кода в среде RELEASE запустите проект без изменений. Перед запуском в среде RELEASE выполните обратную деобфускацию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )