首页
社区
课程
招聘
[求助]关于加壳的问题:od提示访问违规是什么意思
发表于: 2009-4-3 21:47 2862

[求助]关于加壳的问题:od提示访问违规是什么意思

2009-4-3 21:47
2862
自己写的一个加壳的简单程序,
对exe加完后可以正常运行,
对dll加壳后,加壳dll时提示访问违规,地址是壳的入口点地址。
好像就停在ntdll空间中了,
是什么原因呢?是重定位没有处理好么?

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 58782
活跃值: (21961)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
外壳入口点处的环境(堆栈和各寄存器的值等)和真正代码的当环境一致?
2009-4-3 22:47
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不知道对不对,我使用动态加载那个dll,结果执行完下面的代码后,返回的首位置竟然不是dll的入口点,为什么呢?
7C801DEB FF75 08 PUSH DWORD PTR SS:[EBP+8]
7C801DEE E8 ABFFFFFF CALL kernel32.LoadLibraryExA
7C801DF3 5F POP EDI
7C801DF4 5E POP ESI
7C801DF5 5B POP EBX
7C801DF6 5D POP EBP
7C801DF7 C2 0400 RETN 4
2009-4-3 23:45
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
dll入口点为100302B0,
但是从上面的代码retn后到了100302EA
100302B0    A0 34200310     MOV AL,BYTE PTR DS:[10032034]
100302B5    84C0            TEST AL,AL
100302B7    0F84 D9020000   JE 10030596
100302BD    BF 50200310     MOV EDI,10032050                         ; ASCII "KERNEL32.dll"
100302C2    83C9 FF         OR ECX,FFFFFFFF
100302C5    33C0            XOR EAX,EAX
100302C7    68 38200310     PUSH 10032038
100302CC    F2:AE           REPNE SCAS BYTE PTR ES:[EDI]
100302CE    F7D1            NOT ECX
100302D0    49              DEC ECX
100302D1    51              PUSH ECX
100302D2    68 50200310     PUSH 10032050                            ; ASCII "KERNEL32.dll"
100302D7    E8 F40A0000     CALL 10030DD0
100302DC    83C4 0C         ADD ESP,0C
100302DF    68 50200310     PUSH 10032050                            ; ASCII "KERNEL32.dll"
100302E4    FF15 00100310   CALL DWORD PTR DS:[10031000]             ; kernel32.LoadLibraryA
100302EA    8BF0            MOV ESI,EAX                              ; kernel32.7C800000
100302EC    BF 50200310     MOV EDI,10032050                         ; ASCII "KERNEL32.dll"
100302F1    83C9 FF         OR ECX,FFFFFFFF

 
2009-4-3 23:49
0
游客
登录 | 注册 方可回帖
返回