![]() |
eXeL@B —› Вопросы новичков —› Взлом ThemeEngine 6.05 |
Посл.ответ | Сообщение |
|
Создано: 24 июля 2006 14:06 · Поправил: RENEGADE · Личное сообщение · #1 Я думаю нет необходимости говорить, что это за библиотека. При запуске она выдаёт окно, что неплохо бы купить эту библиотеку. Вызов этого окна осуществляется в файле te_engine.dcu. Процедура называется ShowVersion2 Вот что говорит DeDe Warning: used unit "ImgList" not found or incorrect - all imported names will be shown with unit names unit te_engine; {Source files: ..\te_engine.pas (23.11.2005 1:43:04), te_define.inc (17.06.2006 0:10:36), te_engine.inc (17.06.2006 18:55:12)} interface uses te_const { A:SNoTheme, A:SPreviewButton}, te_version { T:TTeThemeVersion, A:SThemeEngineVersion, A:ShowVersion2}, te_themecontrols, procedure te_engine; begin 00000000 : 83 2D(00 00 00 00 01 SUB DWORD PTR [_NV_20F],1 00000007 : 73 0F JNB +15; (0x18) 00000009 : A1(00 00 00 00 MOV EAX,DWORD PTR [_DV_TTeThemeStream{0x203}] 0000000E : E8(00 00 00 00 CALL RegisterClass{0x189} 00000013 : E8(00 00 00 00 CALL ShowVersion2{0x7} 00000018 : C3( RET NEAR end; ![]() |
|
Создано: 24 июля 2006 14:17 · Личное сообщение · #2 |
|
Создано: 25 июля 2006 07:35 · Личное сообщение · #3 В результате проведённых изысканий найден фрагмент кода: 004C54F3 6A 00 PUSH 0 ; /Arg3 = 00000000 004C54F5 53 PUSH EBX ; |Arg2 = 7FFDE000 004C54F6 56 PUSH ESI ; |Arg1 = FFFFFFFF 004C54F7 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; | 004C54FA 50 PUSH EAX ; |/Arg1 = 00000000 004C54FB B8 54554C00 MOV EAX,004C5554 ; ||ASCII "ThemeEngine version 6.05" 004C5500 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX ; || 004C5503 C645 F8 0B MOV BYTE PTR SS:[EBP-8],0B ; || 004C5507 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C] ; || 004C550A 33C9 XOR ECX,ECX ; || 004C550C B8 78554C00 MOV EAX,004C5578 ; ||ASCII "This application uses a trial sion of ThemeEngine.",CR,LF,CR,> 004C5511 E8 9E43F4FF CALL 004098B4 ; |\Project1.004098B4 004C5516 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; | 004C5519 66:8B0D D4564C00 MOV CX,WORD PTR DS:[4C56D4] ; | 004C5520 B2 02 MOV DL,2 ; | 004C5522 E8 4DB2F8FF CALL 00450774 ; \Project1.00450774 Если его занопить, то в программе окно исчезает, в dcu файле te_version найден похожий фрагмент 0000004B : 6A 00 PUSH $00 0000004D : 53 PUSH EBX 0000004E : 56 PUSH ESI 0000004F : 8D 45 FC LEA EAX,DWORD PTR [EBP-4] 00000052 : 50 PUSH EAX 00000053 : B8(AC 00 00 00 MOV EAX,ShowVersion2{0x20}+172 00000058 : 89 45 F4 MOV DWORD PTR [EBP-12],EAX 0000005B : C6 45 F8 0B MOV BYTE PTR [EBP-8],$0B 0000005F : 8D 55 F4 LEA EDX,DWORD PTR [EBP-12] 00000062 : 33 C9 XOR ECX,ECX 00000064 : B8(D0 00 00 00 MOV EAX,ShowVersion2{0x20}+208 00000069 : E8(00 00 00 00 CALL Format{0xD} 0000006E : 8B 45 FC MOV EAX,DWORD PTR [EBP-4] 00000071 : 66 8B 0D(2C 02 00 00 MOV CX,WORD PTR [ShowVersion2{0x20}+556] 00000078 : B2 02 MOV DL,$02 0000007A : E8(00 00 00 00 CALL MessageDlgPos{0x14} Однако, если исправить его то вылетает ошибка. В чём может быть проблемма? ![]() ![]() |
|
Создано: 25 июля 2006 12:11 · Личное сообщение · #4 |
|
Создано: 25 июля 2006 12:16 · Личное сообщение · #5 |
|
Создано: 26 июля 2006 07:39 · Личное сообщение · #6 |
|
Создано: 26 июля 2006 13:43 · Личное сообщение · #7 |
|
Создано: 26 июля 2006 15:09 · Личное сообщение · #8 Самое интересное, что если занопить практически всю процедуру 0051E444 . 55 PUSH EBP 0051E445 . 8BEC MOV EBP,ESP 0051E447 . 33C0 XOR EAX,EAX 0051E449 . 55 PUSH EBP 0051E44A . 68 DCE45100 PUSH 0051E4DC 0051E44F . 64:FF30 PUSH DWORD PTR FS:[EAX] 0051E452 . 64:8920 MOV DWORD PTR FS:[EAX],ESP 0051E455 . FF05 50F95700 INC DWORD PTR DS:[57F950] 0051E45B . 75 71 JNZ SHORT 0051E4CE 0051E45D . E8 0AD5FDFF CALL 004FB96C 0051E462 . A1 84F95700 MOV EAX,DWORD PTR DS:[57F984] 0051E467 . E8 A84AEEFF CALL 00402F14 0051E46C . 833D 4CF95700 00 CMP DWORD PTR DS:[57F94C],0 0051E473 . 74 0A JE SHORT 0051E47F 0051E475 . A1 4CF95700 MOV EAX,DWORD PTR DS:[57F94C] 0051E47A . E8 954AEEFF CALL 00402F14 0051E47F > 833D F0645600 00 CMP DWORD PTR DS:[5664F0],0 0051E486 . 74 1C JE SHORT 0051E4A4 0051E488 . A1 F0645600 MOV EAX,DWORD PTR DS:[5664F0] 0051E48D . 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4] 0051E490 . 8B15 047B5600 MOV EDX,DWORD PTR DS:[567B04] ; Project1.005687D8 0051E496 . 3B02 CMP EAX,DWORD PTR DS:[EDX] 0051E498 . 75 0A JNZ SHORT 0051E4A4 0051E49A . B8 F0645600 MOV EAX,005664F0 0051E49F . E8 58F2EEFF CALL 0040D6FC 0051E4A4 > B8 C0655600 MOV EAX,005665C0 0051E4A9 . B9 0B000000 MOV ECX,0B 0051E4AE . 8B15 E0104000 MOV EDX,DWORD PTR DS:[4010E0] ; Project1.004010E4 0051E4B4 . E8 8364EEFF CALL 0040493C 0051E4B9 . B8 4C655600 MOV EAX,0056654C 0051E4BE . B9 0B000000 MOV ECX,0B 0051E4C3 . 8B15 D4104000 MOV EDX,DWORD PTR DS:[4010D4] ; Project1.004010D8 0051E4C9 . E8 6E64EEFF CALL 0040493C 0051E4CE > 33C0 XOR EAX,EAX 0051E4D0 . 5A POP EDX ; kernel32.77E7EB69 0051E4D1 . 59 POP ECX ; kernel32.77E7EB69 0051E4D2 . 59 POP ECX ; kernel32.77E7EB69 0051E4D3 . 64:8910 MOV DWORD PTR FS:[EAX],EDX 0051E4D6 . 68 E3E45100 PUSH 0051E4E3 0051E4DB > C3 RETN ; RET used as a jump to 0051E4E3 0051E4DC .^ E9 9351EEFF JMP 00403674 0051E4E1 .^ EB F8 JMP SHORT 0051E4DB 0051E4E3 > 5D POP EBP ; kernel32.77E7EB69 0051E4E4 . C3 RETN 0051E4E5 8D40 00 LEA EAX,DWORD PTR DS:[EAX] 0051E4E8 55 PUSH EBP 0051E4E9 8BEC MOV EBP,ESP 0051E4EB 83C4 F4 ADD ESP,-0C 0051E4EE 832D 50F95700 01 SUB DWORD PTR DS:[57F950],1 0051E4F5 0F83 F4000000 JNB 0051E5EF 0051E4FB B8 58E25100 MOV EAX,0051E258 0051E500 E8 DF54EEFF CALL 004039E4 0051E505 B8 ACE25100 MOV EAX,0051E2AC 0051E50A E8 F154EEFF CALL 00403A00 0051E50F B8 E8E35100 MOV EAX,0051E3E8 0051E514 E8 0755EEFF CALL 00403A20 0051E519 A1 EC645600 MOV EAX,DWORD PTR DS:[5664EC] 0051E51E A3 EC645600 MOV DWORD PTR DS:[5664EC],EAX 0051E523 C705 B8F85700 9400>MOV DWORD PTR DS:[57F8B8],94 0051E52D 68 B8F85700 PUSH 0057F8B8 ; /pVersionInformation = Project1.0057F8B8 0051E532 E8 358BEEFF CALL <JMP.&kernel32.GetVersionExA> ; \GetVersionExA 0051E537 833D C8F85700 02 CMP DWORD PTR DS:[57F8C8],2 0051E53E 0F9405 B4F85700 SETE BYTE PTR DS:[57F8B4] 0051E545 833D C8F85700 01 CMP DWORD PTR DS:[57F8C8],1 0051E54C 75 09 JNZ SHORT 0051E557 0051E54E 833D C0F85700 00 CMP DWORD PTR DS:[57F8C0],0 0051E555 77 04 JA SHORT 0051E55B 0051E557 33C0 XOR EAX,EAX 0051E559 EB 02 JMP SHORT 0051E55D 0051E55B B0 01 MOV AL,1 0051E55D A2 B5F85700 MOV BYTE PTR DS:[57F8B5],AL 0051E562 E8 F9D2FEFF CALL 0050B860 0051E567 A1 E0574F00 MOV EAX,DWORD PTR DS:[4F57E0] 0051E56C 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX 0051E56F A1 A4554F00 MOV EAX,DWORD PTR DS:[4F55A4] 0051E574 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX 0051E577 A1 C4564F00 MOV EAX,DWORD PTR DS:[4F56C4] 0051E57C 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 0051E57F 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C] 0051E582 BA 02000000 MOV EDX,2 0051E587 E8 2829EFFF CALL 00410EB4 0051E58C BA 10E25100 MOV EDX,0051E210 0051E591 A1 00684F00 MOV EAX,DWORD PTR DS:[4F6800] 0051E596 E8 F177F7FF CALL 00495D8C 0051E59B A1 94794F00 MOV EAX,DWORD PTR DS:[4F7994] 0051E5A0 E8 1328EFFF CALL 00410DB8 0051E5A5 A1 3C784F00 MOV EAX,DWORD PTR DS:[4F783C] 0051E5AA E8 0928EFFF CALL 00410DB8 0051E5AF B8 54F95700 MOV EAX,0057F954 0051E5B4 33C9 XOR ECX,ECX 0051E5B6 BA 2C000000 MOV EDX,2C 0051E5BB E8 3446EEFF CALL 00402BF4 0051E5C0 E8 93A7FEFF CALL 00508D58 0051E5C5 B8 88F95700 MOV EAX,0057F988 0051E5CA 33C9 XOR ECX,ECX 0051E5CC BA 2C000000 MOV EDX,2C 0051E5D1 E8 1E46EEFF CALL 00402BF4 0051E5D6 8B0D 047B5600 MOV ECX,DWORD PTR DS:[567B04] ; Project1.005687D8 0051E5DC 8B09 MOV ECX,DWORD PTR DS:[ECX] ; ntdll.77F7F20F 0051E5DE B2 01 MOV DL,1 0051E5E0 A1 1CAC4F00 MOV EAX,DWORD PTR DS:[4FAC1C] 0051E5E5 E8 221AFFFF CALL 0051000C 0051E5EA A3 F0645600 MOV DWORD PTR DS:[5664F0],EAX 0051E5EF 8BE5 MOV ESP,EBP 0051E5F1 5D POP EBP ; kernel32.77E7EB69 0051E5F2 C3 RETN 0051E5F3 90 NOP 0051E5F4 2D 20546865 SUB EAX,65685420 0051E5F9 6D INS DWORD PTR ES:[EDI],DX ; I/O command 0051E5FA 65:57 PUSH EDI ; Superfluous prefix 0051E5FC 697A 61 72642076 IMUL EDI,DWORD PTR DS:[EDX+61],76206472 0051E603 65:72 73 JB SHORT 0051E679 ; Superfluous prefix 0051E606 696F 6E 20322E30 IMUL EBP,DWORD PTR DS:[EDI+6E],302E3220 0051E60D 3120 XOR DWORD PTR DS:[EAX],ESP 0051E60F 2D 20443520 SUB EAX,20354420 0051E614 2D 20436F70 SUB EAX,706F4320 0051E619 79 72 JNS SHORT 0051E68D 0051E61B 6967 68 74202843 IMUL ESP,DWORD PTR DS:[EDI+68],43282074 0051E622 2920 SUB DWORD PTR DS:[EAX],ESP 0051E624 3230 XOR DH,BYTE PTR DS:[EAX] 0051E626 30342D 32303035 XOR BYTE PTR DS:[EBP+35303032],DH 0051E62D 2062 79 AND BYTE PTR DS:[EDX+79],AH 0051E630 2045 75 AND BYTE PTR SS:[EBP+75],AL 0051E633 67:65:6E OUTS DX,BYTE PTR ES:[DI] ; I/O command 0051E636 65:204B 72 AND BYTE PTR GS:[EBX+72],CL 0051E63A 79 75 JNS SHORT 0051E6B1 0051E63C 6B6F 76 20 IMUL EBP,DWORD PTR DS:[EDI+76],20 0051E640 2D 00000055 SUB EAX,55000000 0051E645 8BEC MOV EBP,ESP 0051E647 83C4 F4 ADD ESP,-0C 0051E64A 53 PUSH EBX 0051E64B 56 PUSH ESI 0051E64C 33C0 XOR EAX,EAX 0051E64E 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 0051E651 33C0 XOR EAX,EAX 0051E653 55 PUSH EBP 0051E654 68 D9E65100 PUSH 0051E6D9 0051E659 64:FF30 PUSH DWORD PTR FS:[EAX] 0051E65C 64:8920 MOV DWORD PTR FS:[EAX],ESP 0051E65F A1 607D5600 MOV EAX,DWORD PTR DS:[567D60] 0051E664 8B00 MOV EAX,DWORD PTR DS:[EAX] 0051E666 E8 5950F3FF CALL 004536C4 0051E66B 2D 90010000 SUB EAX,190 0051E670 E8 9F45EEFF CALL 00402C14 0051E675 8BD8 MOV EBX,EAX 0051E677 A1 607D5600 MOV EAX,DWORD PTR DS:[567D60] 0051E67C 8B00 MOV EAX,DWORD PTR DS:[EAX] 0051E67E E8 3550F3FF CALL 004536B8 0051E683 2D C8000000 SUB EAX,0C8 0051E688 E8 8745EEFF CALL 00402C14 0051E68D 8BF0 MOV ESI,EAX 0051E68F 6A 00 PUSH 0 ; /Arg3 = 00000000 0051E691 53 PUSH EBX ; |Arg2 = 7FFDF000 0051E692 56 PUSH ESI ; |Arg1 = 00000000 0051E693 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; | 0051E696 50 PUSH EAX ; |/Arg1 = 00000000 0051E697 B8 F0E65100 MOV EAX,0051E6F0 ; ||ASCII "ThemeWizard version 2.01" 0051E69C 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX ; || 0051E69F C645 F8 0B MOV BYTE PTR SS:[EBP-8],0B ; || 0051E6A3 8D55 F4 LEA EDX,DWORD ![]() |
|
Создано: 26 июля 2006 15:26 · Личное сообщение · #9 В программе вызов окошка крутить вокруг во этого кода 0040397C > /8B04DF MOV EAX,DWORD PTR DS:[EDI+EBX*8] ; Project1.00406C90 0040397F . |43 INC EBX 00403980 . |891D B0845600 MOV DWORD PTR DS:[5684B0],EBX 00403986 . |85C0 TEST EAX,EAX ; Project1.00406EF4 00403988 . |74 02 JE SHORT 0040398C 0040398A . |FFD0 CALL EAX ; Project1.00406EF4 0040398C > |3BF3 CMP ESI,EBX 0040398E .^\7F EC JG SHORT 0040397C При определённом условии срабатывает вызов FFD0 CALL EAX В EAX в это время занесено 00563270 И появляется ненужное мне окошко. После нажатия на кнопку OK. Всё перескакивает на 00564967 . E8 F40EEFFF CALL 00455860 Специалисты напрягите мозги. Как обойти всё это. Как ломануть в программе, это и я могу. Как ломануть в компоненте не получается. Неужели оскудела земля Русская!!!! ![]() |
|
Создано: 28 июля 2006 10:35 · Личное сообщение · #10 Показ нага осуществляется вот этой процедурой procedure ShowVersion2; const AboutText = 'This application uses a trial version of SkinEngine.'#13#10#13#10 + 'Please contact the provider of the application for a registered version.'#13#10 + #13#10+ '%s'#13#10 + 'Copyright (C) 2001-2002 by Evgeny Kryukov'#13#10 + #13#10 + 'For conditions of distribution and use, see LICENSE.TXT.'#13#10 + #13#10 + 'Visit our web site for the latest versions of SkinEngine:'#13#10 + #13#10 + 'http://www.ksdev.com/' + #13#10 + 'support@ksdev.com'; var X, Y: integer; begin X := Random(Screen.Width - 400); Y := Random(Screen.Height - 200); MessageDlgPos(Format(AboutText, [sSeSkinVersionPropText]), mtInformation, [mbOK], 0, X, Y); end; Как найти откуда она вызывается и нейтрализовать её. ![]() |
|
Создано: 28 июля 2006 11:46 · Личное сообщение · #11 |
|
Создано: 28 июля 2006 12:20 · Личное сообщение · #12 |
![]() |
eXeL@B —› Вопросы новичков —› Взлом ThemeEngine 6.05 |