首页
社区
课程
招聘
关于 ASProtect 壳问题
发表于: 2004-5-10 21:47 5587

关于 ASProtect 壳问题

2004-5-10 21:47
5587
关于 ASProtect 壳问题

WindowsXp, OllDbg 调试

用 ASProtect 加壳的程序的输入表只有象 GetModuleHandleA() GetProcAddress()
几个函数 ,并且当外壳调用这些函数是也不是直接通过输入表调用的

最开始: 00401000   68 01901D08    PUSH main.081D9001
       00401005   E8 01000000    CALL main.0040100B
       0040100A   C3             RETN
           0040100B   C3             RETN
RETN 之后到:
       081D9001   60               PUSHAD
       081D9002   E8 03000000      CALL main.081D900A
           081D9007  -E9 EB045D45      JMP 4D7A94F7
           081D900C   55               PUSH EBP
           081D900D   C3               RETN
           ...
           ...
开始单步跟踪 一直在 08xxxxxx 的地址转圈
然后出现了异常 本来这里不会出现异常---如果不单步跟踪的话  ;晕了

如果开始不跟踪 直接  bp GetProcAddress
第一次断下来已经到了这里 :
0C75C088   53               PUSH EBX      ; EBX 0C75C7A9 ASCII "VirtualAlloc"
0C75C089   50               PUSH EAX
0C75C08A   FF95 E8314400    CALL DWORD PTR SS:[EBP+4431E8]      ; kernel32.GetProcAddress
0C75C090   8985 79294400    MOV  DWORD PTR SS:[EBP+442979],EAX  ; kernel32.VirtualAlloc

这时
SS:[EBP+4431E8] = 0c3196bc + 004431e8 = 0c75c8a4

大概经过 99 次这样的 调用 GetProcAddress() , 外壳把需要的 API 函数的地址都搞定了。
之后进入 26 次 SEH

问题:
        本来外壳是在 08xxxxxx 的地址中运行的 什么时候跳到 0Cxxxxxxx 的地址里去了?
        刚开始时 0Cxxxxxx 的地址里是没有代码的,什么时候通过什么方法把代码搬过去的?
        我想 挂钩外壳的 GetProcAddress()函数 (改输入表好象不行) 怎么挂?

请哥哥们 帮忙!       

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 6
支持
分享
最新回复 (1)
雪    币: 215
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
动态解码smc技术
2004-5-12 19:53
0
游客
登录 | 注册 方可回帖
返回
//