能力值:
( LV2,RANK:10 )
|
-
-
2 楼
补充说明一下,我自己写的壳由于公司限制,不能发出来了。
使用的bambam加壳的工具是bambam v0.04.exe
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
这个是被bambam加壳后的一个简单程序。
在我的win7上执行时,就会出现描述中的问题,
各位可以放到自己的win7上试试。
hello.rar
|
能力值:
( LV13,RANK:283 )
|
-
-
4 楼
哎,下来就一直被报毒,不实验了,楼主修改下节标志,或者把要执行代码的内存修改为可执行试一下
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢楼上。我试试。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
OK,试验了一下,之前OD挂上,壳的第一条指令就异常了,然后被系统处理,直接被终止。
现在把壳所在的段加上可执行标志后,壳的代码已经可以正常执行了。
谢谢littlewisp
|
能力值:
( LV13,RANK:283 )
|
-
-
7 楼
应该是DEP的原因造成的
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
刚通过楼上的提示,了解了一下DEP。应该是这个原因。
我刚还以为是操作系统对被执行代码所在的内存页标志有判定呢。
现在看来,应该是操作系统设置了DEP使能,由CPU干了这件事。
实际上EIP到你的代码里的时候,操作系统也是没办法做检测的。
独学而无友,则孤陋而寡闻。
littlewisp高手啊,以后多交流。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
另外,我的壳中有些代码是放到动态内存中执行的。
基本代码结构是:
BYTE* pFunc = (BYTE*)GlobalAlloc(GPTR, dwCodeLen);
memcpy(pFunc, pRealFunc, dLen);
....解密
pFunc();
GlobalFree(pFunc);
========================================================
在win7下面被执行时,产生相同的问题。
于是我在pFunc();前后添加了设置内存页属性的调用
DWORD dwOldProtect;
VirtualProtect(pFunc, dLen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
pFunc();
VirtualProtect(pFunc, dLen, dwOldProtect, &dwOldProtect);
不过调用到pFunc()后的第一条指令,还是产生相同的异常。不知道做何修改?
|
能力值:
( LV13,RANK:283 )
|
-
-
10 楼
奇怪了,我的就是这样弄的,你在可以xp下跟一下,看是否设置成功了。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
在XP下是成功了的,所有功能都正常。
==================================================================
解决了。也不用指定壳段可执行了。
把PE头里面的DEP标志清掉就可以了。
pExeOptionalHeader.DllCharacteristics &= ~IMAGE_DLLCHARACTERISTICS_NX_COMPAT;
之前我没有了解DEP相关的知识。多谢点拨。
|
能力值:
( LV13,RANK:283 )
|
-
-
12 楼
哈哈,你更狠。
|
|
|