电脑常识文选 | QQ专区 | 硬件Diy | 电脑教程 | 电脑应用 | 网络应用 | Office | 操作系统 | 电脑学习 | 电脑知识库 | 网页制作 | 应用软件 | 电脑硬件
电脑故障 | 电脑网络 | 病毒防治 | 安全防护 | 电脑爱好者 | 电脑知识 | 软件应用 | 电脑医生 | cpu | 主板 | 硬盘 | 内存 | 显卡 | 显示器 | 键盘鼠标
本文相关内容
·虚拟刻录!试试明基QSuite刻录百宝箱
·虚拟个200X的光驱让游戏玩的更畅快
·星际译王:来自Linux的免费词霸
·新感受 MP3音乐试听有窍门
·新潮电脑办公必备的两样法宝
·新不如旧:怀念常用软件的经典版本(二)
·新不如旧 怀念Winamp 2.X
·新版Hotmail开始公测 20万用户可获测试资格
·秀Time Winamp 3.0b3上手指南
·新邮件到达自己提醒
·新鲜的尝试 让本地软件也能变“在线版”
·新鲜出炉:雅虎1G免费邮箱容量实测!
·新手使用foxmail应该注意的几个问题
·新软件助你预先享受Longhorn界面
·新浪UC2005II登场 娱乐对对碰随机找聊友
·DFCG破解入门第六课
·DFCG破解入门第十三课
·DFCG破解入门第十五课
·DFCG破解入门第十一课
·DFCG破解入门第十二课
·DFCG破解入门第十课
·DFCG破解入门第七课
·DFCG破解入门第八课
·DFCG破解入门第九课
·DFX,让MediaPlayer音质更出色
·DivX 电影播放四大常见问题之解决办法
·DivX+文本类字幕转其他格式
·DivX+Vobsub字幕转其他格式
·DivX制作攻略
·DIVX的神奇演绎原理解剖
  ★DFCG 破解入门第十四课

DFCG 破解入门第十四课

添加记录: 软件应用  类别: 软件应用  发布日期: 2006.09.20

                
怎样在文件中加入自己的空间之PE文件格式篇!

目的:PE文件编辑软件的使用! 
工具:PEDITOR 1。7 http://202.101.237.103/f/jwjjt/index.html 
Hex workshop http://202.101.237.103/f/jwjjt/index.html 
编辑对象:WINDOW自带的记事本程序! 
前言 
我们有时候会遇到在一个程序中,加入一个程序没有调用到的函数或者自己做的一个函数来完成一项任务!比如说,我们想调用一个动态的DLL,我们需要用到USER。DLL中的LoadLibraryA函数,但是有的程序却没有包涵它,为此我们就要手工来加入这个函数!让程序在开始的时候装载它,以便于我们在程序中调用! 
要加入这个函数,我们需要在程序中找到一个空闲的地方,在大多数时候我喜欢自己在程序中加入一大片空地,怎么加呢?LET‘S GO! 
START: 
用PEDITOR打开记事本NOTPAD程序。 
注意:在这个程序中的地址,指的都是相对地址(RVA),在hex workshop中查看的话,要把地址转为文件偏移(OFFSET)才能用。 

 


   如果你想知道PE格式的话,你可以到www.pediy.com网站看一下脱壳教学!在那有详细的PE文件格式的介绍!在此我就不多说了!下面我们点击SECTION按钮,来到节表(SECTION) 
中。    

在其中的一个节表上点鼠标右键,选add a section,就会跳出一个窗口!



点击加入,你将会看到在节表列表窗中已经有你加入的节了。在编辑框中输入你想要加入的节名,下面我们就要确定我们做的节的大小了。在新的SECTION上点击右键,选择edit section,跳出一个窗口,我改变节的大小和这的属性 




运行一下记事本程序,可以运行。不过你看一下记事本的大小还是没有改变的。这就是说我们还是没有加入自己的代码空间。不要急,下面我们就用hex workshop打开记事本程序,在程序的最未端插入200字节!我想这一步你应该会吧!:) 

到此,我们加入代码空间的工作算是完了! 

下面,我们开始第二步:加入我们想要调用的函数! 

在PEDITOR中,点击directory按钮!我们来到一个的界面! 



这个窗口没有什么好说的,我们点击右下角的import(引入表)按钮,来到一个窗口上。

 

这个窗口分为两部分,上面的窗口显示的是程序调用的DLL,下面的显示在这个DLL上调用的函数! 

我们在其中的一个DLL上点击右键,选add import,来到一个窗口! 



在此一步,须要注意的就是包涵你调用的函数的DLL名字不要搞错了哦!如:MessageBoxA就是在USER。DLL中的。加入完了你要用的函数后,按OK。我们返加到上图的窗口上。这时我们看一下DLL窗口,发现在最底下,多了一个我们调用的DLL,点击这个DLL就会看到我们加入的函数了。



我们要做的就是记下这个指向这个函数的地址!第一个函数的指向地址“ A”在DLL窗口的最右下方的那个,如在本例中就是:0000E0B9!记住,如果有N个函数的话,那么其它的函数的指向地址就是:“A”+(N-1)*4  ,如在本例中第二个函数就是: 
0000E0B9+(1-1)*4==0000E09D在记下函数的地址后,我们可以到hex workshop中,验证一下。在我们加入函数地址是 
0000E0B9,




虽然我们知道了函数在文件中的偏移地址,但是还要把这个地址转换成程序运行时的内存地址才能调用啊!不要急,在PEDITOR这个超强工具中,已经有了这个功能。就是在第一张图的窗口上的“FLC”按钮。让我们点击一下“FLC”按钮!



注意:在这个程序中的地址,指的都是相对地址(RVA),在hex workshop中查看的话,要把地址转为文件偏移(OFFSET)才能用。 

我们在第二个编辑框中输入了E0B9,得到了程序的调用地址(VA)是:[0040E0B9] 
文件偏移是:E2B9。 

 在此有必要讲一下,操作系统给程序所调用函数重定位的过程。操作系统在引入表中 
查找到程序所调用到的函数名后,就会把这个函数映射到内存中,并把函数在内存中的地址 
比如是:BFFF1234放入到在文件中指向函数名的地址中也就是在IMPRT窗口中的FirstThunk项了。在本程序中就是把BFF1234放入到40E0B9中,所以我们要调用MessageBoxA函数的话,就可以这样来CALL了: 
PUSH XXXXXXXX 
PUSH XXXXXXXX 
PUSH XXXXXXXX 
CALL [40E0B9] ----》》》MessageboxA 

我们在这个CALL ,F8跟入的话,就可以发现我们在地址就是:BFFF1234 

好,这一篇就写到这!谢谢你耐着性子把这篇烂文看完!也谢谢我自己能有这样的性子把这个写完!如果有不懂的就在论坛上留言!我尽快回答!



(出处:http://www.8s8s.net)



上一篇:DF1BB3。tmp ,DFF465.tmp,...在TEMP文件夹下,都是什么? 下一篇:DFCG破解入门第六课

电脑常识文选风云榜
声卡音箱 | 软驱光驱 | 打印机 | 机箱电源 | BIOS | 操作系统 | 局域网 | 浏览器 | 网卡 | 电脑死机

电脑常识文选 © 2006 版权所有

提示:本站致力于电脑使用常识,电脑故障排除,计算机使用小窍门的分享与传播,内容仅供参考,按此操作责任自负。