I get how it might be done in theory but real life is complicated. Has anyone attempted to do this?
I get how it might be done in theory but real life is complicated. Has anyone attempted to do this?
You compare the result you get compiling the app yourself with what you downloaded from the Play Store. For iOS this might be harder
This is mentioned elsewhere, but the answer is: reproducible builds.
You can take the Signal client source (which is available on Github), build an APK or whatnot yourself, then get the SHA256 hash or whatever and compare that to the artifact downloaded from the app store and validate that it's the same.
Has anyone done it? No idea!
You can though, decompile both your version and the app store version and compare them that way.
1. downloading the binary
2. jailbreaking the phone to extract the binary (pretty sure this is necessary on iOS)
3. check the version of the binary, then compile the original sources of the version
4. ??? compare the two binaries, this is likely the most difficult part, they won't be identical because of things like codesigning (and build flags, timestamps, ...)
I know noone that does this.
There is a large group of people who do this sort of research, and some fraction of them do this research and actually talk about it or publish papers. If you could find a deliberate weakness in the security of an app like what we are talking about (or WhatsApp or iMessages) then you have just printed your own golden ticket to whatever mobile cybersecurity job you want for the next decade or two, so there is a bit of an incentive to publish if something like this was discovered...