用Ollydbg手脱UPX加壳的jxjl外挂的jxdata.dll
2012-03-14 11:08
363 查看
原文 http://dev.xdowns.com/archive/readme/others/5080.html
【文章作者】: wenxinoooo
【下载地址】: http://www.xdowns.com/tag/Ollydbg.html
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、得到重定位表RVA和OEP
代码:--------------------------------------------------------------------------------
00A758A0 > 807C24 08 01 CMP BYTE PTR SS:[ESP+8],1----------进入OD后停在这
00A758A5 0F85 9A010000 JNZ jxdata.00A75A45
00A758AB 60 PUSHAD
不用跟踪,Ctrl+S 在当前位置下搜索命令序列:
代码:--------------------------------------------------------------------------------
xchg ah,al
rol eax,10
xchg ah,al
add eax,esi
找到在00A75A1B处,在其上mov al,byte ptr ds:[edi]处下断,F9运行,断下
代码:--------------------------------------------------------------------------------
00A75A1B 8A07 MOV AL,BYTE PTR DS:[EDI]---------EDI=00A69AD9-当前基址00870000=001F9AD9 ★ 这就是重定位表的RVA
00A75A1D 47 INC EDI
00A75A1E 09C0 OR EAX,EAX
00A75A20 74 22 JE SHORT jxdata.00A75A44
00A75A22 3C EF CMP AL,0EF
00A75A24 77 11 JA SHORT jxdata.00A75A37
00A75A26 01C3 ADD EBX,EAX
00A75A28 8B03 MOV EAX,DWORD PTR DS:[EBX]
00A75A2A 86C4 XCHG AH,AL----------------------找到这里
00A75A2C C1C0 10 ROL EAX,10
00A75A2F 86C4 XCHG AH,AL
00A75A31 01F0 ADD EAX,ESI
00A75A33 8903 MOV DWORD PTR DS:[EBX],EAX
00A75A35 ^ EB E2 JMP SHORT jxdata.00A75A19
00A75A37 24 0F AND AL,0F
00A75A39 C1E0 10 SHL EAX,10
00A75A3C 66:8B07 MOV AX,WORD PTR DS:[EDI]
00A75A3F 83C7 02 ADD EDI,2
00A75A42 ^ EB E2 JMP SHORT jxdata.00A75A26
00A75A44 61 POPAD
00A75A45 - E9 B6B5DFFF JMP jxdata.00871000--------------//飞向光明之点巅
--------------------------------------------------------------------------------------------
在00A75A44处下断,F9运行,断下,重定位数据处理完毕
当我们在00A75A44处中断下来时,EDI=00A740B0-当前基址00870000=002040B0,就是重定位表结束的地址
--------------------------------------------------------------------------------------------
00871000 /EB 10 JMP SHORT jxdata.00871012--------OEP
00871002 |66:623A BOUND DI,DWORD PTR DS:[EDX]
00871005 |43 INC EBX
00871006 |2B2B SUB EBP,DWORD PTR DS:[EBX]
00871008 |48 DEC EAX
00871009 |4F DEC EDI
0087100A |4F DEC EDI
0087100B |4B DEC EBX
0087100C |90 NOP
0087100D -|E9 E0D59C00 JMP 0123E5F2
00871012 \A1 67D59C00 MOV EAX,DWORD PTR DS:[9CD567]
00871017 C1E0 02 SHL EAX,2
0087101A A3 6BD59C00 MOV DWORD PTR DS:[9CD56B],EAX
0087101F 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
00871023 A3 D9D59C00 MOV DWORD PTR DS:[9CD5D9],EAX
00871028 FF1485 C9D59C00 CALL DWORD PTR DS:[EAX*4+9CD5C9]
---------------------------------------------------------------------------
用LordPE选中Ollydbg的loaddll.exe的进程,在下面的列表里选择jxdata.dll,然后完整脱壳,得到dumped.dll
二、输入表
找到API调用,
如:00871041 E8 74AA1500 CALL dumped00.009CBABA ; JMP 到 kernel32.GetVersion
跟随,来到
009CBABA - FF25 6814A100 JMP DWORD PTR DS:[A11468] ; kernel32.GetVersion
数据窗口中跟随内存,如下:
上下看到许多函数地址,很明显的可以找到IAT开始和结束的地址:
00A11360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00A11370 00 00 00 00 47 9B 80 7C 77 D0 80 7C EE 86 82 7C ....G泙|w衻|顔倈
00A11380 AC 17 82 7C AD 08 83 7C 24 1A 80 7C 5C 94 80 7C ?倈?億$€|\攢|
00A11390 37 06 81 7C 8A 18 93 7C AB 1E 83 7C 05 10 92 7C 7亅?搢?億抾
00A113A0 11 82 83 7C DA CD 81 7C 58 C0 80 7C 5D 06 83 7C 們|谕亅X纮|]億
00A113B0 66 E8 80 7C D7 ED 80 7C D9 37 81 7C B1 4E 83 7C f鑰|醉€|?亅盢億
00A113C0 89 BE 80 7C A0 F7 82 7C 77 DF 81 7C DE AB 80 7C 壘€|狑倈w邅|瞢€|
00A113D0 C2 60 82 7C 15 99 80 7C 76 2E 81 7C 1D 2F 81 7C 耟倈檧|v.亅/亅
00A113E0 FE 4F 83 7C F5 DD 80 7C 20 99 80 7C 28 97 80 7C 﨩億踺€| 檧|(梹|
00A113F0 EE 61 83 7C ED 02 83 7C E3 14 82 7C 5B CF 81 7C 頰億?億?倈[蟻|
00A11400 F2 4A 81 7C 17 AE 81 7C 35 14 82 7C 3C 15 81 7C 騄亅畞|5倈<亅
00A11410 77 0A 81 7C 51 0E 81 7C FC 38 81 7C 31 03 93 7C w.亅Q亅?亅1搢
00A11420 D4 A7 80 7C 62 D2 80 7C CF B4 80 7C A1 B6 80 7C 鸳€|b襽|洗€|《€|
00A11430 A7 27 81 7C 56 2B 83 7C A0 AD 80 7C C1 AB 80 7C ?亅V+億牠€|莲€|
00A11440 EE 1E 80 7C 39 2F 81 7C 0C 8A 83 7C 90 A4 80 7C ?€|9/亅.妰|悿€|
00A11450 3D BF 80 7C B2 27 81 7C 56 2D 81 7C 15 A4 80 7C =縺|?亅V-亅|
00A11460 9C 92 80 7C 10 9F 80 7C DA 11 81 7C DE 2A 81 7C 湌€|焵|?亅?亅
00A11470 A9 60 83 7C 2D FD 80 7C BB 0B 83 7C 2F FC 80 7C ー億-齹|?億/鼆|
00A11480 B9 4C 83 7C 19 FF 80 7C B9 23 81 7C 82 FE 80 7C 筁億(出处:http://dev.xdowns.com/)
Tags:UPX
Ollydbg
【文章作者】: wenxinoooo
【下载地址】: http://www.xdowns.com/tag/Ollydbg.html
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、得到重定位表RVA和OEP
代码:--------------------------------------------------------------------------------
00A758A0 > 807C24 08 01 CMP BYTE PTR SS:[ESP+8],1----------进入OD后停在这
00A758A5 0F85 9A010000 JNZ jxdata.00A75A45
00A758AB 60 PUSHAD
不用跟踪,Ctrl+S 在当前位置下搜索命令序列:
代码:--------------------------------------------------------------------------------
xchg ah,al
rol eax,10
xchg ah,al
add eax,esi
找到在00A75A1B处,在其上mov al,byte ptr ds:[edi]处下断,F9运行,断下
代码:--------------------------------------------------------------------------------
00A75A1B 8A07 MOV AL,BYTE PTR DS:[EDI]---------EDI=00A69AD9-当前基址00870000=001F9AD9 ★ 这就是重定位表的RVA
00A75A1D 47 INC EDI
00A75A1E 09C0 OR EAX,EAX
00A75A20 74 22 JE SHORT jxdata.00A75A44
00A75A22 3C EF CMP AL,0EF
00A75A24 77 11 JA SHORT jxdata.00A75A37
00A75A26 01C3 ADD EBX,EAX
00A75A28 8B03 MOV EAX,DWORD PTR DS:[EBX]
00A75A2A 86C4 XCHG AH,AL----------------------找到这里
00A75A2C C1C0 10 ROL EAX,10
00A75A2F 86C4 XCHG AH,AL
00A75A31 01F0 ADD EAX,ESI
00A75A33 8903 MOV DWORD PTR DS:[EBX],EAX
00A75A35 ^ EB E2 JMP SHORT jxdata.00A75A19
00A75A37 24 0F AND AL,0F
00A75A39 C1E0 10 SHL EAX,10
00A75A3C 66:8B07 MOV AX,WORD PTR DS:[EDI]
00A75A3F 83C7 02 ADD EDI,2
00A75A42 ^ EB E2 JMP SHORT jxdata.00A75A26
00A75A44 61 POPAD
00A75A45 - E9 B6B5DFFF JMP jxdata.00871000--------------//飞向光明之点巅
--------------------------------------------------------------------------------------------
在00A75A44处下断,F9运行,断下,重定位数据处理完毕
当我们在00A75A44处中断下来时,EDI=00A740B0-当前基址00870000=002040B0,就是重定位表结束的地址
--------------------------------------------------------------------------------------------
00871000 /EB 10 JMP SHORT jxdata.00871012--------OEP
00871002 |66:623A BOUND DI,DWORD PTR DS:[EDX]
00871005 |43 INC EBX
00871006 |2B2B SUB EBP,DWORD PTR DS:[EBX]
00871008 |48 DEC EAX
00871009 |4F DEC EDI
0087100A |4F DEC EDI
0087100B |4B DEC EBX
0087100C |90 NOP
0087100D -|E9 E0D59C00 JMP 0123E5F2
00871012 \A1 67D59C00 MOV EAX,DWORD PTR DS:[9CD567]
00871017 C1E0 02 SHL EAX,2
0087101A A3 6BD59C00 MOV DWORD PTR DS:[9CD56B],EAX
0087101F 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
00871023 A3 D9D59C00 MOV DWORD PTR DS:[9CD5D9],EAX
00871028 FF1485 C9D59C00 CALL DWORD PTR DS:[EAX*4+9CD5C9]
---------------------------------------------------------------------------
用LordPE选中Ollydbg的loaddll.exe的进程,在下面的列表里选择jxdata.dll,然后完整脱壳,得到dumped.dll
二、输入表
找到API调用,
如:00871041 E8 74AA1500 CALL dumped00.009CBABA ; JMP 到 kernel32.GetVersion
跟随,来到
009CBABA - FF25 6814A100 JMP DWORD PTR DS:[A11468] ; kernel32.GetVersion
数据窗口中跟随内存,如下:
上下看到许多函数地址,很明显的可以找到IAT开始和结束的地址:
00A11360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00A11370 00 00 00 00 47 9B 80 7C 77 D0 80 7C EE 86 82 7C ....G泙|w衻|顔倈
00A11380 AC 17 82 7C AD 08 83 7C 24 1A 80 7C 5C 94 80 7C ?倈?億$€|\攢|
00A11390 37 06 81 7C 8A 18 93 7C AB 1E 83 7C 05 10 92 7C 7亅?搢?億抾
00A113A0 11 82 83 7C DA CD 81 7C 58 C0 80 7C 5D 06 83 7C 們|谕亅X纮|]億
00A113B0 66 E8 80 7C D7 ED 80 7C D9 37 81 7C B1 4E 83 7C f鑰|醉€|?亅盢億
00A113C0 89 BE 80 7C A0 F7 82 7C 77 DF 81 7C DE AB 80 7C 壘€|狑倈w邅|瞢€|
00A113D0 C2 60 82 7C 15 99 80 7C 76 2E 81 7C 1D 2F 81 7C 耟倈檧|v.亅/亅
00A113E0 FE 4F 83 7C F5 DD 80 7C 20 99 80 7C 28 97 80 7C 﨩億踺€| 檧|(梹|
00A113F0 EE 61 83 7C ED 02 83 7C E3 14 82 7C 5B CF 81 7C 頰億?億?倈[蟻|
00A11400 F2 4A 81 7C 17 AE 81 7C 35 14 82 7C 3C 15 81 7C 騄亅畞|5倈<亅
00A11410 77 0A 81 7C 51 0E 81 7C FC 38 81 7C 31 03 93 7C w.亅Q亅?亅1搢
00A11420 D4 A7 80 7C 62 D2 80 7C CF B4 80 7C A1 B6 80 7C 鸳€|b襽|洗€|《€|
00A11430 A7 27 81 7C 56 2B 83 7C A0 AD 80 7C C1 AB 80 7C ?亅V+億牠€|莲€|
00A11440 EE 1E 80 7C 39 2F 81 7C 0C 8A 83 7C 90 A4 80 7C ?€|9/亅.妰|悿€|
00A11450 3D BF 80 7C B2 27 81 7C 56 2D 81 7C 15 A4 80 7C =縺|?亅V-亅|
00A11460 9C 92 80 7C 10 9F 80 7C DA 11 81 7C DE 2A 81 7C 湌€|焵|?亅?亅
00A11470 A9 60 83 7C 2D FD 80 7C BB 0B 83 7C 2F FC 80 7C ー億-齹|?億/鼆|
00A11480 B9 4C 83 7C 19 FF 80 7C B9 23 81 7C 82 FE 80 7C 筁億(出处:http://dev.xdowns.com/)
Tags:UPX
Ollydbg
相关文章推荐
- Ollydbg手脱UPX加壳的DLL
- 用ollydbg手脱UPX加壳的DLL
- 用ollydbg手脱ArmadilloV3.60加壳的DLL
- 用Ollydbg手脱PECompact加壳的DLL
- [解决]System.DllNotFoundException: 无法加载 DLL“SQLite.Interop.DLL” -- 绿化System.Data.SQLite.dll
- Finding Initialized or Uninitialised static data in a DLL
- 未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。
- c#操作MySql.Data.DLL 分类: .NET 2013-03-08 15:49 4177人阅读 评论(2) 收藏
- 数据操作类 Socut.Data.dll for .NET 2.0 v3.1
- DataContractJsonSerializer是在System.ServiceModel.Web.dll中,但命名空间却是System.Runtime.Serialization.Json。
- dll加壳
- microsoft.sql.chainer.packagerdata.dll 0x84B10001解决方案
- #pragma data_seg在DLL中共享数据的应用
- .NET DLL 保护措施详解(非混淆加密加壳)
- 站点发布到 IIS 后,System.Data.SqlLite.dll 末找到
- asp.net 搭配 mysql 运行 的时候 @ 和 ? 的问题,Connector Net 最新版本,1.0版本和6.5.4版本的区别,为什么发布的时候没有包含MySql.Data.dll?
- C#中将dll汇入exe,并加壳(转载)
- System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。
- 外挂或病毒注入DLL到宿主进程,然后远程启动线程方式
- Socut.Data.dll 与AspNetPager.dll