首页
社区
课程
招聘
[求助]添加新节后的问题
发表于: 2010-6-12 20:01 5154

[求助]添加新节后的问题

2010-6-12 20:01
5154
有个程序,我写了个添加新节的程序,新节代码功能就是LoadLibrary我自己的一个DLL文件。
这个DLL就是我在Detours库写的一个HOOK CreateProcessW的DLL。
结果目标程序在添加新节后,出现错误“没有找到 .dll, 因此这个应用程序未能启动。.....”
请问是什么问题啊
添加节的代码应该没问题,测试过了。现在是OD也调试不了,一加载就出现错误上面的提示

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
2
LoadLibrary 导入表中有吗?
2010-6-12 20:13
0
雪    币: 145
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
发上代码来来分析
2010-6-12 20:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
导入表里没有?
我是在新节代码里LoadLibrary的啊,导入表也要有吗?
2010-6-12 21:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
;; ----- 新节代码 -----
NewSection:
   ;; 在这里获取地址
   ;; call指令会将下条指令的地址压入堆栈
   ;; 注意此指令的OPCODE为EB00000000
   ;; 病毒与Shellcode等常用此指令定位
   ;; 杀毒软件的启发式搜索常将此特征作为查找特征
   ;; 聪明的读者可以自己修改定位代码来躲过
   ;; 这类的查杀
   ;; invoke LoadLibrary, addr dllName
   ;; invoke GetProcAddress, eax, addr function01
   
   call GetEip
   GetEip:
   ;; eax中有保存着当前的地址,标号为GetEip
   pop ebx
   mov ecx, ebx;
   add ecx, offset dllName - offset GetEip
   push ecx
   mov edx, dword ptr [7c801d7bh];
   call edx;
   ;invoke LoadLibrary, ecx

   
   
   add ebx, offset OrigAddressOfEntry - offset GetEip
   ;; 两个偏移的差就是这两个地址之间的距离,它的距离 + 起始地址
   ;; 就为OrigAddressOfEntry的地址
   ;; 最后将OrigAddressOfEntry保存的值,也就是原来的入口节的地址
   ;; 送回eax中。
   mov eax, dword ptr [ebx]
   ;; 跳到原入口点地址
   jmp eax
代码就是COPY的玩命的,地址暂时先写死了
2010-6-12 21:04
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
你把dll放到同一个目录下  或者放到系统目录下  确认dll的名字没有写错   就这么简单~
2010-6-12 21:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
名字是没有写错,是当前目录。
我不能理解的是为什么OD在入口点都断不下来?
是不是在系统加载那个EXE文件时就出错了,就是名字错了,也应该是在运行是错,不会入口都断不下来啊
2010-6-12 22:04
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
8
添加新节时pe头的参数都改了吗?
2010-6-12 22:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
问题解决了。
是PE文件中BOUND_IMPORT问题
2010-6-13 12:11
0
游客
登录 | 注册 方可回帖
返回
//