VB 异或(Xor)字符串的方法
关键字:VB,VBA,异或,Xor,字符串
前言
简介:大家都知道,异或(Xor)是最常用的加密方式,在学习逆向时,经常会见到异或(Xor)操作。最近研究 UltraISO 8.6.5.2140 版的算法,里面全是异或(Xor)操作,就试着用VB写了一下它的加密程序,用C语言写起来感觉很简单,但用VB确不会做,网上搜了一下,也没有详尽的教学,只好自己琢磨,别说,虽然走了一些弯路,但总算搞明白了,分享给大家,希望能帮到需要的人。
第一天晚上做出了“方法一”,后来,又到另一台电脑写同样的程序时,就出现了“方法二”。
一、方法一,比较笨。
第一个strXor1函数:
Function strXor1(s1 As String, s2 As String)
Dim m1 As Double, m2 As Double
m1 = Val(s1)
m2 = Val(s2)
strXor1 = Hex(s1 Xor s2)
End Function
说明:函数接收两个十六进制字符串s1和s2,先用Val()函数将十六进制转成十进制后,再做异或操作,再用Hex()函数转回成十六进制返回。在传递参数之前,s1和s1必须在前面加上“&H",看下面调用代码:
Sub test1()
Dim s1 As String, s2 As String
Dim s3 As String, s4 As String, Str As String
Dim x As Integer
s1 = "3E76F499"
s2 = "20020920"
For x = 1 To Len(s1