如何判断一个文件是否被加壳
答案:2 悬赏:50 手机版
解决时间 2021-01-26 18:54
- 提问者网友:戎马万世
- 2021-01-25 18:54
如何判断一个文件是否被加壳 除了用软件。 大侠指教指教
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-01-25 19:28
我一般简单判断文件是否加壳,使用 PEid,Language2000 等,他们是第三方软件。
或者通过 Stu_PE 查看它的区段,一般第一区段是 “.text” 且入口点在第一区段之类的是未加壳。其他的需要一些经验判断。
用 OD 调试器观察入口点也能做一些判断。
当然,Stu_PE 和 OD 都是软件。
还有用 UltraEdit 直接分析 PE 结构的,UltraEdit 也是软件。
如果不用第三方软件,我只能用 CreateFile,ReadFile 这些函数从文件里读取到特定的二进制数据进行分析。
当然,要使用这些函数,我必须使用一些编译器软件。
用记事本直接打开EXE也能看到区段名,但操作系统是软件,记事本也是软件,如果你想通过显示器看到或者通过喇叭听到信息,你必须通过软件来操作硬件。
完全彻底不用软件的方法,我想只能拆开硬盘,找到这个文件所在的地方,通过特定的设备给予硬盘特定的电子指令读取数据来判断了。
纯属猜想,技术能力有限。
或者通过 Stu_PE 查看它的区段,一般第一区段是 “.text” 且入口点在第一区段之类的是未加壳。其他的需要一些经验判断。
用 OD 调试器观察入口点也能做一些判断。
当然,Stu_PE 和 OD 都是软件。
还有用 UltraEdit 直接分析 PE 结构的,UltraEdit 也是软件。
如果不用第三方软件,我只能用 CreateFile,ReadFile 这些函数从文件里读取到特定的二进制数据进行分析。
当然,要使用这些函数,我必须使用一些编译器软件。
用记事本直接打开EXE也能看到区段名,但操作系统是软件,记事本也是软件,如果你想通过显示器看到或者通过喇叭听到信息,你必须通过软件来操作硬件。
完全彻底不用软件的方法,我想只能拆开硬盘,找到这个文件所在的地方,通过特定的设备给予硬盘特定的电子指令读取数据来判断了。
纯属猜想,技术能力有限。
全部回答
- 1楼网友:零点过十分
- 2021-01-25 20:34
android应用的发布形式apk中包含的签名加密方法除了rsa还有dsa,所以不能只从apk中提取常见的meta-inf/cert.rsa,应该是检查apk中具体的签名文件。
1. file="yourapp.apk"
2. cert_xsa=`jar tf $file | grep sa`
3. 此时得到的cert_xsa可能是meta-inf/*.rsa或者meta-inf/*.dsa。
2.apk中提取具体的签名文件。
jar xf $file $cert_xsa
此时会在当前目录得到cert_xsa文件。
3.对于得到的签名文件,提取其中签名的md5值
keytool -printcert -file $cert_xsa | grep md5 > "$file.certmd5"
这时候yourapp.certmd5这个文件中就保存了yourapp.apkk中的签名md5值。
4.最后比较两个app的签名可以用diff
file1="yourapp1.apk"
file2="yourapp2.apk"
//经过上述步骤得到$file1.certmd5和$file2.certmd5
certmd5_diff=`diff $file1.certmd5 $file2.certmd5`
if [ "$certmd5_diff" = "" ]; then
echo "$file1.certmd5 == $file2.certmd5"
fi
若输出yourapp1.apk.certmd5 == yourapp2.apk.certmd5那么这两个应用的签名就一致。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯