固定基址-便于调试修改入口点程序使用x64dbg打开,可以看到程序基址为140000000程序的入口点为11023,那么在内存中,程序入口点=基址+偏移量=140000000+11023=140011023ctrl+G定位到140011023,然后找一个空白处,这里选择1400113B3,修改汇编代码为jmp 0x140011023 右键→补丁→修补文件,保存文件为project2.exe,然后将程序入口点修改为00113B3现在运行project2.exe,可以发现入口点已经到了140.
关于
PE
病毒编写的学习(八)——定位API的N种方法
关于
PE
病毒编写的学习(六)——关于
PE
文件结构操作的
程序
编写
关于
PE
病毒编写的学习(七)——重定位的谬误和它的正确写法
关于
PE
病毒编写的学习(三)
关于
PE
病毒编写的学习(四)——关于历遍磁盘的讨论
关于
PE
病毒编写的学习(五)——病毒如何做标记和记录信息
关于
PE
病毒编写的学习
大家好````我是JKS_Jia...今天给大家带来一个关于免杀的教程``
修改
PE
头```
大家可能有疑问了``那
修改
PE
头有什么用呢``?`..有很对时候杀毒软件定的特征码很变态,
定位特征在
PE
头上``我们如果用一般的特征码
修改
法,
修改
以后无法运行,应为
PE
无法识别他是一个可执行
程序
...例子就像PCshare
修改
PE
头不仅有免杀效果``而且还有反调试的功效``
就是
修改
后不能用OD载入了```那样就可以保证..我们的免杀技术不泄露了``好``在开始前
先来说句``
甲壳虫技术小组
坚韧不拔 永不言弃
www.jksing.com
--------------------------------
------诚招技术伙伴加盟----------
如果课程不明白的可以加此群交流``41415673
好了``费话不多说``我们开始``
在这里我就用鸽子示范一下``虽然目前我还没知道哪个杀软会杀鸽子的
PE
的``
所以免杀效果演示不了``在这主要是学方法..而不是生搬硬套!!
首先我们来了解一下什么是16进制和10进制```关与进制方面``转换就交给转换器````
就像E0是16进制单位``转化成10进制就变成224了```所以了解一
点
就够了``
首先我们打开 C32...还是选16进制模式``
好```我们来看``这个
PE
头``
顾名思义``
PE
头都是以
PE
开始的!!!
好了``大家又有疑问```怎么知道
PE
头大小呢``?
好``我们来看```
PE
下有个" ? "的符号```
PE
的大小就看他``
怎么看呢``看16进制栏呢!!!
大家看见了吧``是E0..然后打开转化工具转化吧````前面转化好是224
然后我们从
PE
头部分一直拉```
拉够224字节...看..下面有显示224字节的!!!
然后COPY(复制)..
我们可以把
PE
header上移
我们向上拉一片区域```刚好224字节````我们粘贴```
好了``现在我们看
PE
头多大```?
现在变成336了``
好``我们转换一下```在16进制里是150
接下来我们修正```
150 按照地位到高位的写法 应该这样写 50 01
好...大小修正完了``再把
PE
入口
点
修正````
随便找的地方吧````就这里```
看..现在的
入口
点
是00000090
我们就修正为 90 00
好``先用OD测试能不能载入```测试我们的反调试效果````
OK..不能载入````我们再测试上线```
OK...没问题```今天的教程就到这里````
在此先请求黑吧给我个邀请码```资源共享..技术交流嘛````互相促进````呵呵```
好..完工``我们下次再见``
前两节中介绍了通过远线程进行注入的方法。现在换一种方法——
修改
进程
入口
点
。(转载请指明出处)
在
PE
文件中,其中有个字段标识
程序
入口
点
位置。我们通过这个字段,到达
程序
入口
点
。
PE
文件的结构我这儿不讨论(我会在之后写关于
PE
文件的介绍和研究),我只列出一些和
程序
入口
点
有关的数据结构
ty
pe
def struct _IMAGE_NT_HEADERS {
1.窗口、类名等常见
修改
;
2.格式化字符串的漏洞[OutPutDebugString]补丁;
3.参考dyk158的ODbyDYK v1.10 ,自动配置UDD、PLUGIN为绝对路径;
4.参考nbw的"OD复制BUG分析和修正"一文,修正从内存区复制数据时,有时无法将所有的数据都复制到剪贴板的bug。
5.参考ohuangkeo“不被OD分析原因之一和修补方法”,稍改进了OD识别
PE
格式能力(可能仍报是非
PE
文件,但己可调试了)。
6.修正OllyScript.dll插件bpwm命令内存读写都中断的问题。
7.jingulong的Loaddll.
exe
,可以方便让OllDbg中断在dll的
入口
。
8.感谢DarkBul告知SHIFT+F2条件窗口显示的bug及修复。
9.感谢dreaman修复Findlabel,Findname,Findnextname三个函数处理字符串会溢出的bug。
10.改善sprintf函数显示某些浮
点
数会崩溃的bug,这里的修复代码直接引用h
eXe
r的代码。
11.该
修改
版,配合HideOD插件,可以很好地隐藏OD。
12.新增实用的快捷键功能
13.修正Themida v1.9.x.x检测OllyICE的Anti,配合HideToolz即可调试Themida v1.9.x.x加壳
程序
。
14.LOCKLOSE添加了部分API和结构体信息。
PE
文件中显示的所有
地址
基本都是RVA,倘若想要换算成VA一般需要加上基
地址
ImageBase与文件偏移
地址
RVA。
虚拟
地址
(VA=virtual address):每个32位
PE
文件被加载到内存的时候都会被分配4GB的虚拟内存,虚拟
地址
等于“
程序
的相对虚拟
地址
+基
地址
”。
相对虚拟
地址
(RVA=relatively virtual address):相对虚拟
地址
是相比较于文件开头的地
因为,杀毒公司知道鸽子的一些特征玛,在内存里找有没有对应的特征玛。来识别对鸽子进行查杀。我们可以找出来它的特征玛来进行
修改
。使得杀毒工具无法判断这个软件。所以也就对我们的鸽子不报警了。
但是,得知道特征码是个很麻烦的事情。谁都讨厌去弄他们的特征玛。如果大家有兴趣。可以到网上搜索CCL判断特征玛的方法。来进行学习。为什么改特征玛很麻烦呢?是因为每个杀毒软件。对一个病毒的特征玛...