脱文标题】 易语言LikeOne新视听网络电影电视UPX-Scrambler RC1.x反脱壳分析+伪破解 【破文作者】 weiyi75[Dfcg][D.4S] 【作者邮箱】 weiyi75@sohu.com 【作者主页】 Dfcg官方大本营、龙族联盟论坛 【使用工具】 Peid,Anti-UPX scramble.exe,UpxShell,olldbg,winhex 【破解平台】 WinNT/2000/XP 【软件名称】 LikeOne新视听网络电影电视 【下载页面】 点击下载 【软件大小】 1169 KB 【软件限制】 UPX-Scrambler RC1.x -> ㎡nT畂L [Overlay]防脱壳,启动NAG+功能限制。 【软件简介】 最值得信赖的网络电影电视软件。500多个国内外电视电影台,40多个精彩视频节目,100多部最新电影。超强音量控制。<新视听网络电影电视>是一款功能强大的网络电影电视播放软件。一个网络视频、音频的巨大仓库,软件中内置了多达数百个国内外精彩电视频道、数十个国内外精彩电台的广播,以及数百部最新精彩电影。
主要特点:
★在线实时收看数百个国内外精彩电影、电视频道的节目 ★ 在线实时收听数十个国内外精彩电台广播; ★ 大量且不断更新的最新精彩电影; ★ 赏心悦目的数十个时尚写真精彩视频; ★ 简便的操作,您只需单击按钮便可进行观看、收听节目。 ★ 专人负责节目链接,从而保证了节目链接的数量和质量。 【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:) -------------------------------------------------------------------------------- 【破解分析】 首先Peid 查壳,为UPX-Scrambler RC1.x -> ㎡nT畂L [Overlay],注意到[Overlay],是指程序尾部有数据,手动脱壳时尾部数据是不能脱壳出来的,因为它并没有载入内存中。UPX-Scrambler是UPX的一种加密器,使UpxShell等工具无法直接脱壳。
近期二哥提供了Upx脱壳工具全家福,目前用Upx包括变形Upx的程序还真多,赶快去下载吧,顶部工具介绍贴里面有下载地址。 工具脱壳
首先对付UPX-Scrambler,用Anti-UPX scramble,使用非常简单,自动帮你备份程序了。然后用Upxshell(Upx必须是1.90版),否则无法脱壳,脱的干干净净,Overlay自动帮我们复制了。
UPX-Scrambler RC1.x -> ㎡nT畂L [Overlay] To Microsoft Visual C++ 6.0 [Overlay]
904k To 3431k //用Upx脱Upx壳是最完美的。
Btw: 并非所有UPX-Scrambler RC1.x都是可以补丁的,略微变形一下工具就败下阵来了,手动脱壳复制Overlay我们还是要学。
手动脱壳
OD载入程序。 006AA60F > 90 NOP //外壳UpxScrambler入口。 006AA610 61 POPAD //特征码 006AA611 BE 00D06700 MOV ESI,LikeOne1.0067D000 006AA616 8DBE 0040D8FF LEA EDI,DWORD PTR DS:[ESI+FFD84000] 006AA61C 57 PUSH EDI 006AA61D 83CD FF OR EBP,FFFFFFFF 006AA620 EB 10 JMP SHORT LikeOne1.006AA632 006AA622 EB 00 JMP SHORT LikeOne1.006AA624 006AA624 ^ EB EA JMP SHORT LikeOne1.006AA610 006AA626 ^ EB E8 JMP SHORT LikeOne1.006AA610 006AA628 8A06 MOV AL,BYTE PTR DS:[ESI] 006AA62A 46 INC ESI 006AA62B 8807 MOV BYTE PTR DS:[EDI],AL 006AA62D 47 INC EDI 006AA62E 01DB ADD EBX,EBX 006AA630 75 07 JNZ SHORT LikeOne1.006AA639 ..............................................................
根据UPX及变形UPX
POPAD 对应 PUSHAD
PUSHAD
底下是
JMP XXXXX //入口或第二层壳的特性。
直接
Ctrl+F 向下找PUSHAD
006AA77E 60 PUSHAD //一下就找到了。 006AA77F - E9 AD90D5FF JMP LikeOne1.00403831 //直接F4下来。
00403831 55 PUSH EBP //F8到达C语言入口,非也,应该是易语言,Upx不破坏输入表,直接用OD插件脱壳,重建输入表方式选择1。 00403832 8BEC MOV EBP,ESP 00403834 6A FF PUSH -1 00403836 68 F0624000 PUSH LikeOne1.004062F0 0040383B 68 A44C4000 PUSH LikeOne1.00404CA4 00403840 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00403846 50 PUSH EAX 00403847 64:8925 0000000>MOV DWORD PTR FS:[0],ESP 0040384E 83EC 58 SUB ESP,58 00403851 53 PUSH EBX 00403852 56 PUSH ESI 00403853 57 PUSH EDI 00403854 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP 00403857 FF15 48604000 CALL DWORD PTR DS:[406048] ; KERNEL32.GetVersion 0040385D 33D2 XOR EDX,EDX 0040385F 8AD4 MOV DL,AH .................................................................................
关闭OD。
直接运行脱壳程序是无法运行的,提示你文件数据错误,因为尾部Overlay没有复制出来,我先以为程序有自校验,原来是新版的Peid查壳时Overlay翻译成覆盖了,一时不适应,浪费了不少时间,对比程序分析好久,这个是不细心的结果,自我批评一下。 运行Winhex打开原程序。
找到Overlay数据,从尾部开始,然后向上看,找到一大堆00 00与31 2E 等明显分界点,这里就是Overlay的起点。
我们看到尾部数据从偏移量987开始。在987处点右键选块开始。
如图
然后滚动条拉到底,到偏移量924990为止,在924990处点右键选块结束。
Crtl+C 复制选定内容。
然后打开脱壳文件,直接滚动条到尾部偏移量2815487处,点右键-编辑-剪贴板数据写入,确定两次。
如图
原理搞清楚就不犹豫,保存文件,问你是否更新程序,是,运行正常。
904k To 3652k
比工具脱壳大,并且用工具脱壳你可以看见易语言的标记区段。
Alt+M打开内存镜像
内存镜像,项目 15 地址=00409000 大小=0029C000 (2736128.) Owner=LikeOne1 00400000 区段=.ecode //易语言区段。 类型=Imag 01001002 访问=R 初始访问=RWE
这次手动脱壳资源也完全释放了。
不过易语言资源没工具编辑,代码也完全释放了。
我们用资源编辑工具和W32Dasm也可以识别这个程序是易语言。
1 2 3 4 下一页 |