逆向工程文件格式

时间:2012-02-03 16:59:45

标签: reverse-engineering file-format

这是我第一次尝试逆向工程,实际上,我不知道如何去做。我有一种程序性的思维方式,没有关于流行加密方法的知识基础。

但是,在我看来,如果我拥有正确格式的最小数据,并且知道某个单词或单词的数据中出现,并且该单词在数据的开头和结尾处出现 - 我可以以某种方式发现解密整个文件的方法。

----- ENCRYPTED -------------------------------------------
HEX     44 5E 12 47 55 5E 53 17 4C 5C 49 4F 4F
ACII    D  ^  ?  G  U  ^  S  ?  L  \  I  O  O
DEC     68 94 63 71 85 94 83 63 76 92 73 79 79 
BIN     01000100 01011110 00111111 01000111 01010101 01011110 01010011 00111111    01001100 01011100 01001001 01001111 01001111
----- DECRYPTED -------------------------------------------
HEX     74 6F 20 74 61 6B 65 20 74 65 73 74 73
ASCII   t  o     t  a  k  e     t  e  s  t  s
DEC     116 111 32 116 97 107 101 32 116 101 115 116 115 
BIN     01110100 01101111 00100000 01110100 01100001 01101011 01100101 00100000 01110100 01100101 01110011 01110100 01110011

这只是一个数据样本。我知道标题信息的开始和结束位置,因为我检查了两个具有不同标题的文件 - 所以我知道这些文件转换为正确的单词 - 但是我从哪里开始识别加密过程?

* 我知道人们会问为什么:这是来自VCE(考试)文件格式,我想将其翻译成XML或JSON。这样我就可以轻松编写一个程序来比较多个考试文件中的问题和答案,追加,删除重复项并创建新的副本。 *

3 个答案:

答案 0 :(得分:5)

尝试将两个字符串XOR一起。你得到的是

HEX     30 31 32 33 34 35 36 37 38 39 3A 3B 3C
ASCII   0  1  2  3  4  5  6  7  8  9  :  ;  <

看到一种模式了?

答案 1 :(得分:2)

问题字段XOR值以19开头,然后是每隔一个字符。

ENCRYPTED:

6D 1A 74 1C 3D 1E 6B 20 40 22 48 24 40 26 07 28 5D 2A 4E 2C 5E 2E 5B 30 42 32

XOR:

19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32

DECRYPTED:

t?o? ?t?a?k?e? ?t?e?s?t?s?

答案 2 :(得分:1)

当你有一个hex文件并且你认为它是加密的时候,总是首先尝试XOR'ing(逐位操作)..
这有很多原因。

  • 一旦您通过XOR应用加密,您可以通过再次应用XOR来解密它
  • 因此,这是一种非常简单的加密方式。
    您可以浏览以下维基页面了解更多详情:
    XOR_wiki
    此外,如果您可以访问编程艺术(还有时间参考:D),请通过逐位操作部分。
    这是非常好的解释。值得一读的伴侣:)