能力值:
( LV13,RANK:410 )
|
-
-
2 楼
pImageOptionalHeader看起来是这个变量未初始化.
或者你应该写成AddressOfEntryPoint = this->OptionalHeader->AddressOfEntryPoint;
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
还是不行,修改后错误提示变成了“Unhandled exception at 0x008e28cc in Shell.exe: 0xC0000005: Access violation reading location 0xccccccdc.”。
还有楼上的 "this->pOptionalHeader->AddressOfEntryPoint"应该是“ this->pImageOptionalHeader->AddressOfEntryPoint;”,要不然编译时出错。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
菜鸟能帮我看下我的问题吗
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
刚注意到vs2010中还有如下提示:
Magic CXX0030: Error: expression cannot be evaluated
MajorLinkerVersion CXX0030: Error: expression cannot be evaluated
MinorLinkerVersion CXX0030: Error: expression cannot be evaluated
SizeOfCode CXX0030: Error: expression cannot be evaluated
SizeOfInitializedData CXX0030: Error: expression cannot be evaluated
SizeOfUninitializedData CXX0030: Error: expression cannot be evaluated
AddressOfEntryPoint CXX0030: Error: expression cannot be evaluated
BaseOfCode CXX0030: Error: expression cannot be evaluated
BaseOfData CXX0030: Error: expression cannot be evaluated
ImageBase CXX0030: Error: expression cannot be evaluated
SectionAlignment CXX0030: Error: expression cannot be evaluated
FileAlignment CXX0030: Error: expression cannot be evaluated
MajorOperatingSystemVersion CXX0030: Error: expression cannot be evaluated
MinorOperatingSystemVersion CXX0030: Error: expression cannot be evaluated
MajorImageVersion CXX0030: Error: expression cannot be evaluated
MinorImageVersion CXX0030: Error: expression cannot be evaluated
MajorSubsystemVersion CXX0030: Error: expression cannot be evaluated
MinorSubsystemVersion CXX0030: Error: expression cannot be evaluated
Win32VersionValue CXX0030: Error: expression cannot be evaluated
SizeOfImage CXX0030: Error: expression cannot be evaluated
SizeOfHeaders CXX0030: Error: expression cannot be evaluated
CheckSum CXX0030: Error: expression cannot be evaluated
Subsystem CXX0030: Error: expression cannot be evaluated
DllCharacteristics CXX0030: Error: expression cannot be evaluated
SizeOfStackReserve CXX0030: Error: expression cannot be evaluated
SizeOfStackCommit CXX0030: Error: expression cannot be evaluated
SizeOfHeapReserve CXX0030: Error: expression cannot be evaluated
SizeOfHeapCommit CXX0030: Error: expression cannot be evaluated
LoaderFlags CXX0030: Error: expression cannot be evaluated
NumberOfRvaAndSizes CXX0030: Error: expression cannot be evaluated
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
看楼主那样子应该是MPE的this指针是错的。
怀疑他哪里用了错误的强制转换。
如果MPE是从MFC类继承的话他可能在某个消息映射处写错了。
不过也可能是pImageOptionalHeader指针没有初始化
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
现在把源码附上,有兴趣的可以看一下,修改完成后会另发一主题。本想把整个工程传上来,可是不知怎么的总传不上来,是不是因为文件太大(30M左右),知道的说一下
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
问题有进展,好像确实是指针初始化的问题,正在进一步调试中
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
就不另开一帖了,在此献上源码。此小程序仅能修改入口点,高手飘过~
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
感谢楼主无私分享~~
请问像你那样把项目文件vcxproject和解决方案文件sln放在同一个目录的情况该怎么设置~
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
话说你那个,加密之后文件无法运行了啊。。
我迟点再看代码。。
话说明天还有个java的笔试。。算了今晚就看看C++的东西吧
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
ChangedEntryPoint = AddressOfEntryPoint + 10000;
我汗。。。楼主你。。。
其实你应该那啥么嘛。。自己搞一段代码啊。
之前我也有弄一个类似的。
http://codepad.org/TQOC3CQ2
不过没做完。
我不想用汇编做自定位代码,也不想用SEH因为MinGW不支持。
所以现在想要解决函数导入的唯一方法(我没想出其他方案)就是构造一个新的IAT,
来解决LoadLibrary和GetProcAddress两个函数。
当然如果导入表里有kernel.exe的话其实可以直接去那里解析PE头来找的。。。
嗯,之前居然没想到。。还在考虑要兼容不导入LoadLibrary和GetProcAddress两个函数的程序
现在想想,只需要放弃兼容那些没有kernel32.dll的导入的程序,那么我的代码就可以优雅很多。。
楼主给了我新的灵感!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
话说我也不清楚,vs2010直接就放在同一个目录里了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
哎,没办法,现在我的水平也就这样,等以后有所提高后或许会另写一个好点的加密程序
|
|
|