全盘扫描EXE文件修复工具

易语言 2020-08-04 19:01:08

全盘扫描EXE文件修复工具

申请内存特征 = { 106, 64, 104, 0, 16, 0, 0, 104, 0, 0, 1, 0 }
申请内存地址 = 寻找字节集 (扫描数据, 申请内存特征, 解码位置)
key地址 = pe.GetImageBase () + 取字节集数据 (扫描数据, #整数型, 申请内存地址 + 37) ' 扫描数据 [申请内存地址 + 37]
key偏移 = pe.VA_to_Offset (key地址) + 1
偏移备份 = key偏移
key = 取字节集数据 (扫描数据, #整数型, key偏移)
内存解码寻找特征 = { 5, 0, 240, 0, 0, 80 }
申请解码位置 = 寻找字节集 (扫描数据, 内存解码寻找特征, 申请内存地址) + 7
申请解码长度 = 取字节集数据 (扫描数据, #整数型, 申请解码位置)
key偏移 = 偏移备份
oep特征 = { 198, 7, 243, 198, 71, 1, 164, 198, 71, 2, 195 }
OEP位置 = 寻找字节集 (扫描数据, oep特征, 申请解码位置) + 15
.如果真 (OEP位置 ≠ -1)
OEP = 取字节集数据 (扫描数据, #整数型, OEP位置)
pe.SetOEP (扫描数据, OEP)
.如果真结束
还原结果 = 解密原始数据 (扫描数据, 偏移备份, 申请解码长度)
RtlMoveMemory_字节集 (取变量数据地址 (扫描数据) + 开始扫描地址, 还原结果, 取字节集长度 (还原结果))