In my limited knowledge, it seems to me that MMM and Simon are saying that they protected it stupid. They encrypted each verse separately, but with the same code. Once the code is broken, the entire package unwraps. But all that extra coding and encrypting means the PDF bible is far bigger than it needs to be.
Now, I am not in IT, so if I got anything of this wrong, feel free to correct me.
Well... the only reason I was able to get this was because android app run from a form of java, and you can decompile that. That means I can take the program and reverse the code out of it. Normally, java (.class files) are much easier to decompile. The android java gets mangled down so that some of the code is permanently lost. However, it can be decompiled to an assembly-like code. The logic is still there, but its not very easy to read. It took me a couple nights to get through it. Once I saw what was going on, it was all downhill from there.
Each publication will have a different SHA-256 hash because that hash value is derived from the language + pub symbol + year. So even different languages would be encrypted a little differently - but the overall algorithm is the same.
The PDF is public. There was nothing encrypted there. I was reading the PDF with some standard PDF libraries. The issue with the PDF was that it was horrible to parse through given the way PDFs are built.
MMM