字节集反汇编包含DLL加强版

易语言 2020-08-25 17:54:20

字节集反汇编包含DLL加强版

.判断循环首 (len ≠ 0 且 MyDisasm.EIP < ptr + 取字节集长度 (data))
输出调试文本 (MyDisasm.SecurityBlock)
len = Disasm (MyDisasm)
.如果真 (len ≠ 0 且 len ≠ -1)
' x = 超级列表框1.插入表项 (, BG_10To16 (MyDisasm.VirtualAddr), , , , )
code.Addr = MyDisasm.VirtualAddr
.如果 (len ≠ 0 且 len ≠ -1)
' 超级列表框1.置标题 (x, 1, 查看字节集 (指针到字节集 (MyDisasm.EIP, len)))
code.Data = 指针到字节集 (MyDisasm.EIP, len)
' 超级列表框1.置标题 (x, 2, 到文本 (MyDisasm.CompleteInstr))
code.Code = 到文本 (MyDisasm.CompleteInstr)
.如果真 (MyDisasm.Instruction.AddrValue ≠ 0 且 选择框1.选中)
.如果真 (类1.Get (MyDisasm.Instruction.AddrValue, 0) = 假)
k = k + 1
类1.Add (MyDisasm.Instruction.AddrValue, k)
.如果真结束
code.Code = 格式化文本 (“%slabel%d”, 到文本 (MyDisasm.Instruction.Mnemonic), k)
.如果真结束

.否则
.如果真 (MyDisasm.SecurityBlock > 0)
' 超级列表框1.置标题 (x, 1, 取文本右边 (“00” + 取十六进制文本 (指针到字节 (MyDisasm.EIP)), 2))
code.Data = 指针到字节集 (MyDisasm.EIP, 1)
' 超级列表框1.置标题 (x, 2, “db ” + 取文本右边 (“00” + 取十六进制文本 (指针到字节 (MyDisasm.EIP)), 2) + “h”)
code.Code = “db ” + 取文本右边 (“00” + 取十六进制文本 (指针到字节 (MyDisasm.EIP)), 2) + “h”
len = 1
.如果真结束

.如果结束
加入成员 (codes, code)
MyDisasm.EIP = MyDisasm.EIP + len
MyDisasm.VirtualAddr = MyDisasm.VirtualAddr + len
MyDisasm.SecurityBlock = MyDisasm.SecurityBlock - len
i = i + 1