package util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class ExeDllFileVersion {
public static int unpack(byte[] b) {
int num = 0;
for (int i = 0; i < b.length; i++) {
num = 256 * num + (b[b.length - 1 - i] & 0xff);
}
return num;
}
public static String getExeVersion(File file) {
String version = null;
RandomAccessFile raf = null;
byte[] buffer;
String str;
try {
raf = new RandomAccessFile(file, "r");
buffer = new byte[64];
raf.read(buffer);
str = "" + (char)buffer[0] + (char)buffer[1];
if(!"MZ".equals(str)) {
return version;
}
int peOffset = unpack(new byte[]{buffer[60], buffer[61], buffer[62], buffer[63]});
if(peOffset < 64) {
return version;
}
raf.seek(peOffset);
buffer = new byte[24];
raf
java获取exe文件的版本信息
最新推荐文章于 2021-03-14 12:34:20 发布