Сейчас на форуме: asfa, bartolomeo (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Изменить данные =) |
Посл.ответ | Сообщение |
|
Создано: 01 июля 2012 19:42 · Поправил: Makashka · Личное сообщение · #1 Я новичек, так что не смейтесь =) Вообще анализировал программу. Сама строка с данными зашифрованна, и расшифровывается по мере исполнения. Ковырятся с тем, какой метод шифровки не хочется. Но в определенный момент срока открыта. Хранится в EAX регистре. И потом вызывается... Так вот, изменить все можно в окне дампа...а как это сделать другими средствами?) Мне надо написать билдер, в который пропишешь тот текст, на который заменить и он заменит...есть варианты?) ![]() |
|
Создано: 01 июля 2012 19:59 · Личное сообщение · #2 |
|
Создано: 01 июля 2012 20:06 · Поправил: hlmadip · Личное сообщение · #3 Примерно так: имеем 1)mov eax, [строка] 2)использование строки Изменям: 1)mov eax, [строка] 2)jmp <процедура созданная в неиспользуемом пространстве> <процедура созданная в неиспользуемом пространстве> mov eax, [указатель на заранее созданную необходимую строку] выполняем комманды, затёртые прыжком jmp обратно Makashka пишет: Мне надо написать билдер, в который пропишешь тот текст, на который заменить и он заменит...есть варианты?) В таком случае - изучай алгоритм шифрования, криптуй свою строку, заменяй ею строку в исходном файле. ![]() |
|
Создано: 01 июля 2012 20:20 · Поправил: Johnny Mnemonic · Личное сообщение · #4 |
|
Создано: 01 июля 2012 20:54 · Личное сообщение · #5 CTPaHHuk пишет: лябой хекс редактор попробуй Не прокатит, говорю же. Изначально строка зашифрованна. hlmadip Спасибо. Address Hex dump Command Comments 00408C6E |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4] 00408C71 |. E8 36B0FFFF |CALL 00403CAC После выполнения 00408C6E в EAX помешается "my_text" Потом выполняется CALL использую регистр EAX. Вы предлагаете сделать так: MOV EAX,DWORD PTR SS:[EBP-4] JMP 12345678 (прыжок на мою процедуру) MOV EAX, ???? (заместо вопросов поставить адрес, где находится тот текст, на который заменить?) JMP 00408C71 ( 00408C71 = CALL 00403CAC) Я вас правильно понял? Johnny Mnemonic не, вы ошиблись. ![]() |
|
Создано: 01 июля 2012 21:02 · Поправил: Johnny Mnemonic · Личное сообщение · #6 |
|
Создано: 01 июля 2012 21:06 · Личное сообщение · #7 |
|
Создано: 01 июля 2012 21:43 · Личное сообщение · #8 Makashka пишет: Address Hex dump Command Comments00408C6E |. 8B45 FC |MOV EAX,DWORD PTR SS:[EBP-4]00408C71 |. E8 36B0FFFF |CALL 00403CACПосле выполнения 00408C6E в EAX помешается "my_text"Потом выполняется CALL использую регистр EAX.Вы предлагаете сделать так:MOV EAX,DWORD PTR SS:[EBP-4]JMP 12345678 (прыжок на мою процедуру)MOV EAX, ???? (заместо вопросов поставить адрес, где находится тот текст, на который заменить?)JMP 00408C71 ( 00408C71 = CALL 00403CAC) MOV EAX,DWORD PTR SS:[EBP-4] JMP 12345678 MOV EAX, ???? CALL 00403CAC jmp обратно Не забудь, что строка должна нулём заканчиваться. ![]() |
|
Создано: 01 июля 2012 22:12 · Личное сообщение · #9 нафига огород?? строки статические (делфи), если не хватит места имеющегося за счет выравнивания для замены на свои, то перенести сами строки и пропатчить смещения. Строк всего 4. Мест вызова декриптора 5. Ниже декриптованные строки. Процедура раскодирования элементарная. Ниже С-шный аналог. Code:
раскодированные строки (+смещение строки в основном классе) string +1B8 - basic.myftp.biz string +1C4 - #zomb string +1C8 - Vxg5Rs2loa string +1CC - 35knQs3XsgdI99E72ac07BsY ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 01 июля 2012 23:55 · Поправил: Makashka · Личное сообщение · #10 OKOB Декриптованные строки я тоже нашел, но и криптованные тоже. Как мне показалось, ключ декодирования для каждой строки разный, вот так: basic.myftp.biz - ключ "MPDPSH" #zomb - ключ "MPDPSC" Vxg5Rs2loa - ключ "MPDPSCP" Кажая из этих строк кодируется определенным ключом. Понимаю что немного глупо, но не поможете написать билдер?) Я просто понятия не имею, как лучше сделать. ![]() |
|
Создано: 02 июля 2012 00:21 · Личное сообщение · #11 Представление о ключах я имею и о представлении кодированных строк тоже, ибо приведенные раскодированные строки взяты не из программы, а получены автономно. Выше была приведена "мясная" часть кода. Весь код: Code:
Что есть в вашем понимании билдер? ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 02 июля 2012 00:35 · Личное сообщение · #12 OKOB Билдер - Консольное/GUI приложение, с возможностью ввода данных (в данном случаи, замены host,channel,password) в другом файле. Например GUI приложение, на которым 3 текстовых поля, в которые вводим те данные, на которые стоит заменить данные. (например в этом .exe есть данные host, channel, password). В нашем билдере 3 поля для замены данных. Нажимаем Patch, и строки из 3 текстовых полей заменяют определенные данные в .exe файле. Вот так, грубо говоря. Не знал как объяснить по другому... ![]() |
|
Создано: 02 июля 2012 01:48 · Поправил: OKOB · Личное сообщение · #13 Makashka пишет: Билдер - Консольное ![]() ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 02 июля 2012 01:55 · Личное сообщение · #14 |
|
Создано: 02 июля 2012 02:04 · Личное сообщение · #15 |
|
Создано: 02 июля 2012 02:14 · Личное сообщение · #16 |
|
Создано: 02 июля 2012 09:37 · Личное сообщение · #17 |
![]() |
eXeL@B —› Вопросы новичков —› Изменить данные =) |
Эта тема закрыта. Ответы больше не принимаются. |