Сейчас на форуме: (+4 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Поиск байтов в DCU |
Посл.ответ | Сообщение |
|
Создано: 22 июля 2006 13:54 · Личное сообщение · #1 Ломаю один компонент. Скомпилил прогу. Нашёл надоедливое окошко. Удалил его. Всё нормально, а вот как всё это в dcu файле поправить никак не пойму. Вот, что я исправил: 0043D958 53 push ebx ; /Style 0043D959 57 push edi ; |Title 0043D95A 56 push esi ; |Text 0043D95B 8B45 FC mov eax, dword ptr ss:[ebp-4] ; | 0043D95E 8B40 24 mov eax, dword ptr ds:[eax+24] ; | 0043D961 50 push eax ; |hOwner 0043D962 E8 118EFCFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA теперь всё выглядит вот так 0043D958 90 nop ; /Style 0043D959 90 nop ; |Title 0043D95A 90 nop ; |Text 0043D95B 90 nop ; | 0043D95C 90 nop 0043D95D 90 nop 0043D95E 90 nop ; | 0043D95F 90 nop 0043D960 90 nop 0043D961 90 nop ; |hOwner 0043D962 90 nop ; \MessageBoxA 0043D963 90 nop 0043D964 90 nop 0043D965 90 nop 0043D966 90 nop Никак не могу найти нужную последовательность байтов, а именно 53 57 56 8B 45 FC 8B 40 24 50 E8 11 8E FC FF Что посоветуете? ![]() |
|
Создано: 22 июля 2006 15:39 · Личное сообщение · #2 |
|
Создано: 22 июля 2006 15:57 · Личное сообщение · #3 |
|
Создано: 23 июля 2006 21:06 · Личное сообщение · #4 |
|
Создано: 24 июля 2006 09:32 · Личное сообщение · #5 Возможно на примере кто-нить может помочь. Для примера кидаю саму dcuшку. Мне главное понять как всё это работает. И ещё возможно кто нибуть ломал компонент ThemeEngine киньте информацию ![]() ![]() |
|
Создано: 24 июля 2006 10:49 · Поправил: tundra37 · Личное сообщение · #6 RENEGADE В этой DCU такой последовательности команд нет. Единственное обращение к MessageBox такое : 00000000 : // -- Line #240 --
![]() |
|
Создано: 24 июля 2006 11:03 · Личное сообщение · #7 |
|
Создано: 24 июля 2006 12:17 · Личное сообщение · #8 tundra37 пишет: В этой DCU такой последовательности команд нет. Единственное обращение к MessageBox такое : 00000000 : // -- Line #240 -- 00000031 : 68 40 10 00 00 PUSH $00001040 00000036 : B9(68 00 00 00 MOV ECX,TumdcComponent.Create{0x8C}+104 0000003B : BA(78 00 00 00 MOV EDX,TumdcComponent.Create{0x8C}+120 00000040 : A1(00 00 00 00 MOV EAX,DWORD PTR [Application{0x44}] 00000045 : 8B 00 ... . .. MOV EAX,DWORD PTR [EAX] 00000047 : E8(00 00 00 00 CALL TApplication.MessageBox{0x46} Занопил всю эту последовательность байтов и всё прекрасно заработало. Окошко исчезло. А мог бы ты мне объяснить как ты определил, что это то, что нужно. Если я не пойму принцип, то вряд ли смогу дальше работать самостоятельно. ![]() |
|
Создано: 24 июля 2006 13:21 · Личное сообщение · #9 RENEGADE пишет: А мог бы ты мне объяснить как ты определил, что это то, что нужно. Запустил DeDe и поискал в результатах MessageBox. Почему последовательности такие разные - не знаю. Принцип один : для каждого формата свой "заточенный" инструмент Кстати, я ничего не определял - там всего один вызов. Запросто может целая серия сообщений исчезнуть кроме твоего или вообще все ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Поиск байтов в DCU |
Эта тема закрыта. Ответы больше не принимаются. |