Bite Sized Post on Bitcode

Categories Blog, Computer Science0 Comments

I’ve been fixing many platform bugs that are related to appstore owners (Apple, Sony, Nintendo etc.) recently…

Poez Inc engine has some secure mechanisms which do intra and extra checks on the final product image pre-submission. Some of these checks require information of the final build and with platform owners pushing for evermore portable code, they’re removing the ability to know about the platform.

Since Apple is more public than others, let’s put things into context:

Apples’ adoption of the Low Level Virtual Machine (LLVM) compiler, back in Xcode 3.2, was a response to their changing processors arm->arm64 and versatile platforms. They needed a way to make native code portable,  without having to unveil business logic. Hence LLVM’s intermediate layer between C/C++ and native code code, appropriately called LLVM Intermediate Representation (IR). For LLVM-mid stage to understand C/C++ it requires a frontend. For our favorite native language it’s Clang.

This makes writing extra-security checks a tad more difficult, but then again I didn’t signup to be an engineer to have no challenges 😉