OllyScript 是 OllyDbg调试器的一个插件。我个人认为,OllyDbg是目前最好的程序级调试器。
这个调试器的最大的特色之一就是她的插件体系,这是使得用户能够更为有效的扩展她的功能。
OllyScript 是一种通过类汇编语言的脚本,来控制OllyDbg自动运行的插件。
在调试程序时,常常都是仅仅为了要找到某几个关键点,而不得不做大量的重复工作。
而通过使用我的脚本,您就可以做到"写一次脚本,无限使用" [write a script once and for all]。
具备这么多好处,你是否心动。
另外脚本运行可以绕过部分变态壳的时间差反跟踪。
国产脚本大量都是loveboom写的,垄断! 这可不行,^-^
一起来学写吧,需要工具,知识。
知识 Ollydbg 操作等级3级以上,各种断点,按键知识。
初级汇编,初级高级语言编程经验
首先写脚本自己得会手动脱这个壳
工具 Ollydbg1.10,OllyScript 0.92 Oscedit -> Loveboom的作品,Dfcg高级脱壳区下载
本动画以北斗程序压缩1.3脱壳-简单 作例子。
北斗程序压缩1.3脱壳-简单
【破解作者】 №微笑一刀
【作者邮箱】 保密
【作者主页】 保密
【使用工具】 OD,IMPR
【破解平台】 XP SP2
【软件名称】 北斗程序压缩1.3
【下载地址】 _blank>http://www.onlinedown.com/soft/36182.htm
【软件简介】 首款国产Win32(Windows95/98/2000/NT/XP/2003)EXE、DLL、OCX等PE文件压缩工具,通过压缩代码、数据、相关资源使压缩能达到60-70%。特点:(1)、本软件采用当前世界顶级的压缩算法,其极高的压缩率和极快的解压速度,极大减少可执行文件大小(压缩比通常高于Aspack、UPX等同类软件). 压缩/加密后的程序无性能损失, 经压缩/加密的程序可以用其它第三方压缩/加密工具再加密/压缩. 在内存中解压/解密,提高了程序的安全性,本程序支持用其它第三方软件压缩/加密后的继续压缩/加密。(2)、能够正确处理PE文件中的共享数据、WindowsXP下的向量化异常(Vectored Exception Handling,VEH).(3)、界面简洁易用,支持中英文切换、右键功能、命令行。
【软件大小】 173KB
【加壳方式】 nSpack 1.3
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
载入目标以后停在这里
00484375 > 9C PUSHFD <-这里
00484376 60 PUSHAD
00484377 E8 00000000 CALL nSpack.0048437C <-走到这里以后查看ESP.可以用ESP定律,
在命令行下HR ESP,来到
00484599 9D POPFD <-这里.
0048459A - E9 8002FAFF JMP nSpack.0042481F <-走过去看看^_^
0042481F 55 DB 55 ; CHAR 'U'
00424820 8B DB 8B
00424821 EC DB EC
00424822 6A DB 6A ; CHAR 'j'
00424823 FF DB FF
00424824 68 DB 68 ; CHAR 'h'
00424825 C8 DB C8
00424826 67 DB 67 ; CHAR 'g'
00424827 44 DB 44 ; CHAR 'D'
00424828 00 DB 00
00424829 68 DB 68 ; CHAR 'h'
0042482A CC DB CC
0042482B 3C DB 3C ; CHAR '<'
0042482C 42 DB 42 ; CHAR 'B'
0042482D 00 DB 00
0042482E 64 DB 64 ; CHAR 'd'
0042482F A1 DB A1
怎么是这些东东,呵呵,CTRL+A分析一下
0042481F /. 55 PUSH EBP <-在此DUMP
00424820 |. 8BEC MOV EBP,ESP
00424822 |. 6A FF PUSH -1
00424824 |. 68 C8674400 PUSH nSpack.004467C8
00424829 |. 68 CC3C4200 PUSH nSpack.00423CCC ; SE handler installation
0042482E |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00424834 |. 50 PUSH EAX
00424835 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
0042483C |. 83EC 58 SUB ESP,58
0042483F |. 53 PUSH EBX
00424840 |. 56 PUSH ESI
00424841 |. 57 PUSH EDI
00424842 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00424845 |. FF15 A0224400 CALL DWORD PTR DS:[4422A0] ; kernel32.GetVersion
出现了吧.嘿嘿.在0042481F 处DUMP.然后使用IMPR修复,在偶机器上有一个无效的.剪切掉就OK了.
主程序VC编译.这个壳是二哥推荐的.压缩能力据说超过UPX和ASPACK哦
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
Btw: 写动画前,我也不会做脚本,但有前辈们无私的经验和工具,怒力就可以实现任何梦想。
第一次要熟读
OllyScript0.92.txt //已经汉化
快速入手就是用别人写好的脚本用OSEditor.exe逐句分析每句的意思,从而可以自己写脚本。
脱壳脚本
开始
// NSpack 1.3 OEP Finder v0.1
// by ★LOCKLOSE★ * //是脚本注释,这些行不会执行
// _blank>http://bbs.pediy.com
var addr * VAR 在脚本中,声明一个变量,必须在变量使用先声明。这句什么用途呢,看第四行
由于不同系统用Esp定律,Esp值不同,为了使脚本通用,就得用变量保存Esp值。
sto * 相当于在OllyDbg中按 F8,单步过
'我们看手动脱壳不也是F8两次后利用Esp定律的
是同样
