找回密码
 注册
搜索
热搜: 回贴

AccelerateX5.0DEMO版之破解心得,Accelerate,其他平台

2010-1-30 18:31| 发布者: admin| 查看: 215| 评论: 0|原作者: 情殇


AccelerateX5.0DEMO版之破解心得,Accelerate,其他平台
2008年06月23日 星期一 下午 11:26
网管中心的bbs服务器是基于RedHat5.1的Linux系统。作为临时bbs管理员,一天坐

在那里上比比哀思真的是很无聊。于是想用Xwindows来上万维网。但着台服务器偏偏是

讨厌的Sis 6236显卡,Xwindows根本就用不起,于是在沉淀的ftp上下了一个AccelerateX5.

0DEMO版。安装倒是非常的顺利,但讨厌的DEMO版非要在99年1月4号以前用。我把服务器的日

期调到1月4号之前则可以用,且效果很好!但作为bbs服务器,日期之重要,日期一变非但发

表文章不正常,每日排行榜也不能正常工作。那如何解决这个问题呢?把它搞定!!这么多

程序都是我可以轻松搞定的,区区一个AX算得了什么!在重起了N次gdb,重设了N次break

*0x804bxxx之后终于找到了关键的地方!千万不要以为断点是很好找的,特别是在Linux下。

找断点的功力需要在实践中长期练就,想当年的LOCK 89,90,91,95 NT,BitLOK,KeyMake

,LockMaster......都是在反跟踪措施非常严密的情况下步步跟踪到核心的。现在的程序有

个暴好的优点,那就是统统没有反跟踪代码!可以说是去除了破解软件的最大的困难,难度

从而降低了95%!那在Linux破解还有什么难度呢?难度是大大的,那就是:在Linux这种不太

成熟的操作系统下,连调试软件也是极其的难用!哪像Win95/DOS下大名鼎鼎的Soft-ice,

Turbo Debugger......像察看内存,修改内存这样的基本功能都没有!TMD!还有就是gdb下的

反汇编太伤脑筋了,看惯了Soft-ice和Debug下的汇编,看gdb下的真是像天书!还好,我功力

深厚,办法多:-)

来吧,切入正题,试试身手!

先启动Linux(废话),登录(又是废话),取得一定权限(如果你是root,那就方便多了,

俗话说得好“我是root我怕谁” xxx语)!

先看看你的AX50DEMO和我的一不一样!跟着作吧:-)

[~/]#cd /usr/X11R6/lib/X11/AccelerateX/bin

[/usr/X11R6/lib/X11/AccelerateX/bin]#gdb Xaccel-glibc ;用gdb调入AX50DEMO主程序

GNU gdb 4.17

Copyright 1998 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB. Type "show warranty" for details.

This GDB was configured as "i386-redhat-linux"...

(no debugging symbols found)...

(gdb)disass _start 反汇编函数 _start(Linux下的程序基本上都是以_start

或_init开始的)



Dump of assembler code for function _start:

0x804b520 <_start>: xorl 双,双

0x804b522 <_start 2>: testl 韝,韝

0x804b524 <_start 4>: je 0x804b52d <_start 13>

0x804b526 <_start 6>: pushl 韝

0x804b527 <_start 7>: call 0x804b214

0x804b52c <_start 12>: popl 陎

0x804b52d <_start 13>: call 0x804ae24 <__libc_init_first>

0x804b532 <_start 18>: popl %esi

0x804b533 <_start 19>: leal 0x4(%esp,%esi,4),陎

0x804b537 <_start 23>: movl 陎,0x80d33d8

0x804b53c <_start 28>: movl %esp,韝

0x804b53e <_start 30>: andl $0xfffffff8,%esp

0x804b541 <_start 33>: pushl 陎

0x804b542 <_start 34>: pushl 陎

0x804b543 <_start 35>: pushl 韝

0x804b544 <_start 36>: pushl %esi

0x804b545 <_start 37>: call 0x804a750 <_init>

0x804b54a <_start 42>: pushl $0x80c3bb0

0x804b54f <_start 47>: call 0x804b214

0x804b554 <_start 52>: popl 陎

0x804b555 <_start 53>: call 0x804c96c <_start 5196>

0x804b55a <_start 58>: pushl 陎

0x804b55b <_start 59>: call 0x804b324

0x804b560 <_start 64>: hlt

0x804b561 <_start 65>: nop

0x804b562 <_start 66>: nop

0x804b563 <_start 67>: nop

0x804b564 <_start 68>: pushl 双

0x804b565 <_start 69>: movl %esp,双

0x804b567 <_start 71>: cmpl $0x0,0x80cdd8c

0x804b56e <_start 78>: jne 0x804b5a3 <_start 131>

0x804b570 <_start 80>: jmp 0x804b585 <_start 101>

0x804b572 <_start 82>: movl %esi,%esi

0x804b574 <_start 84>: addl $0x4,0x80cdd88

0x804b57b <_start 91>: movl 0x80cdd88,陎

0x804b580 <_start 96>: movl 0xfffffffc(陎),陎

0x804b583 <_start 99>: call *陎

0x804b585 <_start 101>: movl 0x80cdd88,陎

0x804b58a <_start 106>: cmpl $0x0,(陎)

0x804b58d <_start 109>: jne 0x804b574 <_start 84>

0x804b58f <_start 111>: pushl $0x80d2bd4

0x804b594 <_start 116>: call 0x80c397c

0x804b599 <_start 121>: movl $0x1,0x80cdd8c

0x804b5a3 <_start 131>: leave

0x804b5a4 <_start 132>: ret

0x804b5a5 <_start 133>: leal 0x0(%esi),%esi

0x804b5a8 <_start 136>: pushl 双

0x804b5a9 <_start 137>: movl %esp,双

0x804b5ab <_start 139>: leave

0x804b5ac <_start 140>: ret

0x804b5ad <_start 141>: leal 0x0(%esi),%esi

.......

.......

.......

0x804b776 <_start 598>: movl $0x63,0xffffef5c(双)

0x804b780 <_start 608>: movl $0x3,0xffffef58(双)

0x804b78a <_start 618>: movl $0x1,0xffffef54(双)

0x804b794 <_start 628>: movl $0x0,0xffffef50(双)

0x804b79e <_start 638>: movl $0x0,0xffffef4c(双)

0x804b7a8 <_start 648>: movl $0x1,0xffffef48(双)

0x804b7b2 <_start 658>: movl $0xffffffff,0xffffef68(双)

0x804b7bc <_start 668>: pushl 陎

0x804b7bd <_start 669>: call 0x804ade4 ;获得时间

0x804b7c2 <_start 674>: addl $0x4,%esp

0x804b7c5 <_start 677>: cmpl $0xffffffff,陎 ;调用成功否?eax为返回值

0x804b7c8 <_start 680>: je 0x804b7d2 <_start 690>

0x804b7ca <_start 682>: cmpl 陎,0xffffeaec(双)

0x804b7d0 <_start 688>: jle 0x804b7dc <_start 700> ;小于则转到_start 700

0x804b7d2 <_start 690>: pushl $0xffffffff ;失败标志'-1'入栈

0x804b7d4 <_start 692>: call 0x804c948 <_start 5160> ;失败处理并退出

0x804b7d9 <_start 697>: addl $0x4,%esp

0x804b7dc <_start 700>: pushl $0x13880000 ;进入主程序

0x804b7e1 <_start 705>: call 0x804ed80 <_start 14432>

0x804b7e6 <_start 710>: addl $0x4,%esp

0x804b7e9 <_start 713>: testl 陎,陎

0x804b7eb <_start 715>: jne 0x804b7fa <_start 730>

0x804b7ed <_start 717>: pushl $0x80c3ce4

0x804b7f2 <_start 722>: call 0x8092674

0x804b7f7 <_start 727>: addl $0x4,%esp

.......

.......

.......

q 这是退出命令

[/usr/X11R6/lib/X11/AccelerateX/bin]#

既然关键的地方找到了!那就该改原代码了。在dos/win95下要改代码很简单,先获得

指令的16进制代码,在调试器或16进制编辑器中查找到直接改掉即可!但在Linux下就......

还好我还没把我的M$ dos和Win95丢掉。跟着我作吧!

[/usr/X11R6/lib/X11/AccelerateX/bin]#mount /dev/fd0 -tvfat /mnt/fd ;插入软盘把软驱

蟒上(在目录/mnt/fd)

[/usr/X11R6/lib/X11/AccelerateX/bin]#cp Xaccel-glibc /mnt/fd ;把主文件考到软盘上

[/usr/X11R6/lib/X11/AccelerateX/bin]#umount /dev/fd0 ;卸下

(或直接把dos/win95的分区mount上,拷贝之,如果管理员给了你这个权限)

重起计算机或换台计算机,把软盘上的程序考到硬盘上!启动我最喜爱的,大名鼎鼎的

,最拉风的,最芭腊的Soft-ice(千万不要告诉我你不会启动Soft-ice,我cow,信不信我一刀

捅死你)!用Soft-ice的装入器(一般是Symbol Loader.exe)随便调入一个32为的程序(如calc.

exe).用a命令(汇编)把关键部分的指令(就是上面写的,但要翻译成一般的汇编格式)输入:

xxxxxxxx:cmp [ebp 0ffffeaec],eax ;就是cmpl 陎,0xffffeaec(双)啦

xxxxxxxx:jle XXXXXXXX ;XXXXXXXX乱填

xxxxxxxx:jge XXXXXXXX ;XXXXXXXX乱填

在用code on命令把指令的16进制代码显示出来!

xxxxxxxx:3985eceaffff cmp [ebp 0ffffeaec],eax

~~~~~~~~~~~~记下该16进制代码

xxxxxxxx:7exx jle XXXXXXXX

~~~~~~~~~~~~记下该16进制代码

xxxxxxxx:7dxx jgl XXXXXXXX

~~~~~~~~~~~~记下该16进制代码

用exit命令强行退出(会获得一个非法指令错误,不理它)

看到这里,看官们都知道了,只要把jle 0x804b7dc <_start 700>改成

jge 0x804b7dc <_start 700>就可以了!

也就是把7e改成7d即可!

有人会说原理好~简单,但步骤好~复杂!我也没更好~办法,其实破解Linux程序的一般步

骤就只有这样了,将就用吧!但是看官你需要作的很简单:

1。把主程序Xaccel-glibc考到硬盘上

2。用不管什么编辑器修改,查找3985eceaffff7e,改为3985eceaffff7d,存盘。

3。把Xaccel-glibc考回去,覆盖之



好了好了!写这么多字,好辛苦哟(我打字极慢,用全拼,还分不清前鼻音后鼻音,卷

舌音,翘舌音......痛苦异常,速度可想而知,!)这全是为了全xx类,为了我国的xx技术,为

了早日实现xx的现代化......

上篇大作不知各位看了没有,没看?那肯定4月26日遭惨了!还不看?“Cih1.4病毒之

中文详解”,快去下吧:ftp://202.115.32.2/incoming/tpo/cih14.asm或到我的主页上去瞧瞧:

http://bbs.scu.edu.cn/~tpo好东西多多哟(Email:zd_dan@263.net)!

鉴于cih病毒再次的爆发流行和4月26日的惨痛教训,我决定把cih病毒的发作模块好身

剖析一下,再把遭cih清洗的硬盘的恢复方法好好研究一下,写成文章张贴出来!

各位看官,敬请期待我的大作吧!下次再见咯!


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 11:30 , Processed in 0.192590 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部