detecting function to the original method. This kind of approach is similar to changing the
contents of dictionary and can be realized through the hook function provided by
CydiaSubstrate. The usage of CydiaSubstrate has been explained in the last two chapters, so if
you’ve already forgotten about it, you should go back and have a review.
Figure 5- 3 SMSNinja
5.2 Methodology of writing a tweak
Not until understanding how tweaks work can we have a clear mind on what our goals are
or what we are doing when we’re writing tweaks. Generally speaking, we use C, C++ and
Objective-C to write a tweak. When we have an idea, how can we manage to turn it into a
useful tweak? Actually, the pattern of writing a tweak is easy to follow and it will become clearer
when you have deeper understanding with iOS and its programming language. In the following
part, we will focus on a simple tweak example, start from the perspective of our most frequently
used programming language Objective-C, to summarize theories of iOS reverse engineering on
the level of Objective-C.
5.2.1 Look for inspiration
So far, some readers might have already been able to write tweaks with knowledge
introduced in the previous chapters, but most may still don’t know where to start. I know it’s