As you all know, Apple recently change the terms for app developers using 3rd dev tools.
I'm wondering how could Apple know whether an app is made with a specific technology like Flash or Unity or GameSalad or any other engines out there?
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It only takes a minute to sign up.Sign up to join this community
A simple (but not foolproof) way might be to use the
strings utility to examine the binary for known strings: version stamps, error messages, etc.
If symbols aren't entirely stripped (not likely in a submitted build) you can use something like
objdump or the like to see the names of symbols. Some symbol names may be a good indication that a particular tool, compiler, library, or framework was used.
You could look for machine code or data headers that are known to correspond to a specific version of a compiler, library, or tool.
You could suspend the app and scan its memory region, potentially, to do similar checks, looking for known patterns (akin to the way a virus scanner might work).
Of course there are a number of ways to attempt to guard an app against such checks. For example, you could compress and/or encrypt the majority of the executable and/or data. But if your app can decrypt it, likely so can an investigator...
I'd imagine they don't bother investigating unless they have reason to. They might potentially automate some of these checks if they really cared, but these checks might only flag the obvious uses of the tech...