Господа программеры. Есть комбобокс.Точнее-два.Первый можно изменить в Рестораторе object edProfile: TcxComboBox Left = 465 Top = 16 Width = 148 Height = 21 Properties.Alignment.Vert = taBottomJustify Properties.DropDownListStyle = lsFixedList Style.BorderStyle = ebsFlat TabOrder = 1 второй-неизменяемый object edStartURL: TcxComboBox Left = 162 Top = 17 Width = 257 Height = 21 PopupMenu = WebAppSearch.EditorsPopup Properties.Alignment.Vert = taBottomJustify Style.BorderStyle = ebsFlat TabOrder = 0 В этом боксе три урла, которые используются для поиска. Вопрос такой: можно ли как-то разлочить этот комбокс в скомпилированной проге? Под отладчиком.Как можно найти в дизассемблерном листинге свойства и изменить их? Исходников нет.Прога на Делфи.
Ну, скажем я вызов найду. А как параметры изменить?Прога не маленькая, и только EnableWin раз 30 вызывается. И можно про параметры поподробней.Какой за каким идет? Или методом тыка.
The EnableWindow function enables or disables mouse and keyboard input to the specified window or control. When input is disabled, the window does not receive input such as mouse clicks and key presses. When input is enabled, the window receives all input. Syntax BOOL EnableWindow( HWND hWnd, BOOL bEnable ); Parameters hWnd [in] Handle to the window to be enabled or disabled. bEnable [in] Specifies whether to enable or disable the window. If this parameter is TRUE, the window is enabled. If the parameter is FALSE, the window is disabled.
Для исследования программ на Дельфях есть средство под названием DeDe. Можешь прислать мне прогу, у меня есть доп. тулза
Нужно найти, в каком месте программы устанавливается соответствующее свойство комбобокса, если в коде - меняешь 0 на 1. Но по любому надо сначала прогу дизассемблировать. А найти нужное место поможет DeDe.
Бокс прописан в DATA. DeDe эту форму не открывает. Вернее открывает, но этого бокса на ней нету. 0 на 1 я поменять могу. Вот может кто подскажет, где поменять? Вот кусок листинга 005C4B7B . 54 63 78 43 75>ASCII "TcxCustomComboBo" 005C4B8B . 78 ASCII "x" 005C4B8C 08 DB 08 005C4B8D . 07 DB 07 005C4B8E . 41 43 61 6E 76>ASCII "ACanvas" 005C4B95 . 09 DB 09 005C4B96 . 54 63 78 43 61>ASCII "TcxCanvas" 005C4B9F 00 DB 00 005C4BA0 . 06 DB 06 005C4BA1 . 41 49 6E 64 65>ASCII "AIndex" 005C4BA7 . 07 DB 07 005C4BA8 . 49 6E 74 65 67>ASCII "Integer" 005C4BAF 12 DB 12 005C4BB0 . 05 DB 05 005C4BB1 . 41 52 65 63 74>ASCII "ARect" 005C4BB6 . 05 DB 05 005C4BB7 . 54 52 65 63 74>ASCII "TRect" 005C4BBC 00 DB 00 005C4BBD . 06 DB 06 005C4BBE . 41 53 74 61 74>ASCII "AState" 005C4BC4 . 0F DB 0F 005C4BC5 . 54 4F 77 6E 65>ASCII "TOwnerDrawState" 005C4BD4 00 DB 00 Так же в Дате есть и свойства, а от каждого идет DD на булеан, где выбирается фалс или тру.Конечно все это потом проверяется в коде.Но в том-то и дело, что в коде я найти это не могу. А ловиться только на мемори-ассес 00403FB9 |. 57 PUSH EDI 00403FBA |. 89D7 MOV EDI, EDX 00403FBC |. 8B70 D4 MOV ESI, DWORD PTR DS:[EAX-2C] ; wvs.005C568C 00403FBF |. 31C9 XOR ECX, ECX 00403FC1 |. 8A0E MOV CL, BYTE PTR DS:[ESI] 00403FC3 |. 41 INC ECX 00403FC4 |. F3:A4 REP MOVS BYTE PTR ES:[EDI], BYTE PTR> //вот здесь 00403FC6 |. 5F POP EDI ; 0108065C 00403FC7 |. 5E POP ESI ; 0108065C 00403FC8 \. C3 RETN И где чего тут поменять? Я чота не въеду. На EnableWin он не ловится, но можно поставить бряк на него, или на строку, которая в него вбита. И может меня не так поняли, но он активен, но его нельзя редактировать. На этом боксе, собсно, и стоит защита. Пока он не работает-прога не функциональна. crypto Прога - 6метров.На сколько кусков порезать? =) Чо за тулза?Может выложишь где?Если весчь полезная.
Сорри за ОФФ Моя девушка далека от программирования. Увидев название темы "Можно ли изменить под отладчиком?" спросила: "А кто кому изменять собрался?"
Берешь свою прогу, запускаешь айс, запускаешь спай, смотришь хэндл своего комба, ставишьбряку на соответствующий месадж в айсе, ловишь бряку и смотриш в каком месте всё это безобразие. Дальше делаешь что тебе надо.
stahh этого бокса на ней нету Скорее всего он во время исполнения создается. Прогу сожми РАРом на куски по 2 метра. Шли на crypto2001@hotmail.ru Тулза - вещь полезная, но она в процессе доведения до ума...
CARDINAL Вот я тоже так думал.И все это уже проделывал. Но бряк срабатывает в функции, кот. вызывается при любом хандле(окне).Если я ее пропатчу, прога просто падает при первом же вызове. Этот бокс-функционал проги. И я думаю, что он создается и устанавливаются свойства при самом запуске.Когда прога проверяет - демо-не демо. Дальше ставится на бокс лок.И его какбы нет.Т.е. его изменение штатными средствами самой проги - не возможно. Пока не будет дописан кусок кода, кот. это дело изменяет. Поэтому после запуска я не могу отследить установку свойств. Вот как это сделать на старте. Может поставить бряк на DropDownList ? HitmaN85 Рулезззззззззз! Привет подруге. Я чать со стула не упал.Хорошо у меня кресло =)
для начала посмотри в ресурсах свой комво икакие у него свойства по умолчанию, найдёшь исправь а потом брякай EnableWindow, у каждогоокна есть свой Caption, ClassName, Style, опирайся на эти параметры
CARDINAL Не, ну я конечно чайник. Но не ламер. Все эти трюки я уже пробовал.На EnableWindow этот бокс не реагирует.Можно поймать на DrawText. Можно на хендл. Но что это даст?Бокс не на основной форме. При любом переключении хендл меняется. Я проверял на SetFocus.Да и еслиб не менялся ?! Свойства остаются те же. На панели два бокса. В одном три урла, во втором - скрипты.У второго стиль - DropDown Style=lsFixedList. В Рестораторе меняю на DropDown,- и можно писать в боксе любую фигню. А первый стиля вообще не имеет.В ресурсах. Изменениям не поддается. Даже размер нельзя поменять. Добавления нового свойства вызывает ошибку, типа такого свойства нет. Но если я чего не доганяю, то на пальцах покажи.Типа, ставь бряк сюда, потом смотри там, и т.д. И если есть в наличии, то покажи кусок кода, где устанавливаются свойства. Хоть примерно буду знать, как это выглядит.
Значица, открываешь файл wvs.exe, переходишь на смещение 398DBCh от начал файла, находишь следующие строки xor edx, edx mov eax, [ebx+2A4h] //edStartURL mov ecx, [eax] call Dword Ptr [ecx+64h] //SetEnabled исправляешь xor edx, edx (33h, 0D2h) на mov dl, 1 (0B2h, 1). И еще хочу тебя огорчить - это действительно evaluation версия, например, при сохранении файла вызывается чисто MessageBox с этой огорчительной новостью...
Должно сработать, я у себя не пробовал, некогда... Правда там есть еще один подозрительный фрагмент, но надо сначала попробовать мой рецепт.
Ну во первых у меня по этому смещению вот такое 00798DBB |. E8 F0C1C6FF CALL wvs.00404FB0 00798DC0 |. 33D2 XOR EDX, EDX 00798DC2 |. 8B83 88020000 MOV EAX, DWORD PTR DS:[EBX+288] 00798DC8 |. 8B08 MOV ECX, DWORD PTR DS:[EAX] ; wvs.00761364 00798DCA |. FF51 64 CALL NEAR DWORD PTR DS:[ECX+64] У тебя билд какой? Во вторых такую последовательность я нашел, переправил, но бокс как был нередактируемый,-так и остался. Ты лучше весь кусок покажи. Чо там рядом есть? И вот это call Dword Ptr [ecx+64h] //SetEnabled из Оли или Иды ?