能力值:
( LV2,RANK:10 )
|
-
-
2 楼
可不可写跟pe header没什么关系,
你申请内存的时候,就可以设置页的读写权限
ERROR_INVALID_PARAMETER 肯定是参数push错了,查下msdn就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
可不可写跟pe header没什么关系 ?
前面说了,要写入的地址是 b.dll 自己的地址,不是我申请的。
拿上面的示例代码看,请问参数错在哪里呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
看样子帖子要沉下去了,自己再顶。
是我提的问题太简单,还是条件不够?恳请高人指点一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
给你看下我写的功能代码:
;******* Section Protect
lea esi,dword ptr [ebp+(Ker32DllName-ShellStart)]
push esi
call dword ptr [ebp+(GetmulehandleADDR-ShellStart)]
lea esi,[ebp+(VirtualProtect-ShellStart)]
push esi
push eax
call dword ptr [ebp+(GetprocaddressADDR-ShellStart)]
mov dword ptr [ebp+(VirtualProtectADDR-ShellStart)],eax
mov eax,ebp
add eax,(OldProtectCharacteristics1-ShellStart)
push eax
push PAGE_READWRITE;这个值据说是0X04;OD里查下吧
push 600h
push dword ptr [ebp+(FileHandle-ShellStart)]
call dword ptr [ebp+(VirtualProtectADDR-ShellStart)]
mov ebx,S_SectionCharacteristics-ShellStart
GetSectionCharacteristicsNext:
cmp dword ptr[ebp+ebx],0h
jz AllSectionGetCharacteristics
mov eax, ebp
add eax,ebx
mov ecx,dword ptr[eax]
add ecx,dword ptr [ebp+(FileHandle-ShellStart)]
mov edx,dword ptr[eax+4h]
mov dword ptr[ecx],edx
add ebx,8h
jmp GetSectionCharacteristicsNext
AllSectionGetCharacteristics:
mov eax,ebp
add eax,(OldProtectCharacteristics2-ShellStart)
push eax
push dword ptr [ebp+(OldProtectCharacteristics1-ShellStart)]
push 600h
push dword ptr [ebp+(FileHandle-ShellStart)]
call dword ptr [ebp+(VirtualProtectADDR-ShellStart)]
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢5楼指点。看来是我把着红色的宏部分弄错了,马上试试。
有点不解,这各种宏标志位“或”出来应该有 E0000040 这一结果啊?我直接用了 PE 头部节属性“或” 80000000h 后的数值,也许就是这个参数不对。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
PE头部是不可写的,明显不能用。0X04是可读写。
|
|
|