网络传送带2.63.415 暴力破解
【文章作者】: leafstone【软件名称】: 网络传送带 (Net Transport)2.63.415 简体版
【下载地址】: http://www.onlinedown.net/soft/2919.htm
【加壳方式】: 无
【使用工具】: Peid0.94,OD
【操作平台】: XP SP2
【作者声明】: 我是一只小小小菜鸟。这是我申请PYG解密小组调试的程序的破文,以飨读者!
因为已经注册完毕,两台电脑都被我测试了,于是不能够从头再跟然后写破文,那么就从思路下手,整理一下。
1、查壳,Microsoft Visual C++ 6.0,无壳,按照冰糖糖的话就是软柿子……
2、直接拖进OD,然后一路狂跟,发现程序有检查int3断点的功能,F8跟跟不过去。尝试下断程序内部或者修改文件,运行后直接退出。可见程序有自校验。
3、破除自校验地方法用bp CreateFileA函数尝试。CreateFile 函数详解请看http://blog.21ic.com/user1/1831/archives/2006/28800.html,去除自校验必备。因为断点在Kernel32.dll ,所以能够下断。我的OD其它设置参看Fly大侠的过TMD壳的插件的设置。
断下后运行,然后Alt+F9返回,看到地址空间在libcrypto.dll中,可见自校验是在这里定义的,这里就不多研究了。然后接着走来到程序领空。
0045A113|. /74 04 JE SHORT NetTrans.0045A119 ;跳了
0045A115|. |8B7424 60 MOV ESI,DWORD PTR SS:
0045A119|> \8D4C24 14 LEA ECX,DWORD PTR SS:
(修改完下面说道的跳以后,这里就不跳了,但是改与不改没有关系,功能没有差别)
#################################
00468567 . /75 4E JNZ SHORT NetTrans.004685B7 ;跳了
00468569 . |8D4C24 3C LEA ECX,DWORD PTR SS:
0046856D . |C68424 FC0F00>MOV BYTE PTR SS:,6
00468575 . |E8 361AFFFF CALL NetTrans.00459FB0
0046857A . |8D4C24 24 LEA ECX,DWORD PTR SS:
0046857E . |C68424 FC0F00>MOV BYTE PTR SS:,3
00468586 . |E8 B3F90A00 CALL <JMP.&MFC42u.#800>
0046858B . |8D4C24 20 LEA ECX,DWORD PTR SS:
0046858F . |C68424 FC0F00>MOV BYTE PTR SS:,0
00468597 . |E8 A2F90A00 CALL <JMP.&MFC42u.#800>
0046859C . |8D4C24 10 LEA ECX,DWORD PTR SS:
004685A0 . |C78424 FC0F00>MOV DWORD PTR SS:,-1
004685AB . |E8 8EF90A00 CALL <JMP.&MFC42u.#800>
004685B0 . |33C0 XOR EAX,EAX
004685B2 . |E9 760D0000 JMP NetTrans.0046932D ;注意此跳,死亡跳
004685B7 > \8D4C24 28 LEA ECX,DWORD PTR SS:
#################################
004685E5 . /75 79 JNZ SHORT NetTrans.00468660 ;没跳
004685E7 . |6A 00 PUSH 0
004685E9 . |8D8C24 480100>LEA ECX,DWORD PTR SS:
004685F0 . |E8 DBE80200 CALL NetTrans.00496ED0
004685F5 . |8D8C24 440100>LEA ECX,DWORD PTR SS:
004685FC . |C68424 FC0F00>MOV BYTE PTR SS:,0B
00468604 . |E8 1BF80A00 CALL <JMP.&MFC42u.#2506> ;注册Nag
00468609 . |3D 55050000 CMP EAX,555
0046860E . |75 14 JNZ SHORT NetTrans.00468624
00468610 . |6A 00 PUSH 0 ; /Arg4 = 00000000
00468612 . |6A 00 PUSH 0 ; |Arg3 = 00000000
00468614 . |8D5424 30 LEA EDX,DWORD PTR SS: ; |
00468618 . |6A 00 PUSH 0 ; |Arg2 = 00000000
0046861A . |52 PUSH EDX ; |Arg1
0046861B . |8D4C24 4C LEA ECX,DWORD PTR SS: ; |
0046861F . |E8 AC23FFFF CALL NetTrans.0045A9D0 ; \NetTrans.0045A9D0
00468624 > |8D8C24 A80100>LEA ECX,DWORD PTR SS:
0046862B . |C68424 FC0F00>MOV BYTE PTR SS:,0D
00468633 . |E8 06F90A00 CALL <JMP.&MFC42u.#800>
00468638 . |8D8C24 A40100>LEA ECX,DWORD PTR SS:
0046863F . |C68424 FC0F00>MOV BYTE PTR SS:,0C
00468647 . |E8 F2F80A00 CALL <JMP.&MFC42u.#800>
0046864C . |8D8C24 440100>LEA ECX,DWORD PTR SS:
00468653 . |C68424 FC0F00>MOV BYTE PTR SS:,0A
0046865B . |E8 F0F80A00 CALL <JMP.&MFC42u.#641>
00468660 > \8B4424 28 MOV EAX,DWORD PTR SS:
#############################
很明显,没跳的那个一定要跳
004685E5 . /EB 79 JMP SHORT NetTrans.00468660
注册Nag去除
4、30天限制,往下接着跟
00468669 . /75 6C JNZ SHORT NetTrans.004686D7 ;没跳
0046866B . |8D4C24 3C LEA ECX,DWORD PTR SS:
0046866F . |E8 8C27FFFF CALL NetTrans.0045AE00
00468674 . |85C0 TEST EAX,EAX
00468676 . |75 5F JNZ SHORT NetTrans.004686D7
00468678 . |8D4C24 28 LEA ECX,DWORD PTR SS:
0046867C . |C68424 FC0F00>MOV BYTE PTR SS:,9
00468684 . |E8 B5F80A00 CALL <JMP.&MFC42u.#800>
00468689 . |8D4C24 3C LEA ECX,DWORD PTR SS:
0046868D . |C68424 FC0F00>MOV BYTE PTR SS:,6
00468695 . |E8 1619FFFF CALL NetTrans.00459FB0
0046869A . |8D4C24 24 LEA ECX,DWORD PTR SS:
0046869E . |C68424 FC0F00>MOV BYTE PTR SS:,3
004686A6 . |E8 93F80A00 CALL <JMP.&MFC42u.#800>
004686AB . |8D4C24 20 LEA ECX,DWORD PTR SS:
004686AF . |C68424 FC0F00>MOV BYTE PTR SS:,0
004686B7 . |E8 82F80A00 CALL <JMP.&MFC42u.#800>
004686BC . |8D4C24 10 LEA ECX,DWORD PTR SS:
004686C0 . |C78424 FC0F00>MOV DWORD PTR SS:,-1
004686CB . |E8 6EF80A00 CALL <JMP.&MFC42u.#800>
004686D0 . |33C0 XOR EAX,EAX
004686D2 . |E9 560C0000 JMP NetTrans.0046932D ;注意此跳,致死
004686D7 > \8D8C24 400500>LEA ECX,DWORD PTR SS:
###############################
很简单,修改此跳
00468669 . /EB 6C JMP SHORT NetTrans.004686D7 ;没跳
影音传送带已经可以运行起来了
5、发现有广告,注册才能去除广告。工具菜单有去除广告选项,但是灰色了。很容易想到使用bp EnableMenuItem函数
然后点击工具菜单,被断下。注意堆栈窗口,ItemID。菜单选项是根据这个来判断的,从0开始,去除广告在第九个位置……
未命名.gif (12.93 KB)
2008-8-11 16:32
alt+F9返回程序领空
00461FF7 .E8 D489FFFF CALL NetTrans.0045A9D0 ; \NetTrans.0045A9D0
00461FFC .8B4C24 04 MOV ECX,DWORD PTR SS:
00462000 .8B41 F8 MOV EAX,DWORD PTR DS:
00462003 .85C0 TEST EAX,EAX
00462005 . /75 17 JNZ SHORT NetTrans.0046201E ;注意此跳
00462007 . |8B7424 28 MOV ESI,DWORD PTR SS:
0046200B . |6A 00 PUSH 0
0046200D . |8BCE MOV ECX,ESI
0046200F . |8B16 MOV EDX,DWORD PTR DS:
00462011 . |FF12 CALL DWORD PTR DS:
00462013 . |8B06 MOV EAX,DWORD PTR DS:
00462015 . |6A 01 PUSH 1
00462017 . |8BCE MOV ECX,ESI
00462019 . |FF50 04 CALL DWORD PTR DS: ;从此返回
0046201C . |EB 2C JMP SHORT NetTrans.0046204A
0046201E > \8B7424 28 MOV ESI,DWORD PTR SS:
00462022 .57 PUSH EDI
00462023 .6A 01 PUSH 1
00462025 .8BCE MOV ECX,ESI
00462027 .8B16 MOV EDX,DWORD PTR DS:
00462029 .FF12 CALL DWORD PTR DS:
0046202B .8B3E MOV EDI,DWORD PTR DS:
0046202D .6A 01 PUSH 1
0046202F .68 C8425500 PUSH NetTrans.005542C8 ;UNICODE "ShowAd"
00462034 .68 DC1B5500 PUSH NetTrans.00551BDC ;UNICODE "Others"
00462039 .B9 00945500 MOV ECX,NetTrans.00559400 ;ASCII "pDS"
0046203E .E8 7D610B00 CALL <JMP.&MFC42u.#3516>
00462043 .50 PUSH EAX
00462044 .8BCE MOV ECX,ESI
00462046 .FF57 04 CALL DWORD PTR DS:
00462049 .5F POP EDI
0046204A >8D4C24 04 LEA ECX,DWORD PTR SS:
###############################
注意返回处的上面,00462005 . /75 17 JNZ SHORT NetTrans.0046201E ;注意此跳
就是关键的地方,修改为jmp,灰色菜单搞定!
6、运行发现依然会有广告。
我们返回到这里看,注意00461FF7的call,似乎是一个注册判断,然后test eax,eax,没注册jnz就不跳
00461FF7 .E8 D489FFFF CALL NetTrans.0045A9D0 ; \NetTrans.0045A9D0
00461FFC .8B4C24 04 MOV ECX,DWORD PTR SS:
00462000 .8B41 F8 MOV EAX,DWORD PTR DS:
00462003 .85C0 TEST EAX,EAX
00462005 . /75 17 JNZ SHORT NetTrans.0046201E ;注意此跳
###########
我们跟进去此call
0045A9D0/$6A FF PUSH -1
局部调用来自 0045EF8C, 0045FA40, 0045FE3E, 00461FF7, 004685D7, 0046861F, 00491EB9, 00497899
局部调用很多,猜想应该是关键的call。
因为我们发现运行程序一会儿才会出现广告栏,猜想有判断。于是在0045A9D0下断,然后重新运行程序。
运行程序过程中会被断下,可见此处是关键,算法call也会在其中。
F9继续运行,我们要的是去除广告位。
网络传送带完全运行起来后,我们等待广告出现,然后OD就断下了。
0045FE05 . /0F85 96010000 JNZ NetTrans.0045FFA1
0045FE0B . |8D4C24 2C LEA ECX,DWORD PTR SS:
0045FE0F . |E8 0CA1FFFF CALL NetTrans.00459F20
0045FE14 . |8D4C24 10 LEA ECX,DWORD PTR SS:
0045FE18 . |C78424 EC0300>MOV DWORD PTR SS:,5
0045FE23 . |E8 34810B00 CALL <JMP.&MFC42u.#540>
0045FE28 . |33FF XOR EDI,EDI
0045FE2A . |8D5424 10 LEA EDX,DWORD PTR SS:
0045FE2E . |57 PUSH EDI ; /Arg4 => 00000000
0045FE2F . |57 PUSH EDI ; |Arg3 => 00000000
0045FE30 . |57 PUSH EDI ; |Arg2 => 00000000
0045FE31 . |52 PUSH EDX ; |Arg1
0045FE32 . |8D4C24 3C LEA ECX,DWORD PTR SS: ; |
0045FE36 . |C68424 FC0300>MOV BYTE PTR SS:,6 ; |
0045FE3E . |E8 8DABFFFF CALL NetTrans.0045A9D0 ; \NetTrans.0045A9D0
0045FE43 . |8B4424 10 MOV EAX,DWORD PTR SS: ;MFC42u.5F8CB6D4 返回到这里
0045FE47 . |3978 F8 CMP DWORD PTR DS:,EDI
0045FE4A . |74 1E JE SHORT NetTrans.0045FE6A
0045FE4C . |6A 01 PUSH 1
0045FE4E . |68 C8425500 PUSH NetTrans.005542C8 ;UNICODE "ShowAd"
0045FE53 . |68 DC1B5500 PUSH NetTrans.00551BDC ;UNICODE "Others"
0045FE58 . |B9 00945500 MOV ECX,NetTrans.00559400 ;ASCII "pDS"
0045FE5D . |E8 5E830B00 CALL <JMP.&MFC42u.#3516>
0045FE62 . |85C0 TEST EAX,EAX
0045FE64 . |0F84 10010000 JE NetTrans.0045FF7A
0045FE6A > |39BE A4020000 CMP DWORD PTR DS:,EDI
0045FE70 . |74 1C JE SHORT NetTrans.0045FE8E
################################
向上找关键位置,0045FE05 . /0F85 96010000 JNZ NetTrans.0045FFA1 可跳过此call
于是修改jmp,广告顺利去掉,永远不再有!
7、注意帮助--关于网络传送带,现实依然是未注册,注册按钮可点击
这个一般方法是从OD数据窗口找到未注册的信息,然后找数据空白写入,然后偏移中修改地址,使得显示注册
注册按钮不可用可通过EnableWindow跟踪
不过,因为程序没有加壳,帮了我们的大忙。
我们用UE打开程序,搜索到Unicode的Unregistered,然后替换成我们的注册信息
然后我用ResHack修改资源,把注册按钮修改成disable,暴力破解至此完成
8、支持PYG,回报PYG,希望能够顺利加入解密小组,以后会给大家带来更多的破文和教程!
补充:今天尝试用其下载,功能方面没问题,但是14分钟左右会自动退出,用OD等待14分钟,找到关键地方。破解之……
提供一个稍微完美的版本~
[ 本帖最后由 leafstone 于 2008-8-12 18:04 编辑 ] 又一个沙发,学习了 Good Job通过了 ~~/:good 谢谢 分享 学习了`` 谢谢学习了,爆破很费时啊 CreateFile函数创建或打开下列对象,并返回一个可以用来访问这些对象的句柄。
文件
pipes
邮槽
通信资源
磁盘驱动器(仅适用于windowsNT)
控制台
文件夹(仅用于打开) 好长啊,看了半天,学习一下 谢谢 分享 学习 返回不了你这里啊
0045A113|. /74 04 JE SHORT NetTrans.0045A119 ;跳了
0045A115|. |8B7424 60 MOV ESI,DWORD PTR SS:
0045A119|> \8D4C24 14 LEA ECX,DWORD PTR SS:
我怎么返回到了这?
00F5A361 8BF0 mov esi, eax
00F5A363 83FE FF cmp esi, -1
00F5A366 0F84 83000000 je 00F5A3EF
00F5A36C 55 push ebp
00F5A36D 8B2D 1450F800 mov ebp, dword ptr [<&KERNEL32.SetFi>; kernel32.SetFilePointer
00F5A373 57 push edi
00F5A374 6A 02 push 2
00F5A376 6A 00 push 0
堆栈信息
0012EE78 00401000NetTrans.00401000
0012EE7C 0012EF40
0012EE80 0045B349RETURN to NetTrans.0045B349
0012EE84 00401000NetTrans.00401000
0012EE88 00000124
0012EE8C 0012EEB8
0012EE90 00000030
0012EE94 0039BDD0ASCII "C:\Program Files\Xi\NetXfer\NetTransport.exe.mqm"
0012EE98 7C80B3D5kernel32.GetModuleFileNameW
0012EE9C 0055E8E0NetTrans.0055E8E0
0012EEA0 77C17EE3msvcrt.wcscmp
0012EEA4 FFFFFF00
0012EEA8 00398A48UNICODE ".mqm"
0012EEAC 0053F20CNetTrans.0053F20C
0012EEB0 00000031
0012EEB4 0039BDD0ASCII "C:\Program Files\Xi\NetXfer\NetTransport.exe.mqm"
0012EEB8 A93F5416
0012EEBC C6F8EFA2
0012EEC0 C1C34BF5
0012EEC4 41D8D70A
0012EEC8 A08483D0
0012EECC 4B7C27DE
0012EED0 BF65B697
0012EED4 AEB916EA
0012EED8 BA920C3B
0012EEDC 00000000
0012EEE0 00000000
0012EEE4 00000000
0012EEE8 0012FEF8Pointer to next SEH record
0012EEEC 00524848SE handler
0012EEF0 00000003
0012EEF4 004697C6RETURN to NetTrans.004697C6 from NetTrans.0045B200
0012EEF8 00000000
0012EEFC 00559C20UNICODE ".bqm"
0012EF00 00398DA8UNICODE "C:\Program Files\Xi\NetXfer\NetTransport.exe.mqm"
0012EF04 0055E8E0NetTrans.0055E8E0
0012EF08 0055E8E0NetTrans.0055E8E0
0012EF0C 0012FFC0
0012EF10 FFFFFFFF
0012EF14 00398928UNICODE "C:\Program Files\Xi\NetXfer\"
页:
[1]
2