庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>安全技术>软件破解>脱壳技术>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Armadillo.exe的脱壳(2.50)

 作者:本站收集   日期:2005-5-31
字号选择〖 〗/ 双击滚屏 单击停止   
Armadillo.exe的脱壳(2.50)
在hying和zombieys两位大虾的指教下,初试脱armadillo.exe,没有想到意外成功
以下不妥的地方还请诸位大侠多多指教

我用TRW装载Armadillo.exe(2。50)。按照zombieys大虾的方法,bpx virtualprotect.共中断27次后,
按F12进入armadillo的领空。在下面:
0167:004C7DB3 MOV CL,[EBP+0C]
0167:004C7DB6 PUSH ECX
0167:004C7DB7 CALL NEAR [EBP-3C] 《====进入
0167:004C7DBA ADD ESP,BYTE +08
0167:004C7DBD MOV [EBP-10],EAX
0167:004C7DC0 PUSH DWORD 004D01B4
0167:004C7DC5 CALL 004C9798
0167:004C7DCA ADD ESP,BYTE +04
0167:004C7DCD CALL NEAR [004D2EF0]
0167:004C7DD3 PUSH BYTE +00
0167:004C7DD5 PUSH BYTE +00

进入后,来到下面:
0167:00C9C827 MOV ECX,[EAX+20]
0167:00C9C82A XOR ECX,[EAX+1C]
0167:00C9C82D XOR ECX,[EAX+10]
0167:00C9C830 ADD EDI,ECX
0167:00C9C832 CALL `KERNEL32!GetCommandLineA`
0167:00C9C838 PUSH EAX
0167:00C9C839 PUSH EBX
0167:00C9C83A PUSH EBX
0167:00C9C83B CALL ESI
0167:00C9C83D PUSH EAX
0167:00C9C83E CALL EDI 《=====edi=41dc2c.(oep)
0167:00C9C840 MOV ESI,EAX
0167:00C9C842 POP EDI
0167:00C9C843 MOV EAX,ESI
0167:00C9C845 POP ESI
0167:00C9C846 POP EBX
0167:00C9C847 RET
进入41dc2c后,用makepe命令,dump出一个文件a.exe
用LoadPE分析原文件Armadillo.exe,选择“PE Editor”。点击“Sections”
看看“.rsrc”部分。Voffset=38000,VSize=8BE00.它的尾部是c3e00.加
imagebase 400000应该是4c3e00.我选择4c3f00为hying大虾的那段代码的
起始点。同时记下SizeOfImage
重新运行原文件Armadillo.exe,下bpx virtualalloc.断下后,记下该函数
的指针。取消断点。下断在入口点处:bpx 41dc2c.断下后,将eip改为我们
选定的地方:4c3f00.在这里,我们将hying大虾的那段代码写入。
6804000000 push PAGE_READWRITE
6800100000 push MEM_COMMIT
6800001100 push 110000h <-申请内存的大小,可大一点。
6800000000 push 0
e8xxxxxxxx call VirtualAlloc <-申请内存
mov edi,eax <--记下eax的值,假如为fa0000
mov ecx,???? <-文件映象大小减1000h,假如为xxxxxx
mov esi,401000h <-基址加1000h,有的程序不是这个值
rep movsb
当rep bovsb指令运行完后,从fa0000开始的xxxxxx字节数据,用W命令保存为文件1.bin.
将eip改为原入口点。退出原程序。
用winhex打开dump出的文件a.exe,在offset 1000处将1.bin文件写入。存盘。
我们运行a.exe文件,出错!记下出错地址。再运行原Armadillo.exe,在出错地址设断。
断下后看看出错地址的内存,按PageUp键,上下看看内存,把上下??之间内存数据
用W命令写入文件2.bin中,记下RVA(开始地址-400000)和size。用LoadPE打开dump文件a.exe,
增加一个sections,记住新增的offset.用winhex打开a.exe,将2.bin文件写入。
运行a.exe文件,呵呵,又出错了。记下出错地址,仿照上述办法,保存为bin文件,写入
a.exe文件中。再运行dump文件,呵呵,成功了。
armadillo2。5后的版本也可仿照此办法。
不正确、不清楚的地方,请诸位大侠多多指教。
上一篇:用OLLYDBG跟踪Krypton v0.4加的壳    下一篇:tElock 0.98b1 -> tE!的简单脱壳  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-5-31
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿