首页
社区
课程
招聘
明显已经成功脱壳了,为什么还是“乱码”?
发表于: 2009-11-30 21:04 4923

明显已经成功脱壳了,为什么还是“乱码”?

2009-11-30 21:04
4923
网通客户端Dr.comV3.72在登陆后总是弹出个网页,还用IE打开的,我用的是遨游浏览器,每次看见IE跳出来还问是否设为默认浏览器就很烦,所以想jmp掉调用IE的代码...
用PEID一查,是   UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
UPX壳,我就手工脱了,用PEID再查 Microsoft Visual C++ 6.0  正常了,就用OD载入找ShellExecuteA
--------------------------------------------------------------------------------------------------
地址        区段        类型                名称
0041D460 CODE         输入(已知)                 shell32.ShellExecuteA
--------------------------------------------------------------------------------------------------
可是转到0x0041D460去的时候却是
---------------------------------------------------------------------------------
0041D455    90              nop
0041D456    EB 76           jmp     short 0041D4CE
0041D458 >  FB              sti
0041D459    68 EB760000     push    76EB
0041D45E    0000            add     byte ptr [eax], al
0041D460 >  F0:0E           lock push cs                             ; 不允许锁定前缀
0041D462    61              popad
0041D463  ^ 7D B1           jge     short 0041D416
0041D465    0C 5F           or      al, 5F
0041D467    7D 00           jge     short 0041D469
0041D469    0000            add     byte ptr [eax], al
0041D46B    0050 13         add     byte ptr [eax+13], dl
0041D46E    24 72           and     al, 72
0041D470    0000            add     byte ptr [eax], al
0041D472    0000            add     byte ptr [eax], al
0041D474 >  EE              out     dx, al
0041D475    50              push    eax
0041D476    D6              salc
0041D477  ^ 77 EE           ja      short 0041D467
0041D479    EF              out     dx, eax
0041D47A    D4 77           aam     77
----------------------------------------------------------------------------------------------
0041D460 >  F0:0E           lock push cs                             ; 不允许锁定前缀
怎么这样子了?请各位指教!
我该去哪里找调用ShellExecuteA的代码?

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

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你这应该是在系统领空里,按alt+f9反回看看,或者把整个OD截图上来看看
2009-11-30 21:25
0
雪    币: 501
活跃值: (102)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3

如上图  双击ShellExecuteA 不能跟踪到参考 双击没反应!
而在0x0041D460处如下图所示

程序能正常运行。。。谁能告诉我这是为什么?
2009-11-30 22:20
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
直接下断bp ShellExecuteA
2009-11-30 22:40
0
雪    币: 501
活跃值: (102)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
找引用点我解决了...
直接搜索 FF 15 60 D4 41 00      也就是call dword ptr [0041D460]  的机器码
我就是不清楚为什么在OD里面会显示“乱码”……
2009-11-30 22:48
0
雪    币: 2513
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
因为他本身是DWORD,不是code,你硬要用code方式显示当然是乱码
2009-12-1 00:31
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
6楼说的不错,真相就是这样简单。。。。。
2009-12-1 10:05
0
雪    币: 83
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
比较牛牛的说
2009-12-1 14:47
0
雪    币: 501
活跃值: (102)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9


谢谢!
0x0041D460  不正在IAT里面么?
2009-12-1 16:26
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
     大哥 说明白点吧  菜鸟不懂
谢谢哈
2009-12-1 16:59
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
回10楼。在这个文件里,call dword ptr [0041D460] 等价于call 7D610EF0.
地址0041D460存放的就是4字节数据7D610EF0。所以0041D460处是数据,7D610EF0是代码。
2009-12-1 17:15
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
啊,原来如此啊  那个地方就是放的函数的地址4个字节 是在数据段不是代码段
所以显示乱码 呵呵,谢谢你啊  怀特
2009-12-2 13:16
0
游客
登录 | 注册 方可回帖
返回
//