Assembly 带位异或的逆代数方程

Assembly 带位异或的逆代数方程,assembly,encryption,reverse-engineering,Assembly,Encryption,Reverse Engineering,我正在尝试反转加密方案,但在使用代数反转时,我似乎陷入了困境 单个字符的加密方案如下(使用寄存器和常量): 我想用代数的方法来解这个方程,但是我遇到了一些问题,也就是说,关于获取原始字符的操作顺序。想到负数的概括也让我头疼 如果有人对如何解决原始字符有任何建议,我们将不胜感激。我的第一个想法是先减去al,然后用dl进行xor,但现在我开始感到困惑。在发布之前,我玩了一个玩具示例,我的答案如下: 按位异或与乘法具有相同的优先级,我只是将其翻转过来。我已经知道XOR是XOR的倒数,但我想我应该在这里

我正在尝试反转加密方案,但在使用代数反转时,我似乎陷入了困境

单个字符的加密方案如下(使用寄存器和常量):

我想用代数的方法来解这个方程,但是我遇到了一些问题,也就是说,关于获取原始字符的操作顺序。想到负数的概括也让我头疼


如果有人对如何解决原始字符有任何建议,我们将不胜感激。我的第一个想法是先减去al,然后用dl进行xor,但现在我开始感到困惑。

在发布之前,我玩了一个玩具示例,我的答案如下:

按位异或与乘法具有相同的优先级,我只是将其翻转过来。我已经知道XOR是XOR的倒数,但我想我应该在这里说明。 得出的公式如下:
(加密字符-al)XOR dl=al
进入较大寄存器的内容不需要被玩弄就可以得到正确的解决方案

我将使用具有正确变量大小的模运算来解决环绕问题

使用上述方法,我能够反转代码

encrypted_char= (original_char XOR dl) + al
where:
eax = eax.previous * c1 +c2
edx = (eax >> c3)
eax.0 is a known seeded constant.