我正在尝试使用fstream编写可执行文件:
Dim buffer As String
Dim c As Char = Chr(9)
Dim fs As System.IO.FileStream = New System.IO.FileStream("test.exe", IO.FileMode.OpenOrCreate)
Dim w As System.IO.BinaryWriter = New System.IO.BinaryWriter(fs)
w.Seek(0, System.IO.SeekOrigin.Begin)
w.Write(HEX VALUES HERE)
w.Close()
fs.Close()
要将十六进制转换为ASCII,我尝试了以下内容:
MessageBox.Show(ChrW(Convert.ToInt32("48", 16)))
MessageBox.Show(Chr(CInt("&H" & "48")))
MessageBox.Show(Chr(CInt("&H48")))
但是,每个功能只能使用一个字符。如何使这些功能适用于整个字符串?
答案 0 :(得分:7)
我正在发布另一个答案。您可以使用以下代码来实现您的功能。
Dim st As String = "49204c6f76652050726f6772616d6d696e672e"
Dim com As String
For x = 0 To st.Length - 1 Step 2
Dim k As String = st.Substring(x, 2)
com &= System.Convert.ToChar(System.Convert.ToUInt32(k, 16)).ToString()
Next
您还可以使用以下代码功能:
Dim st As String = "49204c6f76652050726f6772616d6d696e672e"
Dim com As String
For x = 0 To st.Length - 1 Step 2
com &= ChrW(CInt("&H" & st.Substring(x, 2)))
Next
答案 1 :(得分:4)
您可以使用它将十六进制字符串转换为ASCII:
Dim hexValue = "48"
Dim ASCII_value = System.Convert.ToChar(System.Convert.ToUInt32(hexValue, 16))
答案 2 :(得分:0)
我收集了各种Hex函数并将其更改为工作。 他们在这里:
答案 3 :(得分:0)
经过测试和测试的代码
通过复制粘贴此
创建一个功能Function HexToString(ByVal hex As String) As String
Dim text As New System.Text.StringBuilder(hex.Length \ 2)
For i As Integer = 0 To hex.Length - 2 Step 2
text.Append(Chr(Convert.ToByte(hex.Substring(i, 2), 16)))
Next
Return text.ToString
End Function
像这样使用
Debug.WriteLine(HexToString("73696D306E"))
答案 4 :(得分:0)
排序多余,但我会添加一些我觉得更简单的内容。当您有字节数组时使用。
Dim str As String = String.Empty
For Each c In byteArray
str &= ChrW(c)
Next
答案 5 :(得分:-1)
让我发送更多细节,举一个简单的例子。 记住你的答案是如何将十六进制转换为ascii。对于它,你只需要获得下面描述的函数hex_to_ascii。
Sub test()
Dim str_word As Variant
str_word = "Hello Word"
Debug.Print "We've set=" & str_word
Dim hex_word As Variant
hex_word = str_to_hex(str_word)
Debug.Print "Just for convert to Hex format=" & hex_word
'48656C6C6F20576F7264
Dim ascii_word As Variant
ascii_word = hex_to_ascii(hex_word)
Debug.Print "Getting ASCII format from Hex=" & ascii_word
'072101108108111032087111114100
Dim hex_word_from_ascii As Variant
hex_word_from_ascii = ascii_to_hex(ascii_word)
Debug.Print "Finally converting Hex value to ascii=" & hex_word_from_ascii
'48656C6C6F20576F7264
Dim str_from_hex As Variant
str_from_hex = hex_to_str(hex_word_from_ascii)
Debug.Print "Remember=" & str_from_hex
'Hello Word
End Sub
Function str_to_hex(p_str As Variant) As Variant
Dim x As Long
Dim resp As Variant
Dim tmp As String
For x = 1 To Len(p_str)
tmp = Mid$(p_str, x, 1)
resp = resp & Hex(Asc(tmp))
Next
str_to_hex = resp
End Function
Function hex_to_str(p_hex As Variant) As Variant
Dim x As Long
Dim resp As Variant
Dim tmp As String
For x = 1 To Len(p_hex) Step 2
tmp = Mid$(p_hex, x, 2)
resp = resp & Chr(Val("&H" & tmp))
Next
hex_to_str = resp
End Function
Function hex_to_ascii(p_hex As Variant) As Variant
Dim x As Long
Dim resp As Variant
Dim tmp As String
For x = 1 To Len(p_hex) Step 2
tmp = Mid$(p_hex, x, 2)
resp = resp & Format(Val("&H" & tmp), "000")
Next
hex_to_ascii = resp
End Function
Function ascii_to_hex(p_ascii As Variant) As Variant
Dim x As Long
Dim resp As Variant
Dim tmp As String
For x = 1 To Len(p_ascii) Step 3
tmp = Mid$(p_ascii, x, 3)
resp = resp & Hex(tmp)
Next
ascii_to_hex = resp
End Function