Сейчас на форуме: (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Поиск байтов в DCU
Посл.ответ Сообщение

Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 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
Что посоветуете?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 июля 2006 15:39
· Личное сообщение · #2

RENEGADE пишет:
а вот как всё это в dcu файле
....................................................
0043D962 E8 118EFCFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA

В DCU эта команда явно не такая. Там стоит не адрес, а еще что-то.
Как говаривал Ильич : "Лучше меньше, да лучше".




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 22 июля 2006 15:57
· Личное сообщение · #3

Угу, сигнатурку поищи другую, попороще




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 23 июля 2006 21:06
· Личное сообщение · #4

DCU это обыкновенный объектный файл. ессно все адреса другие.
ищи последовательность команд которая не содержит обращений к глобальным переменным и других адресов.
также можешь попробовать использовать поиск по маске в hiew.



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 июля 2006 09:32
· Личное сообщение · #5

Возможно на примере кто-нить может помочь.

Для примера кидаю саму dcuшку.

Мне главное понять как всё это работает.
И ещё возможно кто нибуть ломал компонент ThemeEngine киньте информацию

3665_24.07.2006_CRACKLAB.rU.tgz - dcInternal.dcu



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 июля 2006 10:49 · Поправил: tundra37
· Личное сообщение · #6

RENEGADE
В этой 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}




Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 24 июля 2006 11:03
· Личное сообщение · #7

Попробуй заменить 16A6: 74 на 16A6: EB



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 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}


Занопил всю эту последовательность байтов и всё прекрасно заработало. Окошко исчезло. А мог бы ты мне объяснить как ты определил, что это то, что нужно. Если я не пойму принцип, то вряд ли смогу дальше работать самостоятельно.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 июля 2006 13:21
· Личное сообщение · #9

RENEGADE пишет:
А мог бы ты мне объяснить как ты определил, что это то, что нужно.

Запустил DeDe и поискал в результатах MessageBox. Почему последовательности такие разные - не знаю. Принцип один : для каждого формата свой "заточенный" инструмент
Кстати, я ничего не определял - там всего один вызов. Запросто может целая серия сообщений исчезнуть кроме твоего или вообще все


 eXeL@B —› Вопросы новичков —› Поиск байтов в DCU
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати