I’m just going to add my 2 cents here. Any game can easily have its assets stolen. Even the AAA games that do bundle and encrypt their assets have them stolen or hacked too. You can also easily screen capture the app to fetch its graphics that way. So, the most you can do is make it difficult for people to extract them, but by doing that, you’re also making it difficult for your app to use its own assets and sometimes at the cost of performance. The same can be said about your app bundles on Android, iOS, and OS X. Their assets are packaged within the app in standard ways and can easily be extracted. And if you think about, all website assets are exposed too. They have to be or else the browser wouldn’t be able to display them. But that said, and in my opinion, I think it’s more important for an app developer to worry about how to make money from a desktop app (ie: monetization solutions) and how to protect the app from being pirated, because this dictates the success of the app. Once your app does get popular, well then shoot, there’s no stopping hackers from figuring how to extract and hack your app’s assets then. And there’s a term for that. It’s called modding and it’s popular scene on Windows. And if you have a modding community invested in your app, well then I think you’re likely doing well for yourself.
Currently, our point of view is that its more important to implement features Corona developers want on Windows such as game controller support, video support, text entry support, etc. rather than impede our development time with supporting embedded/bundled files in all of our core APIs (it’s actually a large lengthy undertaking). You already have the power to encrypt, zip, and extract files for yourself. So, if you are feeling very passionate about this, then you already have the tools to do this for yourself.
And regarding the “resource.car”, it’s contents are not encrypted on any platform. It’s effectively a tar ball of all of your compiled Lua scripts. It’s not our job to encrypt your strings. Just like how Visual Studio, Xcode, and the Android SDK do not automatically encrypt strings in compiled binaries either. If you have strings you need to protect, then you have to encrypt them yourself before copying them into your code. You can then decrypt them with Corona’s crypto.* APIs. Again, it isn’t any different for native developers either and you can easily see string inside of *.exe and *.dll files too.