Recently someone on reddit asked “How on earth is the Facebook app size so large ?”. The person asking the question realized that the ~100Mb compressed App Store archive wasn’t all assets - a very large portion was the application binary.
How do you answer that question? You quickly reverse engineer the application!
SSH into the device and find the application container on the filesystem:
find / -type d -iname "SomeApp*.app"
Install dumpdecrypted on the device. Follow the instructions for using it.
scp
or rsync
.In most cases you will want the application container, the decrypted binary, and the application data container (i.e. what it writes out to the filesystem).
At this point you have the decrypted binary and it’s files. You can now run class-dump
on the binary and output a directory of header files for all the classes in the binary, or you can use a disassembler like IDAPro or Hopper to easily see all the classes, symbols, etc.
In the case of the Facebook application, there are more than 18,000 classses in the application:
There is a LOT of crap in there. Even a “FBFeedAwesomeizer” - which alone is a collection of 74 classes and protocols.
This is why the application binary itself is over 114Mb.
your blog is giving very useful knowledge for all, i’m sharing your information to all friends.And If any wants to...
bezzeg az android mennyivel jobb, mert az androidos facebook app csak 45 megabájt
Our app ha only 3235 classes o.O