Throttle
电脑报2003年光盘软件
网络加速类
Throttle is not free software. You are required to pay a registration fee and register the software if you wish to continue using it after an evaluation period of not exceeding 28 days.
The software itself is not time limited in days. However the software is disabled in the shareware package.
When you register the software you will receive a serial number which you must enter in the program's registration screen. After this serial number is entered you will be able to select the 'Fastest' setting. The 'Fastest' setting will then optimize modem performance for optimal speed.
壳保护:
PECompact 1.68 - 1.84 -> Jeremy Collake
Peid扫描,发现OEP,这一回发现,Peid不听话!!!
第一篇:脱壳
Peid扫描得到OEP:0047D6A0
依据这个OEP,用电脑内的脱壳工具,脱壳失败!!!!只好手动了!
这里才是真正的OEP!!!
0047DEE0 55 push ebp 到这里时,用OD的脱壳插件,脱之,不用修复,完全可以正常使用!!
0047DEE1 8BEC mov ebp,esp
0047DEE3 B9 09000000 mov ecx,9
0047DEE8 6A 00 push 0
0047DEEA 6A 00 push 0
0047DEEC 49 dec ecx
0047DEED ^ 75 F9 jnz short Throttle.0047DEE8
重放一下全过程:
OD载入,停在这里:
004F2000 T> /EB 06 jmp short Throttle.004F2008
004F2002 |68 E0DE0700 push 7DEE0
004F2007 |C3 retn
004F2008 \9C pushfd 开始处理了!
004F2009 60 pushad
004F200A E8 02000000 call Throttle.004F2011 F7跟进,开始不知道,那个Call要进去,好在这种壳,Call并不多,我就每个Call都跟进,为的是怕它不小心就飞了!
004F318E 56 push esi
004F318F FF95 DA904000 call dword ptr ss:[ebp+4090DA] ; Throttle.004F63A0 这里又一Call,再跟进,然后慢慢F8单步
004F63AE 8A06 mov al,byte ptr ds:[esi]
004F63B0 46 inc esi
004F63B1 8807 mov byte ptr ds:[edi],al
004F63B3 47 inc edi
004F63B4 02D2 add dl,dl
004F63B6 75 05 jnz short Throttle.004F63BD
004F63B8 8A16 mov dl,byte ptr ds:[esi]
004F63BA 46 inc esi
004F63BB 12D2 adc dl,dl
004F63BD ^ 73 EF jnb short Throttle.004F63AE 这里总是往上跳,为了加快,Mouse放在下一行,然后按F4,跳过去
004F63BF 02D2 add dl,dl Mouse放在这里,按F4就下来了
004F640E 5F pop edi
004F640F 8807 mov byte ptr ds:[edi],al
004F6411 47 inc edi
004F6412 ^ EB A0 jmp short Throttle.004F63B4 这个Jmp在以后的时间里多次出现,是往回跳的,往回跳,当然是在作解壳操作,Mouse放在下一行,按F4
004F6414 B8 01000000 mov eax,1 Mouse放在这一行,按F4,跳下来
004F31FF 6A 00 push 0
004F3201 FF95 41974000 call dword ptr ss:[ebp+409741] ; kernel32.VirtualAlloc 看这个Kernel32,按F8过去就行
004F3207 8BF8 mov edi,eax
004F32AE 5E pop esi
004F32AF 5F pop edi
004F32B0 ^ EB 9B jmp short Throttle.004F324D 这个Call也在往回跳,不过当Mouse放在下一行,按F4,程序就运行了,所以还得让它往回跳
004F32B2 B9 E8000000 mov ecx,0E8
看下面,发现,程序必须到达je Throttle.004F32F2
004F324F 85C0 test eax,eax
004F3251 0F84 9B000000 je Throttle.004F32F2 跟踪发现,程序应该到这里,加快些吧,我就在命令行输入G 004232F2 到那里去!
004F3257 8BD0 mov edx,eax
来到这里:
004F32F2 5F pop edi ; 00E60000
004F32F3 8BB5 E2904000 mov esi,dword ptr ss:[ebp+4090E2]
004F32F9 AD lods dword ptr ds:[esi]
004F32FA 83F8 FF cmp eax,-1
004F32FD 74 74 je short Throttle.004F3373 跟踪发现,程序必须到达这里,在命令行输入G 004F3373
来到这里:
004F3373 68 00400000 push 4000
004F3378 6A 00 push 0
004F337A 57 push edi
004F337B FF95 45974000 call dword ptr ss:[ebp+409745] 这个Call到了系统区,当要F8带过
004F339B 03FE add edi,esi
004F339D 03DE add ebx,esi
004F339F 49 dec ecx
004F33A0 74 72 je short Throttle.004F3414 G 004F3414 可以跳出这个循环!
004F33A2 78 70 js short Throttle.004F3414
004F33A4 66:8B07 mov ax,word ptr ds:[edi]
004F33A7 2C E8 sub al,0E8
004F33A9 3C 01 cmp al,1
004F33AB 76 38 jbe short Throttle.004F33E5
004F33AD 66:3D 1725 cmp ax,2517
004F33B1 74 51 je short Throttle.004F3404
004F33B3 3C 27 cmp al,27
004F33B5 75 0A jnz short Throttle.004F33C1
004F33B7 80FC 80 cmp ah,80
004F33BA 72 05 jb short Throttle.004F33C1
004F33BC 80FC 8F cmp ah,8F
004F33BF 76 05 jbe short Throttle.004F33C6
004F33C1 47 inc edi
004F33C2 43 inc ebx
004F33C3 ^ EB DA jmp short Throttle.004F339F
004F33C5 B8 8B47023C mov eax,3C02478B
004F33CA 2F das
004F33CB 75 0E jnz short Throttle.004F33DB
004F33CD 66:C1E8 08 shr ax,8
004F33D1 C1C0 10 rol eax,10
004F33D4 86C4 xchg ah,al
004F33D6 2BC3 sub eax,ebx
004F33D8 8947 02 mov dword ptr ds:[edi+2],eax
004F33DB BE 06000000 mov esi,6
004F33E0 83E9 05 sub ecx,5
004F33E3 ^ EB B6 jmp short Throttle.004F339B 这里总在往上跳,但是Mouse放在下一行,按F4程序又运行了
004F33E5 8B47 01 mov eax,dword ptr ds:[edi+1]
我就让它跳到这里吧 G 004F3414,到了这里:
004F3414 5F pop edi ; Throttle.00401000
004F3415 59 pop ecx
004F3416 33C0 xor eax,eax
004F3418 85C9 test ecx,ecx
004F341A 74 3B je short Throttle.004F3457 程序必须到004F3457
004F341C 8BF7 mov esi,edi
004F341E 33C0 xor eax,eax
004F3420 83F9 04 cmp ecx,4
004F3423 72 32 jb short Throttle.004F3457
004F3425 87DB xchg ebx,ebx
004F3427 87DB xchg ebx,ebx
004F3429 87DB xchg ebx,ebx
004F342B 87DB xchg ebx,ebx
004F342D 87DB xchg ebx,ebx
004F342F 8B1E mov ebx,dword ptr ds:[esi]
004F3431 03C3 add eax,ebx
004F3433 D1E3 shl ebx,1
004F3435 83D3 01 adc ebx,1
004F3438 33C3 xor eax,ebx
004F343A 83C6 04 add esi,4
004F343D 83E9 04 sub ecx,4
004F3440 74 15 je short Throttle.004F3457
004F3442 83F9 04 cmp ecx,4
004F3445 ^ 73 E8 jnb short Throttle.004F342F
004F3447 BA 04000000 mov edx,4
004F344C 2BD1 sub edx,ecx
004F344E 2BF2 sub esi,edx
004F3450 B9 04000000 mov ecx,4
004F3455 ^ EB D8 jmp short Throttle.004F342F 这里总是往上跳!!
G 004F3457 来到这里:
004F3457 3B85 67974000 cmp eax,dword ptr ss:[ebp+409767]
004F345D 74 4D je short Throttle.004F34AC 跳下去了!
004F345F ^ E9 4FFEFFFF jmp Throttle.004F32B3
004F3464 54 push esp
004F3465 68 69732065 push 65207369
004F346A 78 65 js short Throttle.004F34D1
004F346C 6375 74 arpl word ptr ss:[ebp+74],si
004F346F 61 popad 这个东东看着高兴
来到这里:
004F3523 80BD 6B9F4000 C3 cmp byte ptr ss:[ebp+409F6B],0C3 这里比较干什么???
004F352A /74 22 je short Throttle.004F354E
004F352C |8D95 6BA14000 lea edx,dword ptr ss:[ebp+40A16B]
004F3532 |6A 40 push 40
004F3534 |52 push edx
004F3535 |FFB5 3D974000 push dword ptr ss:[ebp+40973D]
004F353B |FFB5 39974000 push dword ptr ss:[ebp+409739]
004F3541 |E8 F40A0000 call Throttle.004F403A
004F3546 |85C0 test eax,eax
004F3548 ^|0F85 9DFDFFFF jnz Throttle.004F32EB
004F354E \61 popad 好东东呀!!!!!!!
004F354F 9D popfd 好东东呀!!!!!!!!
004F3550 50 push eax
004F3551 68 E0DE4700 push Throttle.0047DEE0 ; ASCII "U??"
004F3556 C2 0400 retn 4 这里应该回到了入口点!
果然,到了这里:
0047DEE0 55 push ebp Mouse停在这里,用OD插件,脱之,不用修复输入表,就可以用,真高兴
0047DEE1 8BEC mov ebp,esp
0047DEE3 B9 09000000 mov ecx,9
0047DEE8 6A 00 push 0
0047DEEA 6A 00 push 0
0047DEEC 49 dec ecx
0047DEED ^ 75 F9 jnz short Throttle.0047DEE8
脱壳,熟练掌握:F4 F7 F8 键,还有命令行:G命令,加快速度,要点,就是不能让程序运行起来!俗称:跑飞
现在用OD载入原程序,在命令行输入:
G 0047DEE0
就到了上面的入口点。
原来是PEid找错了入口点的原故!!看Pecompact与Aspack,UPX等等一样,是容易的壳。
只是我习惯于工具脱壳,所以我并不知道呀!
注册算法见调试论坛
18:19 2005-4-8
by wofan[OCN][PYG]
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)