能力值:
( LV9,RANK:280 )
|
-
-
2 楼
你系统的LoadLibraryA居然在ntdll的?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
最好看LdrLoadDll的返回值, 这个更加准确
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
OD不是显示在Kernel32里吗
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
直接调用LdrLoadDll吗?
|
能力值:
( LV9,RANK:190 )
|
-
-
6 楼
随便丢个砖块,它转圈都会很溜!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
你就不能跟进LoadLibraryA去看看?
|
能力值:
( LV9,RANK:190 )
|
-
-
8 楼
我只想说 : 你直接 函数 BOOL InjectPE(CHAR* szFileName) 然后 汇编代码 + 变量定义 对吗?你定义的变量 在壳运行时 寻址是 [ebp - xxxx] 但是问题来了你的 壳代码 开辟 堆栈变量了吗?(没有的!)你这种代码已经破坏掉堆栈数据了! 加到 DLL 或驱动,100% 都死翘翘的! exe可能会出不可预知的问题! 去看看 http://bbs.pediy.com/showthread.php?t=173358 希望能对你有帮助! 碰巧我最近还在更新这方面代码。
哎! 寻找 Kernel32.dll 基地址也是一团糟!没有任何的兼容性,尽然还想兼容 Win64 的!
给你个思路: 你把 需要的壳代码 编译进 一个单独的 节里面,反正 你是往目标加一个节数据的,把整个 壳节代码 和壳需要的数据 移植进去,然后你只要取得你壳入口 的 RVA 并把 原来入口的 RVA备份到你知道的地方让壳程序容易找到就行了!
也许你现在还没有火候理解这样一个概念: “编译地址a - 运行地址a = 编译地址b - 运行地址b = 编译地址c - 运行地址c =......= 一个壳代码运行地址与壳代码的编译地址的差值(xx)” 想 用 C 写壳代码 理解它了,你就会觉得 用C 写壳代码太轻松了啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
感谢赐教,确实这份代码写的很乱,我也还在学习阶段。至于兼容win64确实也只是想想。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
[QUOTE=linziqingl;1442964]我只想说 : 你直接 函数 BOOL InjectPE(CHAR* szFileName) 然后 汇编代码 + 变量定义 对吗?你定义的变量 在壳运行时 寻址是 [ebp - xxxx] 但是问题来了你的 壳代码 开辟 堆栈变量了吗?(没有的!)你这种代码已经破坏掉堆栈数据了! 加到 DLL 或驱...[/QUOTE]
感谢解带,我去学习下您的代码。感谢您的回答,有问题再咨询你
|
能力值:
( LV9,RANK:190 )
|
-
-
11 楼
我曾经也是经过现在你的状态,因为曾经尝尽求学的痛苦和来之不易,过来人怜惜后来者,只要我懂的,你尽可以问!
|
|
|