![]() |
eXeL@B —› Вопросы новичков —› Добавить свой код в DLL |
Посл.ответ | Сообщение |
|
Создано: 29 октября 2006 07:15 · Личное сообщение · #1 у меня такая проблема не могу определить смешения в файле для ссылки на этот участок кода, который дописал в конец программы (там где были нули) такой код: 01093de5...MOV DWORD PTR DS:[109B1E0],2 ...................NOP ...................RETN а ссылка как: CALL 01093de5 вычислял смешения но в олке оказывается что к смешению (A6F60000) такое должно быть, добавляется A6F608F1. Это скринсейвер matrix3D rapidshare.com/files/1160852/MATRIX3D.7z.html который сделан как DLL ![]() |
|
Создано: 29 октября 2006 07:48 · Личное сообщение · #2 |
|
Создано: 29 октября 2006 09:50 · Личное сообщение · #3 |
|
Создано: 29 октября 2006 09:54 · Личное сообщение · #4 |
|
Создано: 29 октября 2006 10:20 · Личное сообщение · #5 |
|
Создано: 30 октября 2006 03:52 · Личное сообщение · #6 |
|
Создано: 30 октября 2006 05:50 · Личное сообщение · #7 ShEriF пишет: 01093de5 ShEriF пишет: но в олке оказывается что к смешению (A6F60000 По жизни ( это windasm показывает) DLL обычно(!) загружается по адресу 1000000. Олли использует loaddll.exe и грузит по адресу A6...... Метода патча экзе(когда на релоки можно забить) не годится. Вроде hiew умеет релоки добавлять/править, но не уверен. Спроси hellspawn - он его капитально знает. ![]() |
|
Создано: 01 ноября 2006 07:23 · Поправил: ShEriF · Личное сообщение · #8 Вот так выглядит код в WinDASM Exported fn(): DisplayDialog - Ord:0001h :100096D0 8B4C2404______mov ecx, dword ptr [esp+04] :100096D4 8B542408______mov edx, dword ptr [esp+08] :100096D8 8B44240C______mov eax, dword ptr [esp+0C] :100096DC 6A00__________push 00000000 :100096DE 68704D0010____push 10004D70 :100096E3 51____________push ecx :100096E4 68D3070000____push 000007D3 :100096E9 52____________push edx :100096EA E8F5A60000____call 10013DE4 ------ это мой CALL * Reference To: USER32.DialogBoxParamA, Ord:0000h | :100096EF FF153C420110__Call dword ptr [1001423C] :100096F5 B801000000____mov eax, 00000001 :100096FA C3____________ret а это из Олли 010896E9 52 PUSH EDX 010896EA E8 F5A608F1 CALL F2113DE4 ------ таже сама я процедура 010896EF FF15 3C420901 CALL DWORD PTR DS:[<&USER32.DialogBoxPar>; USER32.DialogBoxParamA не пойму, почему добавляются 08F1 байты и скринсавер не хочет грузить эту DLL ![]() |
|
Создано: 01 ноября 2006 11:13 · Личное сообщение · #9 |
|
Создано: 01 ноября 2006 11:30 · Личное сообщение · #10 |
|
Создано: 01 ноября 2006 12:08 · Личное сообщение · #11 |
|
Создано: 01 ноября 2006 20:12 · Личное сообщение · #12 |
|
Создано: 01 ноября 2006 21:42 · Личное сообщение · #13 Да не люди, вы, наверно, не поняли. У него бьётся call, который он вставляет для перехода на свой код. Возможно из-за релоков. ShEriF Можно попробовать: 1.убить все релоки, может заработает. Если откажется загружаться, то сделать ребазировку и попробовать снова. 2.вставить на ЕР заглушку, которая будет динамически создавать твой call. Только учти, что dll получает управление не только при старте ![]() |
|
Создано: 02 ноября 2006 01:40 · Личное сообщение · #14 |
|
Создано: 02 ноября 2006 04:05 · Поправил: tundra37 · Личное сообщение · #15 ShEriF С рапиды мне долго ждать, да и неинтересно пустяками заниматься. Решение пришло внезапно. Тебе элементарно не хватает 1 байта. Видим опять другое место, где его(1 байта) не хватает :100096D8 8B44240C______mov eax, dword ptr [esp+0C] Но если заменить на xor eax,eax mov al,2 , то все будет чики-пуки. И опять типичная ошибка. Написал бы оригинальные команды и что хочешь сделать, уже бы давно все сделали. А ты нарисовал, что сделал и .... ![]() |
|
Создано: 02 ноября 2006 08:00 · Поправил: ShEriF · Личное сообщение · #16 |
![]() |
eXeL@B —› Вопросы новичков —› Добавить свой код в DLL |
Эта тема закрыта. Ответы больше не принимаются. |