首页
社区
课程
招聘
[原创]第一阶段◇第一题
发表于: 2008-10-1 19:02 2341

[原创]第一阶段◇第一题

2008-10-1 19:02
2341
1. 用010 Editor打开向pediy.dll在原IAT中增加WinExec

2. 用od打开pediy.dll,在我的电脑上pediy被重载到0x3e0000的基址上了。。。

3. 找块空白的地方写上数据,如下:

003E10CC  65 78 70 6C 6F 72 65 72 20 68 74 74 70 3A 2F 2F  explorer http://
003E10DC  62 62 73 2E 70 65 64 69 79 2E 63 6F 6D 00 00 00  bbs.pediy.com...


4. 在代码段中找块空白的地方写上代码,如下

003E10EC >  6A 01           push    1
003E10EE    68 CC103E00     push    003E10CC                         ; ASCII "explorer http://bbs.pediy.com"
003E10F3    FF15 08203E00   call    [<&KERNEL32.WinExec>]            ; kernel32.WinExec
003E10F9    C3              retn


5. 把修改过的pediy.dll进行保存,然后用010 editor打开pediy.dll进行编辑
把68 CC103E00改为68 CC104000,即把地址003E10CC改为004010CC
把FF15 08203E00改为FF15 08204000,即把地址003E2008改为00402008

因为原pediy.dll的基址是0x400000,所以我们需要这样改,这样改后,这两项地址004010CC和00402008还没有重定位项,于是我们需要手

工增加

6. 用Lord PE打开pediy.dll,把IMAGE_DIRECTORY_ENTRY_BASERELOC的IMAGE_DATA_DIRECTORY的size改为24

7.用010 Editor打开pediy.dll,找到重定位表入口处,把IMAGE_BASE_RELOCATION的SizeOfBlock也改为24,跟上面一致

8.在010 Editor中紧接着原来的重定位项后(0x0A1E)增加手工增加两个重定位项:
EF30、F530

9.写一个模板dll,导出一个空函数OpenUrlA,然后把这个导出表描述符和EAT复制到pediy.dll中的0x700(利用原导入表中的多于空间,这样

就不需要另外加section了)
,然后用010 Editor修改我们复制过来的导出表修复其中的RVA,并使函数的RVA指向10EC,完成。

这样的修改法不需要增加Section,与原dll大小保持一致。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
2
RVA:10EC
OpenUrlA函数大小=14 字节
附件提交次数=1
得分=min[1.0,(13/14)]×100-(1-1)×5=92.9
没改变文件大小,没增加新节加5分
最终得分97.9
2008-10-2 19:57
0
游客
登录 | 注册 方可回帖
返回
//