永发信息网

如何判断一个文件是否被加壳

答案: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也能看到区段名,但操作系统是软件,记事本也是软件,如果你想通过显示器看到或者通过喇叭听到信息,你必须通过软件来操作硬件。

完全彻底不用软件的方法,我想只能拆开硬盘,找到这个文件所在的地方,通过特定的设备给予硬盘特定的电子指令读取数据来判断了。

纯属猜想,技术能力有限。
全部回答
  • 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那么这两个应用的签名就一致。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯