加壳
一般的壳分为压缩壳和加密壳(例如vmp
upx是一种开源的压缩壳软件
加壳可执行文件:UPX sample.exe
脱壳可执行文件:UPX -d sample.exe(很多时候不管用)
所以要学习手脱一
如何判断Windows程序是32位还是64位
(4条消息) 如何判断Windows程序是32位还是64位_skyyyy__的博客-CSDN博客_如何判断程序是32位的还是64位一个简单的查exe是32位还是64位的方法 - 知乎 (zhihu.com)
(4条消息) 怎样判断一个exe可执行程序是32位的还是64位的_沐甄的博客-CSDN博客_怎么查看exe是32位
经过尝试我认为通过记事本查看的方法较好//太笨了,早知道有die就好了,来自12.31的我
下面是我通过记事本处理的截图,可以看到在第二行有PE d?的字样,再后面两个空格后第三个字符就是标记了,如果是字母L的话,就是32位应用程序,如果是d?就表示是64位应用程序。
事实证明这是一个64位的程序,然后再用64位的IDA打开
upx笔记,当程序被加上upx壳时,原本的程序的PE头就被藏起来了,变成我们需要找的OPE
这时候,我们就需要在ida中加断点,断点分两种,一种是普通断点,一种是硬件断点,
两者共同之处,都是ida打开一个程序的地方
不同之处,普通断点
在设置的时候ida会在那个打开一个程序的地方的第一条代码,会被ida改成开始代码,也就是那个本身的数据被覆盖了,因为插入了一条断点代码
硬件断点,下次调试可快速进入原始代码、硬件断点不会修改数据
upx加壳,就是在cmd里面之间UPX+程序名.exe
脱壳就是UPX _d 程序名.exe(基本上没用)