小软件爆破遇到问题
本帖最后由 wzgangwzgang 于 2015-4-11 11:39 编辑出于兴趣和学习破解,网上下了一个小软件
官网:http://www.tenset.co.uk/pedscope/download_windows.html
打开程序后会弹出信息框,内容为:(30天试用期)
The 30 day free trial period for this product has ended.Please upgrade to the full version to continue using this software.
若关闭则直接退出程序。
输入Registration name:
Registration code:
点OK后,弹出警告信息框,内容为:(注册码或名无效或过期)
Invalid(or expired)registration code and/or name
用Peid查壳,显示 什么都没找到! *。
改用 深度扫描,显示 Microsoft Visual C++ 6.0 - 8.0 *。好象是无壳。
用OD载入后搜索字符串搜不到上述相关字符串。
通过对软件的分析:注册码中可能应包含软件的使用时限,过期后需继续申请注册码!
用OD分析原程序:
弹出试用天数、是输入注册码还是继续试用的信息框:
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
00A8D2B0 75AA0927 ntdll.ZwWaitForMultipleObjects KernelBa.75AA0921 00A8D430
00A8D434 7594B6E5 KernelBa.WaitForMultipleObjectsEx user32.7594B6DF 00A8D430
00A8D438 00000000 nObjects = 0x0
00A8D43C 00A8D458 pObjects = 00A8D458
00A8D440 00000000 WaitForAll = FALSE
00A8D444 FFFFFFFF Timeout = INFINITE
00A8D448 00000001 Alertable = TRUE
00A8D48C 5E2739B6 user32.MsgWaitForMultipleObjectsEx QtCore4.5E2739B0 00A8D488
00A8D490 00000000 Count = 0x0
00A8D494 00A8D530 pHandles = 00A8D530
00A8D498 FFFFFFFF Timeout = INFINITE
00A8D49C 00000000 WakeMask = 0
00A8D4A0 00000064 Flags = MWMO_INPUTAVAILABLE|60
00A8F260 5BDF679F QtCore4.QEventDispatcherWin32::processEvents QtGui4.5BDF6799 00A8F25C
00A8F268 5E24D5FE 包含QtGui4.5BDF679F QtCore4.5E24D5FB 00A8F2A0
00A8F2A4 5C173B34 QtCore4.QEventLoop::exec QtGui4.5C173B2E 00A8F2A0
00A8F2E4 0146BAD3 QtGui4.QDialog::exec pedscope.0146BACD 00A8F2F4 nop后,“试用天数、提示注册信息框”没有了,直接进入了程序。
00A8F340 0146B618 ? pedscope.0146B7D0 pedscope.0146B613
00A8F438 01444F04 pedscope.0146B210 pedscope.01444EFF 00A8F434
00A8F5F8 014054EC pedscope.01444EA0 pedscope.014054E7 00A8F5F4
00A8FC7C 014978AD pedscope.01404E90 pedscope.014978A8 00A8FC78
00A8FC9C 014970A0 pedscope.01497810 pedscope.0149709B 00A8FCE4
输入注册名、码并确定后弹出的注册码不正确的信息框:
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
008FA5D0 75AA0927 ntdll.ZwWaitForMultipleObjects KernelBa.75AA0921 008FA750
008FA754 7594B6E5 KernelBa.WaitForMultipleObjectsEx user32.7594B6DF 008FA750
008FA758 00000000 nObjects = 0x0
008FA75C 008FA778 pObjects = 008FA778
008FA760 759476DC WaitForAll = TRUE
008FA764 7594B6EE Timeout = 1972680430. ms
008FA768 00000003 Alertable = TRUE
008FA7AC 5ADA39B6 user32.MsgWaitForMultipleObjectsEx QtCore4.5ADA39B0 008FA7A8
008FA7B0 00000000 Count = 0x0
008FA7B4 008FA850 pHandles = 008FA850
008FA7B8 FFFFFFFF Timeout = INFINITE
008FA7BC 00000000 WakeMask = 0
008FA7C0 00000068 Flags = 68
008FC580 5AF8679F QtCore4.QEventDispatcherWin32::processEvents QtGui4.5AF86799 008FC57C
008FC588 5AD7D5FE 包含QtGui4.5AF8679F QtCore4.5AD7D5FB 008FC5C0
008FC5C4 5B303B34 QtCore4.QEventLoop::exec QtGui4.5B303B2E 008FC5C0
008FC604 0146E19C QtGui4.QDialog::exec pedscope.0146E196 nop后,“输入注册名、码并确定后弹出的注册码不正确的信息框”、进入程序打开文件后弹出的“此软件为免费试用版的提示信息框”、关闭程序后弹出的“此软件为免费试用版的提示信息框”没有了。
008FC62C 0146D1D8 ? pedscope.0146E0E0 pedscope.0146D1D3
008FC67C 0144AFA0 pedscope.0146D060 pedscope.0144AF9B 008FC678
008FC6B0 0144AEEA pedscope.0144AF00 pedscope.0144AEE5 008FC6AC
008FC6D4 01456465 pedscope.0144AEC0 pedscope.01456460 008FC6D0
008FC720 014559A4 可能 pedscope.01456270 pedscope.014559A2 008FC71C
008FC754 5AD8DE6F pedscope.01455980 QtCore4.5AD8DE6C 008FC750
008FC7CC 5B2570BF 包含QtCore4.5AD8DE6F QtGui4.5B2570BD 008FC7C8
008FC7F8 5AD8DE6F 包含QtGui4.5B2570BF QtCore4.5AD8DE6C 008FC86C
008FC870 5B45CDC5 QtCore4.QMetaObject::activate QtGui4.5B45CDBF 008FC86C
008FC88C 5B22FCDB QtGui4.QAbstractButton::clicked QtGui4.5B22FCD6
008FC8BC 5B22FBC5 QtGui4.5B22FC80 QtGui4.5B22FBC0
008FC8E0 5B230687 QtGui4.5B22FAD0 QtGui4.5B230682
008FC8F0 5AF6A124 包含QtGui4.5B230687 QtGui4.5AF6A121
008FC9F8 5B22FFB6 QtGui4.QWidget::event QtGui4.5B22FFB1
008FCA08 5B2AA286 QtGui4.QAbstractButton::event QtGui4.5B2AA281
008FCA1C 5AF306E9 包含QtGui4.5B2AA286 QtGui4.5AF306E7
008FCA30 5AF2F36F QtGui4.QApplicationPrivate::notify_helper QtGui4.5AF2F36A
上面先分两次调试运行,分别找出两处弹出窗口的堆栈调用。
★★上述两处一次同时nop后保存,则各种试用弹出提示窗口均不再弹出!!!但在about中还是试用版,且应还有试用天数和500条记录限制!!!
用PYG-OD分析原程序:
od载入,F9运行。打开一个超过500条记录的系谱文件,弹出限制500条记录信息框。
搜索上面字串搜不到。查看调用越整越不明白。
因此请热心大牛帮看看我分析的对不对,如何解除这500条记录限制!
对于500条的限制,可以试着搜索下常量0x1f4看看。。。
当然,没有源程序来调试,我是随便说的。不解释,不负责哈,错了也别找我{:soso_e154:} GGLHY 发表于 2015-3-27 13:24
对于500条的限制,可以试着搜索下常量0x1f4看看。。。
当然,没有源程序来调试,我是随便说的。不解释, ...
非常感谢G版回复。
我试了一下,找到好几十处,全改完也不行。我还在找,应是其中确定的某几个。
厉害,真的牛
GGLHY 发表于 2015-3-27 13:24
对于500条的限制,可以试着搜索下常量0x1f4看看。。。
当然,没有源程序来调试,我是随便说的。不解释, ...
找了一下午,还是找不准地方。
提示的信息内容已经改了,但还是提示不可用,是试用版。是验证的地方多,还是通过“试用版”来验证的呢?
要是能通过注册码或,解除试用版,变成完全版,这个问题全都解了。但目前我还不会分析算法。
热心大牛能抽空帮看看吗?
文件官网就能下,32 bit editions,2.4.0.1。
xp sp3安装完成后 无法打开32位的 Dxer 发表于 2015-3-27 17:47
xp sp3安装完成后 无法打开32位的
是有这种情况,可能是软件支持问题。
但win7、win8都可以。谢谢关注。
wzgangwzgang 发表于 2015-3-27 17:49
是有这种情况,可能是软件支持问题。
但win7、win8都可以。谢谢关注。
{:soso_e147:}还有你这个软件是QT的,我很难帮助到你。怕在外围绕来绕去 头晕目眩
本帖最后由 zaas 于 2015-3-27 18:13 编辑
0029XXXX B0 01 MOV AL, 0x1
0029XXXX C3 RETN
动态基址?你自己找找。。。
关键call直接这样处理就OK了。。。
再提示下,注册码形式为XXXX-XXXX-XXXX-XXXX-XXXX
童鞋,你先换个简单的原生程序做研究吧,等玩熟了再来QT
QT不可怕,搞清楚几个指针就可以了
页:
[1]
2