科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道系统安全之不脱壳直接破解软件的方法

系统安全之不脱壳直接破解软件的方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

补丁完成后的返回NOPNOP再在OllyDbg中下面的代码区的全0区域的任意位置输入上述汇编代码,然后复制出对应的汇编机器码备用。做好上述准备工作后,你就可以使用任一编程软件来编写你的补丁用程序了。

作者:赛迪网 来源:赛迪网安全社区 2007年10月18日

关键字: fhandle UltraEdit 加壳 MsgBox WinHex

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

要实现带壳软件直接打补丁,需要一些技巧和运气,虽然这看起来是很不容易实现的,其实并不象大家想的那么难,下面听我慢慢道来。

要实现这种带壳补丁的目的,当然你需要作充分的前提条件:

过硬的软件跟踪与分析能力,因为你没有软件作者的源码,一切都要靠自己动手;

简单代码编写能力,当然是汇编代码,可以借调试软件帮忙;

必备工具:PEiD、OllyDbg、W32DasM、文本编辑器(WinHex或UltraEdit或其它)、文件增肥工具(如:ZeroAdd)等;

任一编程平台,编写补丁程序用(与使用汉化补丁类似);

最简单的加、减法运算(Icefire:这也算一条?)。

作为练习,下面以 LS定时器为例,看看如何带壳编写破解补丁。这个软件提供如下功能:它可以根据你的设定在你需要的时候提醒你,防止你忘记重要的事情;它可以根据你的设定在你需要的时候运行制定程序;各种提示都是可以是重复的,它可以每分钟、每小时、每日、每天、每周、每月、每年的重复决不会怕麻烦;在某一时间,例如:2004年1月1日20点30分关机;倒计时一定时间,例如:在2小时30分以后关机;当键盘和鼠标没有操作一定时间,例如:在你离开电脑30分钟后关机。

该软件未注册时只能使用30天,30天过后只能注册后才能使用。

初步准备

首先使用PEiD探测得知,软件使用了ASPack 2.12->Alexey Solodovnikov加的壳。这种壳脱壳也较为容易,特征标志比较明显。加了这种壳的软件运行时,壳先自行释放被加壳的软件,然后将再运行被加壳的软件。我们只要找出释放后、运行前的位置,在这个位置跳到我们的补丁代码处进行补丁行动,补丁完成后返回,接着继续软件就完事了。

使用OllyDbg载入程序,不用运行。向下滚动代码区,直到找到如下代码:

006083AF 61 POPAD
006083B0 75 08 JNZ SHORT LsDown.006083BA
006083B2 B8 01000000 MOV EAX,1
006083B7 C2 0C00 RETN 0C
006083BA 68 00000000 PUSH 0
006083BF C3 RETN

复制出来备用。在OllyDbg代码区按住右边的滚动条向下拖动,直到底部的全0区域。在全0区域的前部,选一个偏移好记的位置。在代码区双击,在弹出的编辑框中输入任意一条汇编指令,如:RETN。

在OllyDbg中选择这段代码,点右键,在弹出的菜单中执行“复制到可执行文件——选择部分(不同版本的OD这个菜单略有不同)”,在跳出的代码框中点右键,并在弹出的菜单中执行“保存文件”,另起一个名称,保存备用(为简化计算,此过程必需)。

深入跟踪

这里是个高强度的工作,你需要有足够耐力和观察分析判断力。你没有注册,又过了试用期。所以你必须找到所有的判断注册与否的关键跳转,并记录下相关的代码部分(该软件使用的非可逆注册算法,只能爆破)。通过寻找,会得到如下关键代码处:

1、005131FA SETE AL
2、0051321E JNZ SHORT LsDown.00513227
3、00533C89 JE SHORT LsDown.00533C91

通过分析和试验,发现需要将它们分别更改成为:

1、005131FA MOV AL,1
NOP
2、0051321E JE SHORT LsDown.00513227
3、00533C89 JNZ SHORT LsDown.00533C91


则软件可以使用并且没有任何限制。

制作模拟补丁

因为这里所说的补丁制作不是在软件里直接完成,而是另用编程软件制作,所以需要取得补丁的汇编级机器码。又因为上述需要修改的汇编代码的机器码为:

MOV AL,1-->B0 01
NOP -->90
JE SHORT LsDown.00513227-->74 07
JNZ SHORT LsDown.00533C91-->75 06

其偏移地址分别为:

005131FA
0051321E
00533C89

所以模拟补丁形如:

MOV WORD PTR SS:[5131FA],1B0 
MOV BYTE PTR DS:[5131FC],90
MOV BYTE PTR DS:[51321E],74
MOV BYTE PTR DS:[533C89],75
JMP LsDown.006083BA ;补丁完成后的返回
NOP
NOP
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章