Est-il possible d'éditer et de recomstackr un binary iOS?

J'ai décidé de poser cette question ici après beaucoup de time passé avec Google. Mais je ne pouvais pas encore get la réponse à ma question. Voici les détails:

J'ai une application et posté à Cydia récemment. Il a été craqué par quelqu'un d'autre et posté sur des sites torrent. La partie intéressante est que j'ai un mécanisme de vérification de checksum binary à l'intérieur et ils ont pu pirater tout le contenu et ils ont créé un nouveau file de checksum basé sur les changements qu'ils ont apportés au binary. Ils ont édité deux fonctions et le décomstackr et l'afficher à des torrents.

J'ai donc fait quelques searchs avec IDA Pro et j'ai vu qu'il est possible de voir la mise en œuvre réelle des fonctions et des classs. Mais pour éditer les fonctions, ils doivent find l'adresse de cette fonction et l'éditer via HEX EDITOR. C'est une partie déroutante pour moi, y a-t-il quelqu'un qui m'aide là-dessus? Je ne veux pas le rendre "indéchiffrable" 🙂 .. Ce n'est pas si facile que je suppose. 🙂 Mais je veux vraiment savoir comment ils piratent? 🙂

Ma question est comment éditer une fonction dans un binary iOS et la recomstackr? Par exemple j'ai une méthode suivante dans une de mes classs.

- (id) getSomething { return @"Something"; } 

Je veux éditer la valeur de return de cette fonction. Est-ce possible?

Habituellement, vous ne le "re-comstackz" pas. Envoyez simplement le file à IDA, searchz les strings, les appels de fonction ou tout ce que vous searchz, puis utilisez un éditeur hexadécimal ou similaire pour éditer le file au niveau de l'assemblage. Dans la plupart des cas, il suffit de changer un saut conditionnel en un saut inconditionnel ou un nop (pas d'opération). Si vous voulez changer les valeurs de return, vous devez y mettre un peu plus d'effort, mais dans mon expérience, vous éditez la séquence de caractères directement dans le file binary, si elle est spécifiée comme constante ou valeur initiale – ou vous écrivez juste un complètement nouvelle fonction et "copyr" le code assembleur de celui-ci dans le file original. Vous devez juste vous assurer que votre nouvelle fonction ne prend pas plus de place que l'original – ou que tout devient beaucoup plus complexe. J'espère que c'est ce que vous demandiez, sinon dites-nous simplement de quelle application vous parlez et nous pourrons y regarder de plus près 🙂