Сейчас на форуме: asfa, Rio, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Как передать процедуре текстовую константу.
Посл.ответ Сообщение

Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 02 июня 2013 06:49
· Личное сообщение · #1

В программе есть процедура запуска плагина, она получает значение имени файла плагина (строка) через указатель на область памяти, записанный в EDX. Мне надо передать в эту функцию свою строку, которой нет в коде программы. Как это сделать? Вариант с лоадером не вариант.



Ранг: 49.7 (посетитель), 19thx
Активность: 0.050
Статус: Участник

Создано: 02 июня 2013 10:03
· Личное сообщение · #2

записываешь в пустую часть этой области памяти - путь к файлу
смотришь начало имени (позицию)
mov edx, 12345678
push edx

или же push 12345678

или поменять строку в файле она обычно лежит где-то в (директории) данных

ты же путь к файлу хочешь передать? или что-то другое?
покажи, какую процедуру редактируешь.



Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 02 июня 2013 11:30
· Личное сообщение · #3

Вопрос именно в реализации 2-х этих способов. Если можно пример кода который записывает строку в память. И потом чтобы это значение можно было передать регистре. Мне надо только название ддлки. В моем случае это 7 байт. Но с асемлером знаком не давно поэтому задаю этот вопрос. Второй способ я пытался сделать с помощью ресурс менеджера. Изменил левую строку на нужную мне. Но найти указатель на эту строку в коде программы мне не удалось. Оля говорит что ттаких строк нет... может чтото не так делаю...



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 02 июня 2013 11:53
· Личное сообщение · #4

Для начала бы неплохо название программы и ссылку на нее - вопрос должен иметь "материальную" форму.



Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 02 июня 2013 12:13
· Личное сообщение · #5

Материальная форма исключена. Это специфическая прогоамма из узкой области. И да забыл сказать это не это кракинг а скорее изменение функционала существующих программ. Но мой вопрос не относится к самой программе. Больше к теори и...




Ранг: 622.6 (!), 521thx
Активность: 0.330.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.010
Статус: Участник

Создано: 03 июня 2013 09:08
· Личное сообщение · #7

Вопрос просто в том, чтобы записать в edx указатель на строку(текст), которой изначально нет в коде программы. Как это сделать? Если можно поподробнее...




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 июня 2013 09:22
· Личное сообщение · #8

кратко так
берешь hiew, добавляешь в свободное место программы свою строку,
потом добавляешь mov/push смешение на свою строку
профит

| Сообщение посчитали полезным: yarcom

Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2013 10:23
· Личное сообщение · #9

reversecode пишет:
берешь hiew, добавляешь в свободное место программы свою строку,
потом добавляешь mov/push смешение на свою строку

Свободное место, это любое место занятое нулями, или есть какие-то ограничения? И еще вопроса, надо ли как-то ограничивать строку, ставить в конце 10,13 или что-то типа?



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

Создано: 03 июня 2013 10:36
· Личное сообщение · #10

Посмотреть в каком виде до этого передавались строки, не?



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

Создано: 03 июня 2013 10:41
· Личное сообщение · #11

yarcom строки бывают самые разнообразные.. анси/юникод (1 байт и 2 байта на 1 символ) .. бывают нуль терминейтед.. (когда в конце 0) бывают и такие.. в начале длина строки.. потом символы.. причем длима может быть и байтом и словом и двойным словом.. моет хватит гадать? вопрос то на 1 строчку ответа.. а у нас тут угадай мелодию

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2013 10:42 · Поправил: yarcom
· Личное сообщение · #12

tihiy_grom пишет:
Посмотреть в каком виде до этого передавались строки, не?

Дело в том что в памяти знаки конца строки не стоят, я не могу понять где он длину берет...
Строка помещается в EDX строчкой move EDX, dword ptr DS:[EAX+68]



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

Создано: 03 июня 2013 11:05 · Поправил: VodoleY
· Личное сообщение · #13

yarcom как вариант в другом регистре.. все зависит от ТИПА строчки, яж высше описал варианты
З.Ы. а кто сказал что это вообще строка? а не массив символов?

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2013 11:16
· Личное сообщение · #14

Понятно. С этим разобрались, спасибо. Теперь если можно про то, как безболезненно вставить в программу свою строку, чтобы потом на нее сослаться? Надо вставить в анси. Окончание строки пока не важно. Только сам принцип, если можно.



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

Создано: 03 июня 2013 11:55
· Личное сообщение · #15

тебеж reversecode уже написал как это сделать!!! 1. найти пустое место.. 2. записать свою строку.. 3 подменить адрес на СВОЮ строку.. в чем проблема?

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 3.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 июня 2013 12:40
· Личное сообщение · #16

VodoleY пишет:
тебеж reversecode уже написал как это сделать!!! 1. найти пустое место.. 2. записать свою строку.. 3 подменить адрес на СВОЮ строку.. в чем проблема?
Вообще-то я задал дополнительный вопрос про пустое место. Но да ладно, думаю сам разберусь.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 03 июня 2013 13:20
· Личное сообщение · #17

Да где угодно пустое местро. Где найдёшь-всё твоё. Сомневаешься-добавь новую секцию, там точно пустое.

| Сообщение посчитали полезным: yarcom
 eXeL@B —› Вопросы новичков —› Как передать процедуре текстовую константу.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати