Для этого можно использовать dyld.
_dyld_image_count
возвращает ряд динамических библиотек, загружаемых в адресное пространство вашего приложения. Затем вы можете перебирать их, используя _dyld_get_image_name
, проверяя путь динамической библиотеки. Таким образом, вы можете определить, была ли загружена библиотека CydiaSubstrate или любая динамическая библиотека с неизвестным путем в ваше приложение.
Конечно, с джейлбрейком даже эти функции могут быть подключены, и я не думаю, что вы можете много сделать. Arxan утверждает, что он может что-то с этим делать, но даже если он обнаруживает что-то, вы всегда можете использовать любую функцию, которую он использует для обнаружения. Усовершенствования CydiaSubstrate всегда на один шаг вперед, потому что они загружаются до того, как вызывается main
. Таким образом, он может зацепить все, что он хочет в конструкторе, и вы ничего не можете с этим поделать.
Без джейлбрейка только для загрузки вредоносной библиотеки необходимо изменить и уйти в отставку, чтобы оно связывалось с библиотекой. Без джейлбрейка вы не можете перехватывать функции C, поэтому _dyld_get_image_name
сможет обнаружить эту библиотеку.
Мы использовали [Arxan] (https://www.arxan.com/products/application-protection/mobile/ensureit-for-apple-ios/) из EnsureIT. – Vin
спасибо за ответ Vin ... Я видел, что цена действительно дорогая: D, – Tirtavium