文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术黑客技术RM转换精灵V 7.1主程序脱壳
精品推荐
特别推荐
·简单方法查找黑客老巢
·一次入侵过程的公开分析
·快速利用135端口入侵个人电脑
·基础知识 初级黑客安全技术命令详解
·IPC$入侵的高级手段与方法
·在QQ上与任意陌生人聊天的新绝招
·“黑客”教你如何远程控制计算机
·多种DDoS攻击技术方法
·黑客入侵前的信息收集
·看黑客如何发动对电子邮件系统的攻击
·经典:各个网络端口的入侵方法
·防范黑客 从两大方面阻止域名被劫持
·黑客、红客、蓝客、飞客究竟是什么?
·认清虚虚实实的“ARP攻击”防御方法
·黑客知识 彻底堵死SQL注入工具漏洞
·赛迪网"IT技术百家讲坛"开讲 如何防御黑客?
·黑客如何利用DNS欺骗在局域网中挂马
·Windows黑客编程基础
·黑客很狡猾 如何减轻DDoS攻击危害?
·网络攻击的几种攻击与防御手法大揭秘
热点TOP10
·最详细的黑客入门法则
·“黑客”教你如何远程控制计算机
·我是怎么进入他人计算机的
·黑客技术之知道对方IP入侵别人的电脑
·经典常见计算机密码破解实用手册
·不用任何软件(木马程序)盗取账号密码
·从零开始学黑客:网络黑客新手入门指南
·基础知识 初级黑客安全技术命令详解
·Windows黑客编程基础
·流光5.0使用小窍门
·菜鸟变黑客高手
·Telnet高级入侵攻略及原理
·收费网站破解攻略
·谁能知道微软在你的计算机里隐藏的秘密
·黑客破解电脑密码实用技巧大全!
·迎刃而解——破解密码的常用工具
·经典:各个网络端口的入侵方法
·快速利用135端口入侵个人电脑
·用IE即可轻松远程控制对方电脑
·让对方QQ掉线代码

RM转换精灵V 7.1主程序脱壳

日期:2008年1月7日 作者: 查看:[大字体 中字体 小字体]


【文章标题】: RM转换精灵V 7.1 主程序脱壳

【作 者】: xiaoboy

【邮 箱】: xiao-boy@qq.com

【主 页】: 木有

【软件名称】: RM转换精灵脱壳

【下载地址】: http://www.flyhua.net

【加壳方式】: 未知壳

【保护方式】: IAT加密

【工 具】: flyODBG、PEiD、ImportREC

【操作平台】: XPSP2

【软件介绍】: 可以把rm和rmvb文件转换为AVI、VCD、SVCD、DVD、MPE

【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 小弟弟一次写脱文 有错误之处请多多指教!

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

【详细过程】

1. 找OEP

peid显示:Microsoft Visual C++ 6.0 [Overlay] 不知道什么壳 先用peid 得插件试试找OEP (本人的一向习惯)

居然提示00518460,不知道是真的还是假的

2 二、dump程序

用flyODBG载入 停在下面

0066D000 R> 55 PUSH EBP

0066D001 8BEC MOV EBP, ESP

0066D003 6A FF PUSH -1

0066D005 68 2A2C0A00 PUSH 0A2C2A

0066D00A 68 38900D00 PUSH 0D9038

0066D00F 64:A1 00000000 MOV EAX, DWORD PTR FS:[0]

Ctrl+G 00518460

00518460 . 0000 ADD BYTE PTR DS:[EAX], AL

00518462 ? 0000 ADD BYTE PTR DS:[EAX], AL

00518464 ? 0000 ADD BYTE PTR DS:[EAX], AL

00518466 . 0000 ADD BYTE PTR DS:[EAX], AL

00518468 ? 0000 ADD BYTE PTR DS:[EAX], AL

0051846A ? 0000 ADD BYTE PTR DS:[EAX], AL

 

然后 00518460 处下硬件执行断点,F9运行。停在00518460

00518460 . 55 PUSH EBP

00518461 . 8BEC MOV EBP, ESP

00518463 . 83C4 F0 ADD ESP, -10

00518466 . 53 PUSH EBX

00518467 . B8 C07E5100 MOV EAX, RMtoVCD.00517EC0

0051846C . E8 27E5EEFF CALL RMtoVCD.00406998

00518471 . 8B1D 1CE85100 MOV EBX, DWORD PTR DS:[51E81C] ; RMtoVCD.0051FBF4

00518477 . 8B03 MOV EAX, DWORD PTR DS:[EBX]

00518479 . E8 26F0F5FF CALL RMtoVCD.004774A4

0051847E . A1 A0EA5100 MOV EAX, DWORD PTR DS:[51EAA0]

00518483 . 8B00 MOV EAX, DWORD PTR DS:[EAX]

00518485 . 8B48 6C MOV ECX, DWORD PTR DS:[EAX+6C]

00518488 . B2 01 MOV DL, 1

0051848A . A1 E0685100 MOV EAX, DWORD PTR DS:[5168E0]

以上看来是真的OEP了 是Borland Delphi 6.0 - 7.0编译的。

接着就用flyODBG自带的Ollydump插件 dump 出来保存。

本来这就以为收工的了,可是想用ImportREC 修复IAT 时才发现IAT加密了

以上做的基本无用功。各位不要见笑说我这写些,我只是想把过程写的详细写。

既然加了密,当然就要修复哦,就让我们来跟踪他的IAT表藏那去了。

00518460 . 55 PUSH EBP

00518461 . 8BEC MOV EBP, ESP

00518463 . 83C4 F0 ADD ESP, -10

00518466 . 53 PUSH EBX

00518467 . B8 C07E5100 MOV EAX, RMtoVCD.00517EC0

0051846C . E8 27E5EEFF CALL RMtoVCD.00406998 ///这跟进

00518471 . 8B1D 1CE85100 MOV EBX, DWORD PTR DS:[51E81C] ; RMtoVCD.0051FBF4

00518477 . 8B03 MOV EAX, DWORD PTR DS:[EBX]

00518479 . E8 26F0F5FF CALL RMtoVCD.004774A4

就到了这里:

00406998 /$Content$nbsp; 53 PUSH EBX

00406999 . 8BD8 MOV EBX, EAX

0040699B . 33C0 XOR EAX, EAX

0040699D . A3 C0905100 MOV DWORD PTR DS:[5190C0], EAX

004069A2 . 6A 00 PUSH 0

004069A4 . E8 2BFFFFFF CALL RMtoVCD.004068D4 //一般的Borland Delphi 6.0 - 7.0的程序在这都是 kernel32.GetModuleHandleA这个函数 明显加了密 再跟进去

004069A9 . A3 68F65100 MOV DWORD PTR DS:[51F668], EAX

004069AE . A1 68F65100 MOV EAX, DWORD PTR DS:[51F668]

 

就到了这里:

004068D4 /$Content$nbsp; 90 NOP

004068D5 . E8 DDC6F8FF CALL 00392FB7 //这里有好多 CALL 00392FB7 不知道做什么的。。再跟

004068DA . 8BC0 MOV EAX, EAX //注意记住这个地址。。

004068DC $Content$nbsp; 90 NOP

004068DD . E8 D5C6F8FF CALL 00392FB7

004068E2 . 8BC0 MOV EAX, EAX

004068E4 $Content$nbsp; 90 NOP

004068E5 . E8 CDC6F8FF CALL 00392FB7

004068EA . 8BC0 MOV EAX, EAX

004068EC $Content$nbsp; 90 NOP

004068ED . E8 C5C6F8FF CALL 00392FB7

004068F2 . 8BC0 MOV EAX, EAX

004068F4 $Content$nbsp; 50 PUSH EAX

004068F5 . 6A 40 PUSH 40

就到了这里:

00392FB7 50 PUSH EAX /这时开始处理表的时候了。那我们就F4到这。

00392FB8 8BC4 MOV EAX, ESP

00392FBA 60 PUSHAD

00392FBB 8BD8 MOV EBX, EAX

00392FBD E8 04000000 CALL 00392FC6

00392FC2 52 PUSH EDX

00392FC3 24 39 AND AL, 39

00392FC5 005D 8B ADD BYTE PTR SS:[EBP-75], BL

00392FC8 6D INS DWORD PTR ES:[EDI], DX

00392FC9 008B 7B048BB5 ADD BYTE PTR DS:[EBX+B58B047B], CL

00392FCF 7C 0C JL SHORT 00392FDD

00392FD1 0000 ADD BYTE PTR DS:[EAX], AL

00392FD3 03F5 ADD ESI, EBP

00392FD5 8B06 MOV EAX, DWORD PTR DS:[ESI]

00392FD7 33D2 XOR EDX, EDX

00392FD9 B9 02000000 MOV ECX, 2

00392FDE F7E1 MUL ECX

00392FE0 D1E8 SHR EAX, 1

00392FE2 3BF8 CMP EDI, EAX

00392FE4 75 10 JNZ SHORT 00392FF6

00392FE6 0AD2 OR DL, DL

00392FE8 75 07 JNZ SHORT 00392FF1

00392FEA E9 A6000000 JMP 00393095

00392FEF EB 05 JMP SHORT 00392FF6

00392FF1 E9 AA000000 JMP 003930A0

00392FF6 83C6 08 ADD ESI, 8

00392FF9 66:9C PUSHFW

00392FFB E8 04000000 CALL 00393004

00393000 0010 ADD BYTE PTR DS:[EAX], DL

00393002 40 INC EAX

00393003 0083 C404EB04 ADD BYTE PTR DS:[EBX+4EB04C4], AL

00393009 31C8 XOR EAX, ECX

0039300B 3F AAS

0039300C 00EB ADD BL, CH

0039300E 04 F0 ADD AL, 0F0

00393010 0F4000 CMOVO EAX, DWORD PTR DS:[EAX]

00393013 66:9D POPFW

00393015 70 06 JO SHORT 0039301D

00393017 71 04 JNO SHORT 0039301D

00393019 A8 C8 TEST AL, 0C8

0039301B 3F AAS

0039301C 0072 07 ADD BYTE PTR DS:[EDX+7], DH

0039301F 73 05 JNB SHORT 00393026

00393021 880F MOV BYTE PTR DS:[EDI], CL

00393023 E0 3E LOOPDNE SHORT 00393063

00393025 00EB ADD BL, CH

00393027 AD LODS DWORD PTR DS:[ESI]

00393028 74 08 JE SHORT 00393032

0039302A 75 06 JNZ SHORT 00393032

0039302C 9A 00E03D00 E876 CALL FAR 76E8:003DE000

00393033 07 POP ES

00393034 77 05 JA SHORT 0039303B

00393036 E7 BB OUT 0BB, EAX

00393038 EC IN AL, DX

00393039 3E:0078 07 ADD BYTE PTR DS:[EAX+7], BH

0039303D 79 05 JNS SHORT 00393044

0039303F EA 000F41FF 669C JMP FAR 9C66:FF410F00

00393046 EB 06 JMP SHORT 0039304E

00393048 E8 01AADB3D CALL 3E14DA4E

0039304D 006A 02 ADD BYTE PTR DS:[EDX+2], CH

00393050 EB 06 JMP SHORT 00393058

00393052 E8 A0994700 CALL 0080C9F7

00393057 9A 7311EB05 E80A CALL FAR 0AE8:05EB1173

0039305E 0029 ADD BYTE PTR DS:[ECX], CH

00393060 E9 E80C0000 JMP 00393D4D

00393065 008B FF0F41FE ADD BYTE PTR DS:[EBX+FE410FFF], CL

0039306B ^ 73 F4 JNB SHORT 00393061

0039306D 9A 20143100 83C4 CALL FAR C483:00311420

00393074 04 EB ADD AL, 0EB

00393076 04 D0 ADD AL, 0D0

00393078 39C7 CMP EDI, EAX

0039307A 00FF ADD BH, BH

0039307C 0C 24 OR AL, 24

0039307E 71 04 JNO SHORT 00393084

00393080 BA 88260079 MOV EDX, 79002688

00393085 D27A 01 SAR BYTE PTR DS:[EDX+1], CL

00393088 E7 83 OUT 83, EAX

0039308A C40466 LES EAX, FWORD PTR DS:[ESI]

0039308D 9D POPFD

0039308E EB 05 JMP SHORT 00393095

00393090 B8 EF0F410F MOV EAX, 0F410FEF

00393095 8B46 04 MOV EAX, DWORD PTR DS:[ESI+4]

00393098 8903 MOV DWORD PTR DS:[EBX], EAX

0039309A 61 POPAD

0039309B 58 POP EAX

0039309C 8B00 MOV EAX, DWORD PTR DS:[EAX]

0039309E FFE0 JMP NEAR EAX

003930A0 8B46 04 MOV EAX, DWORD PTR DS:[ESI+4]; RMtoVCD.005212AC

// 注意信息窗口

 

DS:[0039337B]=005212AC (RMtoVCD.005212AC)

EAX=004068DA (RMtoVCD.004068DA)

在数据窗口跟踪0039337B 得到如下一个很有规律的对应表:

00393377 804068DA //这个就是在上面让大家记住的地址。。

0039337B 005212AC RMtoVCD.005212AC//这个待会看完下面就知道了。。

0039337F 80406BCA

00393383 005212B4 RMtoVCD.005212B4

00393387 80406BC2

0039338B 005212B8 RMtoVCD.005212B8

0039338F 80406BBA

00393393 005212BC RMtoVCD.005212BC

00393397 80406BB2

0039339B 005212C0 RMtoVCD.005212C0

0039339F 80406BAA

003933A3 005212C4 RMtoVCD.005212C4

003933A7 80406BA2

003933AB 005212C8 RMtoVCD.005212C8

接着F7...

003930A3 8903 MOV DWORD PTR DS:[EBX], EAX

003930A5 61 POPAD

003930A6 58 POP EAX

003930A7 83C4 04 ADD ESP, 4

003930AA 8B00 MOV EAX, DWORD PTR DS:[EAX] ; kernel32.GetModuleHandleA

到这里,信息窗口里终于出现函数了 。。。

DS:[005212AC]=7C80B529 (kernel32.GetModuleHandleA)

EAX=005212AC (RMtoVCD.005212AC)

在数据窗口跟踪005212AC 得到一个很完整的IAT表。。如下

005212AC 7C80B529 kernel32.GetModuleHandleA // 这个就是上面对照表的另一个地址数据。。

005212B0 00000000

005212B4 77DA7883 ADVAPI32.RegQueryValueExA

005212B8 77DA761B ADVAPI32.RegOpenKeyExA

005212BC 77DA6BF0 ADVAPI32.RegCloseKey

005212C0 77DA7753 ADVAPI32.OpenProcessToken

005212C4 77DCD11B ADVAPI32.LookupPrivilegeValueA

005212C8 77DCC534 ADVAPI32.AdjustTokenPrivileges

005212CC 00000000

005212D0 7C80C729 kernel32.lstrcpyA

005212D4 7C81EE79 kernel32.lstrcmpA

005212D8 7C822BB7 kernel32.WritePrivateProfileStringA

。。。。。。。。。。。。。。。。。。。。。。。。。。。。//其中一部分

003930AC FFE0 JMP NEAR EAX // 跳到函数去了。

三层交换技术 交换机与路由器密码恢复 交换机的选购
路由器设置专题 路由故障处理手册 数字化校园网解决方案

 

下面我们来分析下这个对照表的关系:

004068D4 /$Content$nbsp; 90 NOP

004068D5 . E8 DDC6F8FF CALL 00392FB7 //这里有好多 CALL 00392FB7 不知道做什么的。。再跟

004068DA . 8BC0 MOV EAX, EAX //注意记住这个地址。。

004068DC $Content$nbsp; 90 NOP

00393377 804068DA //这个就是在上面让大家记住的地址。。

0039337B 005212AC RMtoVCD.005212AC//这个待会看完下面就知道了。。

005212AC 7C80B529 kernel32.GetModuleHandleA // 这个就是上面对照表的另一个地址数据。。

005212B0 00000000

这下子清晰了吧, 这个表就是根据call 392FB7 地址来得到对应的函数的对照表。

既然这样就写代码修复吧,重新打开flyODBG载入程序 下断00518460, F9运行就停在OEP了。

然后找个空白段写入以下代码:

90 NOP //然后在这新建EIP

00394237 60 PUSHAD

00394238 9C PUSHFD

00394239 BB A7313900 MOV EBX, 3931A7 //对照表开始位置

0039423E 8B03 MOV EAX, DWORD PTR DS:[EBX]

00394240 2D 00000080 SUB EAX, 80000000

00394245 66:C740 FB FF25 MOV WORD PTR DS:[EAX-5], 25FF

0039424B 8B4B 04 MOV ECX, DWORD PTR DS:[EBX+4]

0039424E 8948 FD MOV DWORD PTR DS:[EAX-3], ECX

00394251 83C3 08 ADD EBX, 8

00394254 81FB 17413900 CMP EBX, 394117

0039425A 7D 0A JGE SHORT 00394266 //对照表结束位置

0039425C ^ EB E0 JMP SHORT 0039423E

0039425E 0000 ADD BYTE PTR DS:[EAX], AL

00394260 0000 ADD BYTE PTR DS:[EAX], AL

00394262 0000 ADD BYTE PTR DS:[EAX], AL

00394264 0000 ADD BYTE PTR DS:[EAX], AL

00394266 9D POPFD

00394267 61 POPAD //结束

现在回到OEP 在新建EIP后用flyODBG自带的Ollydump插件 dump 出来保存。

打开 ImportREC 选择程序 OPE:00118460 ,然后自动查找IAT,获取输入表。

这会得到一个完好的表了。

修复之后运行正常。。。

  

小弟第一次写脱文有什么不到之处请多多包函。

(出处:清风网络学院






上一篇:安全防范六步曲

下一篇:遁地于无形,隐藏系统账户技术揭秘

RM转换精灵V 7.1主程序脱壳 相关文章:
·IE浏览器再现严重安全漏洞 微软紧急发补丁程序
·MPEG、RM、WMV电影文件格式转换指南
·3GP手机视频转换工具WinAVI
·不用任何软件(木马程序)盗取账号密码
·MKV转换成RMVB
·Dreamweaver MX 2004做ASP程序(4)用户注册系统
·破解程序及注册机使用方法
·如何将DVD影片转换为DVDrip格式?
·APE变成高品质MP3音乐 转换工具介绍
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
RM转换精灵V 7.1主程序脱壳 相关软件:
·RM转换精灵V6.3
·MP4/RM转换专家V9.7 Build 4660 白金版
·比特精灵(BitSpirit)V3.3.1.232R 正式版
·魔幻精灵 2
·C语言程序设计
·3GP转换器 V2.5
·灵豚课件制作工具——课件精灵v1.0 beta
·Windows环境下32位汇编语言程序设计
·按键精灵Quick MacroV6.31.16027
·还原精灵v6.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn