我有一个x的整数,我试图找到可以产生整数的方程式。这是为了脚本混淆的目的。我已经解决了加法,减法,除法,平方根,xor和hex这个问题。我的大多数答案都涉及使用逆方程来解决。我希望解决它:
这是我开始的功能:
Public Function IntegerBreak(PickedInteger)
Randomize()
Dim Switch, Entropy, Result As Integer
Switch = Int(6 * Rnd()) + 1
Entropy = Int(100 * Rnd()) + 1
Select Case Switch
Case 1
'addition
Result = PickedInteger - Entropy
Return Result & " + " & Entropy & " = " & PickedInteger
Case 2
'subtraction
Result = PickedInteger + Entropy
Return Result & " - " & Entropy & " = " & PickedInteger
Case 3
'division
Result = PickedInteger * Entropy
Return Result & " / " & Entropy & " = " & PickedInteger
Case 4
'squares
Result = PickedInteger ^ 2
Return "Sqr (" & Result & ") = " & PickedInteger
Case 5
'xor
Result = PickedInteger Xor Entropy
Return Result & " Xor " & Entropy & " = " & PickedInteger
Case 6
'hex
Return "&H" & Conversion.Hex(PickedInteger) & " = " & PickedInteger
End Select
End Function
示例输出:
-47 + 57 = 10
89 - 79 = 10
260 / 26 = 10
Sqr(100) = 10
12 Xor 6 = 10
&HA = 10
编辑:我的具体问题是如何查找:
(z*y=x, z%y=x, z^y=x, zLogy=x, or 3.123^10=x)
什么阻止我继续下去是因为我没有扎实的数学背景,我遇到了乘法问题,因为你可以有多个答案来计算方程:
(2*6=12, 3*4=12)
使用逆方法给出了十进制数。我想任何有关计算乘法,模数,指数,科学记数法和对数的建议。
另外,学习混淆的一些好信息是什么?
在vb.net或vbscript或数学伪代码中可以接受答案。
指出我正确的方向将不胜感激。
答案 0 :(得分:1)
我的具体问题是如何找出:
(z*y=x, z%y=x, z^y=x, zLogy=x, or 3.123^10=x)
对于乘法,将两边除以y
,得到:
z = x / y
请注意,即使x
和y
都是整数,您也可能会得到小数z
(例如2 / 7
)。
对于模数,请注意z % y
的结果不能大于或等于y
。因此,选择任意y
可能没有用,因为根据所选的值,您可能根本无法达到x
。你可以这样做:
z = x + rnd()*y
只要您选择大于y
的{{1}}值即可。请注意,这绝对仅适用于整数。
对于权力,如果x
则:
x ^ y = z
(为x = z ^ (1/y)
解决y ^ x = z
完全不同。)
您的对数示例没有多大意义,因为x
是一元操作,这意味着它只能在一个数字而不是两个数字上运行。除非你的意思是“log base y”,在这种情况下log
:
log{y} x = z