Посл.ответ |
Сообщение |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 02 июня 2013 06:49 · Личное сообщение · #1
В программе есть процедура запуска плагина, она получает значение имени файла плагина (строка) через указатель на область памяти, записанный в EDX. Мне надо передать в эту функцию свою строку, которой нет в коде программы. Как это сделать? Вариант с лоадером не вариант.
| Сообщение посчитали полезным: |
|
Ранг: 49.7 (посетитель), 19thx Активность: 0.05↘0 Статус: Участник
|
Создано: 02 июня 2013 10:03 · Личное сообщение · #2
записываешь в пустую часть этой области памяти - путь к файлу смотришь начало имени (позицию) mov edx, 12345678 push edx или же push 12345678 или поменять строку в файле  она обычно лежит где-то в (директории) данных ты же путь к файлу хочешь передать? или что-то другое? покажи, какую процедуру редактируешь.
| Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 02 июня 2013 11:30 · Личное сообщение · #3
Вопрос именно в реализации 2-х этих способов. Если можно пример кода который записывает строку в память. И потом чтобы это значение можно было передать регистре. Мне надо только название ддлки. В моем случае это 7 байт. Но с асемлером знаком не давно поэтому задаю этот вопрос. Второй способ я пытался сделать с помощью ресурс менеджера. Изменил левую строку на нужную мне. Но найти указатель на эту строку в коде программы мне не удалось. Оля говорит что ттаких строк нет... может чтото не так делаю...
| Сообщение посчитали полезным: |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг"
|
Создано: 02 июня 2013 11:53 · Личное сообщение · #4
Для начала бы неплохо название программы и ссылку на нее - вопрос должен иметь "материальную" форму.
| Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 02 июня 2013 12:13 · Личное сообщение · #5
Материальная форма исключена. Это специфическая прогоамма из узкой области. И да забыл сказать это не это кракинг а скорее изменение функционала существующих программ. Но мой вопрос не относится к самой программе. Больше к теори и...
| Сообщение посчитали полезным: |
 Ранг: 622.6 (!), 521thx Активность: 0.33↗0.89 Статус: Участник _Вечный_Студент_
|
Создано: 02 июня 2013 22:59 · Личное сообщение · #6
Ну назови свой plug-in (.dll) именем старого plug-in (.dll) и скопируй туда, куда надо, а старый убери. И пусть программа запускает твой plug-in (.dll). Если я конечно правильно понял вопрос, поскольку все покрыто тайной.
----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: Abraham |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 03 июня 2013 09:08 · Личное сообщение · #7
Вопрос просто в том, чтобы записать в edx указатель на строку(текст), которой изначально нет в коде программы. Как это сделать? Если можно поподробнее...
| Сообщение посчитали полезным: |
 Ранг: 1053.6 (!!!!), 1078thx Активность: 1.06↘0.81 Статус: Участник
|
Создано: 03 июня 2013 09:22 · Личное сообщение · #8
кратко так берешь hiew, добавляешь в свободное место программы свою строку, потом добавляешь mov/push смешение на свою строку профит
| Сообщение посчитали полезным: yarcom |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 03 июня 2013 10:23 · Личное сообщение · #9
reversecode пишет: берешь hiew, добавляешь в свободное место программы свою строку, потом добавляешь mov/push смешение на свою строку Свободное место, это любое место занятое нулями, или есть какие-то ограничения? И еще вопроса, надо ли как-то ограничивать строку, ставить в конце 10,13 или что-то типа?
| Сообщение посчитали полезным: |
Ранг: 441.3 (мудрец), 297thx Активность: 0.41↘0.04 Статус: Участник
|
Создано: 03 июня 2013 10:36 · Личное сообщение · #10
Посмотреть в каком виде до этого передавались строки, не?
| Сообщение посчитали полезным: |
Ранг: 488.1 (мудрец), 272thx Активность: 0.35↘0 Статус: Участник
|
Создано: 03 июня 2013 10:41 · Личное сообщение · #11
yarcom строки бывают самые разнообразные.. анси/юникод (1 байт и 2 байта на 1 символ) .. бывают нуль терминейтед.. (когда в конце 0) бывают и такие.. в начале длина строки.. потом символы.. причем длима может быть и байтом и словом и двойным словом.. моет хватит гадать? вопрос то на 1 строчку ответа.. а у нас тут угадай мелодию
----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 03 июня 2013 10:42 · Поправил: yarcom · Личное сообщение · #12
tihiy_grom пишет: Посмотреть в каком виде до этого передавались строки, не? Дело в том что в памяти знаки конца строки не стоят, я не могу понять где он длину берет... Строка помещается в EDX строчкой move EDX, dword ptr DS:[EAX+68]
| Сообщение посчитали полезным: |
Ранг: 488.1 (мудрец), 272thx Активность: 0.35↘0 Статус: Участник
|
Создано: 03 июня 2013 11:05 · Поправил: VodoleY · Личное сообщение · #13
yarcom как вариант в другом регистре.. все зависит от ТИПА строчки, яж высше описал варианты З.Ы. а кто сказал что это вообще строка? а не массив символов?
----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 03 июня 2013 11:16 · Личное сообщение · #14
Понятно. С этим разобрались, спасибо. Теперь если можно про то, как безболезненно вставить в программу свою строку, чтобы потом на нее сослаться? Надо вставить в анси. Окончание строки пока не важно. Только сам принцип, если можно.
| Сообщение посчитали полезным: |
Ранг: 488.1 (мудрец), 272thx Активность: 0.35↘0 Статус: Участник
|
Создано: 03 июня 2013 11:55 · Личное сообщение · #15
тебеж reversecode уже написал как это сделать!!! 1. найти пустое место.. 2. записать свою строку.. 3 подменить адрес на СВОЮ строку.. в чем проблема?
----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 03 июня 2013 12:40 · Личное сообщение · #16
VodoleY пишет: тебеж reversecode уже написал как это сделать!!! 1. найти пустое место.. 2. записать свою строку.. 3 подменить адрес на СВОЮ строку.. в чем проблема? Вообще-то я задал дополнительный вопрос про пустое место. Но да ладно, думаю сам разберусь.
| Сообщение посчитали полезным: |
 Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 03 июня 2013 13:20 · Личное сообщение · #17
Да где угодно пустое местро. Где найдёшь-всё твоё. Сомневаешься-добавь новую секцию, там точно пустое.
| Сообщение посчитали полезным: yarcom |