首页
社区
课程
招聘
用Ollydbg手脱UPX加壳的DLL
发表于: 2004-5-30 21:59 28115

用Ollydbg手脱UPX加壳的DLL

fly 活跃值
85
2004-5-30 21:59
28115
收藏
免费 10
支持
分享
最新回复 (67)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
谢谢斑竹 有个问题不明白 希望解答 很菜的问题
1.那个dll脱壳了,怎么确定是不是脱壳正确?
2.下面这个地方
代码:--------------------------------------------------------------------------------
003B825E     8A07                mov al,byte ptr ds:[edi]
//EDI=003B7318-当前基址003B0000=00007318  ★ 这就是重定位表的RVA
003B8260     47                  inc edi
003B8261     09C0                or eax,eax
003B8263     74 22               je short EdrLib.003B8287
//重定位数据处理完毕则跳转
003B8265     3C EF               cmp al,0EF
003B8267     77 11               ja short EdrLib.003B827A
003B8269     01C3                add ebx,eax
003B826B     8B03                mov eax,dword ptr ds:[ebx]
003B826D     86C4                xchg ah,al//找到这里
003B826F     C1C0 10             rol eax,10
003B8272     86C4                xchg ah,al
003B8274     01F0                add eax,esi
003B8276     8903                mov dword ptr ds:[ebx],eax
003B8278     EB E2               jmp short EdrLib.003B825C
003B827A     24 0F               and al,0F
003B827C     C1E0 10             shl eax,10
003B827F     66:8B07             mov ax,word ptr ds:[edi]
003B8282     83C7 02             add edi,2
003B8285     EB E2               jmp short EdrLib.003B8269
--------------------------------------------------------------------------------

            
在003B8287处下断,F9运行,断下,重定位数据处理完毕
当我们在003B8287处中断下来时,EDI=003B74EA,就是重定位表结束的地址
003B825E     8A07                mov al,byte ptr ds:[edi]
//EDI=003B7318-当前基址003B0000=00007318  ★ 这就是重定位表
edi=003B7318 为什么后面要减去 0030B0000  
当我们在003B8287处中断下来时,EDI=003B74EA  这个地方的EDI是怎么算出来的? 希望解答一下 谢谢
2004-10-29 19:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
27
EDI值看寄存器
减去的是基址

更正一下:不是DLL原来的重定位表,是UPX加密后的重定位表
2004-10-29 19:40
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
感谢斑竹回答    是不是基址 就是 00+地址第三位 第四位 后面用0000补齐?
假如1048825E    那基址  就应该是  00480000 这是基址 对吗?因刚接触   请各位高手指点 不要气的撞墙就好~ 谢谢!
2004-10-29 20:40
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
29
《加密与解密》
2004-10-29 21:11
0
雪    币: 244
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
版主帮我看看这个,脱出后用工具重定位遇00就结束,造成重定位表不全。
不知我分析的对不对。附件:IEPro.rar
2004-10-30 22:52
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
能否给个 用这个EdrLib.dll文件 的 exe ?

确定我操作是不是脱壳正确.

谢谢!

:)

我努力学习.
2004-11-26 09:56
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
32
修正了下载链接
去第2楼下载附件
2004-11-26 10:16
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
Dll-UPX.rar_345.rar
HTTP 404 - 无法找到文件

请检查一下.

谢谢!

:)

我努力学习.
2004-11-26 12:43
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
34
检查过了,IE里面点击或者快车都可以下载的
2004-11-26 13:30
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
下载好了.
谢谢 fly!

:D

我努力学习.
2004-11-26 14:28
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36

我觉得
开始地址=003B4000
结束地址=003B40C7 才对嘛 为什么是003B40C9

fly 您说说看.
2004-12-21 18:29
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
37
大小=C8
呵呵,应该是003B40C8
笔误了
2004-12-21 19:31
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38

--------------------------------------------------------------------

用LordPE修正dumped_.dll的重定位表RVA=00006000、大小=000003B0,保存之。            
再用LordPE修正dumped_.dll的基址为003B0000,OK,脱壳完成啦。
----------------------------------------------------------------------
我用的是e文版的,有一下问题问大哥
1.ImageBase是不是基址啊
2.我调试的时候基址是003D0000 修改PE的时候是不是也写003D0000
3.我的fly.bin和您提供字节大小的有点出入,但生成的pediy.bin是一摸一样的.这是怎么回事
4.UPXAngela.exe是不是可以用来处理所有UPX壳 嘻嘻.
2004-12-21 19:44
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
忘了最重要的问题了,上面图里的  我要改哪几个啊
2004-12-21 19:45
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
40
UPXAngela不能处理太大的重定位表
书里有说明

LordPE点Directories
看《加密与解密》,里面有工具的使用说明
2004-12-21 20:27
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41

我解的   44.0k

系统自带的UnPacked-EdrLib.dll  27.9k

用Edrtest.exe测试都正常,为什么方法一样,工具一样,解出来的大小不一样呢?

而且偏移地址怎么不一样,会不会影响dll运行,我是说如果dll复杂的话?
2004-12-21 21:11
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
42
用LordPE或者FileScanner优化一下就小点了
能正常运行就行了
2004-12-21 21:22
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
谢谢大哥 回帖像用msn那样迅速.
我QQ:1101555
能成为您的朋友吗?

还有问题要请教呢. 就是解完DLL后的破解  如果是组件 只在asp中调用的 怎么调试 破解啊
2004-12-21 21:29
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
44
抱歉,QQ人太多,还不如论坛交流
破解流程应该都是相似的,分析、调试
2004-12-21 21:34
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
asp中调用的 怎么调试 破解啊   能不能给点思路
2004-12-21 21:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
46
刚才以为是aspr壳的程序
网页?抱歉,没做过
2004-12-21 21:38
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
是网页,用vb或vc写组件
现在很多程序,尤其是网站方面的运用,其核心都是做成dll,然后在asp里调用,给用户的修改,扩展带来很大障碍.
2004-12-21 21:42
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
其实,大家在书写asp程序时,最担心的可能就是数据库的连接信息,会被一些人看到,进行一些破坏。下面我们用vb6.0来做一个动态链接库(.dll)来隐藏数据库的连接信息。
  启动vb6.0,新建-->Active  dll工程。单击"工程"-->引用,选择"microsoft  active  server  pages  object  library"
和"microsoft  activeX  data  objects  2.1  library"两项。将类模块的名称改为dcss.将工程的名称改为yygwy.保存工程文件yygwy.vbp和类文件dcss.cls。
在dcss.cls中写入:
Private  myscriptingcontext  As  ScriptingContext
Private  myapplication  As  Application
Private  myrequest  As  Request
Private  myresponse  As  Response
Private  myserver  As  Server
Private  mysession  As  Session
Public  Sub  onstartpage(passedscriptingcontext  As  ScriptingContext)
Set  myscriptingcontext  =  passedscriptingcontext
Set  myapplication  =  myscriptingcontext.Application
Set  myrequest  =  myscriptingcontext.Request
Set  myresponse  =  myscriptingcontext.Response
Set  myserver  =  myscriptingcontext.Server
Set  mysession  =  myscriptingcontext.Session
End  Sub

Public  Sub  onendpage()
Set  myscriptingcontext  =  Nothing
Set  myapplication  =  Nothing
Set  myrequest  =  Nothing
Set  myresponse  =  Nothing
Set  myserver  =  Nothing
Set  mysession  =  Nothing
End  Sub

'以上语句是必须的。
'定义两个公有函数

Public  Function  rsresult(strsql  As  String)  As  Recordset
Dim  mycnn  As  Connection
Dim  myset  As  Recordset
Dim  strconnstring  As  String
'strconnstring  =  "provider=sqloledb.1;
password=;"  &  "user  id=sa;"  &  "initial  catalog=vlog;"  &  "data  source=hpe60;
connect  timeout=15"
strconnstring  =  "driver={sql  server};server=yang;uid=sa;pwd=;   
database=dcss"
'mycnn.ConnectionString  =  strconnstring
mycnn.Open  strconnstring
myset.ActiveConnection  =  mycnn
myset.Open  strsql,  mycnn,  3,  adCmdText
Set  rsresult  =  myset
End  Function

Public  Function  datasource()  As  Variant
datasource  =  "driver={sql  server};server=yang;uid=sa;pwd=;  database=dcss"
End  Function

编译生成dcss.dll文件。注册regsvr32  路径\dcss.dll。
用visual  interdev打开global.asa文件.当然了,你也可以在其它文件中使用。
set    dcss=server.CreateObject("yygwy.dcss")   
oconn=dcss.datasource()           
application("strconn")=oconn   

在其它的页面中如下调用即可:
set  objConn  =  Server.CreateObject("ADODB.Connection")
objConn.Open  application("strconn")
2004-12-21 21:48
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
如果 组件里还含有注册信息,该怎么做啊.
2004-12-21 22:05
0
雪    币: 2003
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
看了还是不怎么会 fly能不能帮忙看看?
dll位置是
ftp://202.107.210.76/test.rar

做到寻找rva的时候找不出来.实在无奈啊,太不才了
2005-3-6 19:12
0
游客
登录 | 注册 方可回帖
返回
//