我成功破解了 星空极速3.0 并制作了内存注册机
不用下载巨大的嗅探器了!
注册机设置:
程序名称:Dialterminal.exe
中断地址:436A10
中断次数:1
第一字节:d8
指令长度:2
注册码方案:内存方式
寄存器:EAX
破解过程等过几天再发上来。 (TMD!累死我了,拨号函数竟然在DLL中。)
使用时要放在\ChinaNetSn\bin\目录下.
ps:本内容转禁止往百毒(baidu)贴吧!(希望大家理解.我与百度的深仇大恨,谢谢!)
破解过程:
【文章标题】: 破解星空极速-内存直读
【文章作者】: jjjc
【作者邮箱】: ll098#126.com
【作者主页】: ll098.ys168.com
【作者QQ号】: 271976052
【软件名称】: 星空极速拨号客户端陕西版3.0.0018
【软件大小】: 4045K
【下载地址】: http://soft.xaonline.com/SoftWareView.asp?SoftWareID=57063
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD、Keymake、C32asm
【操作平台】: Windows XP SP2
【软件介绍】: 用过的都恨之入骨!
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
今天我终于对“星空极速3.0”下手了!
下载安装后,对其进行观察。
首先确定它的主程序是“C:\Program Files\ChinaNetSn\bin\Dialterminal.exe”
用peid对其检查发现未加壳.
用OD载入.
下bp RasDialA(系统拨号函数),发现OD显示"未知标识符".
这说明它没有在输入表中引用该函数.(本人的坏习惯:不喜欢看静态分析的输入表,不要学我.)
在OD停止载入.
在主文件目录中寻找相关的文件,发现"xinliPPPoE.dll"与似乎拨号有关.
用PEID检查发现未加壳.
用C32asm查看输入表,发现以下内容:
-c32asm导出数据
RASAPI32.DLL
RasDialA
::1000454F->CALL 10004D3E
::10004D3E->JMP [100062BC]
-
它引用了一次RasDialA函数应该就是这个dll在拨号.
ps:一开始以为是引用了两次,但是仔细看后发现是1000454F调用10004D3E被C32asm勿认为两次调用.
-c32asm导出数据
::1000454A:: 51 PUSH ECX
::1000454B:: 6A 00 PUSH 0
::1000454D:: 6A 00 PUSH 0
::1000454F:: E8 EA070000 CALL 10004D3E (就是这附近) \:JMPDOWN >>>: RASAPI32.DLL:RasDialA
::10004554:: 8BF0 MOV ESI, EAX
::10004556:: 85F6 TEST ESI, ESI
::10004558:: 74 64 JE SHORT 100045BE
-
用OD载入程序.
F9运行后,按Alt+M进入内存窗口 按Ctrl+B进行搜索,输入E8 EA 07 00 00 8B F0 不要勾选"整个区块",搜索.
将其数据格式改为"反汇编"
向上查看发现函数开始于012f4420,下断点bp 012f4420.
在程序上单击拨号按钮.
断下观察发现密码已经不是原来我输入的那个.
说明密码的计算已完成.
查看dll输出表得知这是一个dll内部函数,没有导出.
破解陷入没路可走的境地.
突然我想起C32asm在内部函数开始的地方会显示调用它的地址.
查看反汇编代码后得到结果,dll的导出函数Dial调用了这个内部函数.
进入OD的模块窗口选择xinliPPP.dll,右键查看名称(翻译的名字真奇怪,叫查看输入输出表还差不多.Ctrl+N)
找到Dial的三个retn下断点.再次单击拨号按钮,断在012f1c0b的retn下,取消断点.
F8返回到了主程序领空.(领空这词用惯了)
下断所有的retn,F9运行,断在00443148下,取消全部断点.
看看代码,到了拨号准备的函数了.
F8返回,在函数开始处0040cd70下断点,后F9.
单击拨号,断在0040cd70处,F8开始分析.
经过0040ceb8看到堆栈中出现了用户名.
经过0040cdc8看到堆栈中出现了密码.
程序在取输入框的内容呢.
在经过0040cf1c时OD卡了一下.我马上发现堆栈中的密码变化了.
看来计算函数在0040cf1c中.
看来到了计算函数了!(哈哈哈!)
取消其他断点,下0040cf1c断!
F7进入调用,跟踪到004369be时,密码进入堆栈顶.(哈哈!)
到了004369ea密码变化了!就是这里!
在00436A10变化后的密码进入了EAX .
到此结束,打开Keymake.进入内存注册机。
程序名称:Dialterminal.exe
中断地址:436A10
中断次数:1
第一字节:d8
指令长度:2
注册码方案:内存方式
寄存器:EAX
生成并运行,成功弹出加密后的密码.
--------------------------------------------------------------------------------
【经验总结】
我没有分析密码的算法是因为没有必要.算法大概也能猜出来(只与用户名有关).
只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
ps:本内容转禁止往百毒(baidu)贴吧!(希望大家理解.我与百度的深仇大恨,谢谢!)
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2008年06月02日 10:11:41
这个不算注册机吧。
几天没注意竟然出了“星空极速3.2版”不幸的是 陕西省西安市的ADSL不支持 期待其他人的努力吧
ps:大概看了一下 好像是把帐号变了一下 和以前的不太一样了
当然不是! 只是突破电信的路由器限制而已。
[注意]看雪招聘,专注安全领域的专业人才平台!