Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

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?

share|improve this question
6  
It sounds like you're insinuating that you think things like Flash or Unity are still banned. That's not the case anymore. gizmag.com/apple-relaxes-development-tool-restrictions-for-ios/… –  Tetrad Oct 18 '10 at 14:38
    
That does sound like the case, but the OP seems to be interested to know how one could tell the difference. –  Nate Oct 18 '10 at 15:42
    
Yes. I just want to know how would Apple differentiate the technologies an app would use. I know Apple had already relaxed its terms. Thanks. –  astk Oct 19 '10 at 7:48
1  
The joke goes something like this: "If all these managed-language applications are compiled down to ARM, how will Apple tell the difference from regular applications?" / "Easy, they'll be the ones that don't leak memory." (ba-dum-tss) –  Andrew Russell Oct 22 '10 at 4:00
    
@Andrew Russell - lol –  Allan Oct 25 '10 at 2:16
add comment

1 Answer

up vote 7 down vote accepted

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 nm or 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...

share|improve this answer
    
I'd expect they don't investigate until they have a reason also. As no Unity apps were turned away during the Ban. –  Noctrine Oct 18 '10 at 18:09
    
Yeah. It sounds like way too mess for such massive app submissions unless they can automate as you said. Thanks. –  astk Oct 19 '10 at 7:54
1  
If you encrypt it within the binary, they can just look at the code in ram while it's running. –  David Lively Oct 19 '10 at 23:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.