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

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

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

Создано: 03 ноября 2013 23:40
· Личное сообщение · #1

В IDA Pro дизасемблирую программу и нашел там одну строку: ldstr "строка". Как мне изменить эту строку через HEX редактор например на другую, например ldstr "строка2"?

PS: В Reflector я знаю как заменить, но мне нужно знать что и где меняется в самом файле, чтобы потом можно было лоадер написать, который меняет строку эту.



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 04 ноября 2013 00:07
· Личное сообщение · #2

softcr пишет:
но мне нужно знать что и где меняется в самом файле

Смотри реф на строку и все, только строка не должна быть длиннее оригинальной.



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

Создано: 04 ноября 2013 00:16
· Личное сообщение · #3

Tyra пишет:
Смотри реф на строку и все

что такое реф, а то я новичок немного)

строка такая ldstr "", надо бы туда ник впихнуть.
А если строку например в конец файла впихнуть, а там можно как то сослаться на нее?



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

Создано: 04 ноября 2013 00:20
· Личное сообщение · #4

Еще в IDA по строке ПКМ=>Manual, редактирую строку. На листинге она показывается измененной, вывожу в dif файл, а там никаких изменений нет.



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 04 ноября 2013 00:41
· Личное сообщение · #5

Тогда просто найди строку в файле.



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

Создано: 04 ноября 2013 00:55
· Личное сообщение · #6

Такую строку сложно найти, так как она пустая ""



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

Создано: 04 ноября 2013 02:15
· Личное сообщение · #7

softcr пишет:
В IDA Pro дизасемблирую программу и нашел там одну строку: ldstr "строка". Как мне изменить эту строку через HEX редактор например на другую, например ldstr "строка2"?


SAE (SimpleAssemblyExplorer) в помощь.

Tyra пишет:
Смотри реф на строку и все, только строка не должна быть длиннее оригинальной.

Пофиг на длинну.



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

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

Quadcon пишет:
SAE (SimpleAssemblyExplorer) в помощь.

Работает, но так же как и через reflector сильно меняет файл и лоадер сделать получается затруднительно.



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 04 ноября 2013 13:30
· Личное сообщение · #9

Quadcon пишет:
Пофиг на длинну.

Через SAE или Reflexi да, а если править файл через HEX, то длинна имеет значение.
softcr пишет:
так как она пустая ""

Тогда только SAE или Reflexi



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

Создано: 04 ноября 2013 17:14
· Личное сообщение · #10

Tyra пишет:
Тогда только SAE или Reflexi

а если строку прописать в конце файла, а в том месте сделать ссылку на эту строку?
В не NET приложениях так делал. А здесь я не сильно понимаю как ldstr работает. Он считывает из определенного адреса строку? или после ldstr сразу идет строка?
А то глянул в HEX редакторе другой ldstr с длинной строкой, так там инструкция занимает около 5 байт всего и текста не видать.
Кто разбирается в этом?)



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 04 ноября 2013 19:17
· Личное сообщение · #11

http://exelab.ru/f/action=vthread&forum=1&topic=16650&page=27#24 ищи там ссылку

Возьми прожку NetPe и еще раз посмотри тела методов с не пустой ldstr



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

Создано: 04 ноября 2013 19:58
· Личное сообщение · #12

Medsft пишет:
Возьми прожку NetPe и еще раз посмотри тела методов с не пустой ldstr

Не совсем понял, подробнее, пожалуйста



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 04 ноября 2013 21:10 · Поправил: Medsft
· Личное сообщение · #13

NetPe - прога такая open source для разбора net-приложений [в гугле netpe первая ссылка]

Короче не парься твоя задача вписать строку длины <> исходной строки методом байт-патч unreal если конечно ты не мега-мозг и сможешь пересобрать метаданные.Без обид но пока по моим наблюдениям звезда Вефриема еще не взошла.
Как вариант могу предложить инлайн-патч (см.codeproject тема патч net)
или изменить алгоритм решения твоей задачи



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 04 ноября 2013 21:25
· Личное сообщение · #14

И вообще почитай тему "Опять." мы там давно уже тему байт патчинга мусолим чето не выходит пока... аленький цветочек

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

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

Создано: 05 ноября 2013 12:02
· Личное сообщение · #15

Medsft добавили бы эту тулзину в Опять .net .. Попробывал.. интересная поделка.. правда на 2их из трех .НЕТ апликухах обсыпалась при попытке подгрузить CLR.. но на поиграться то что надо

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




Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 05 ноября 2013 18:29
· Личное сообщение · #16

VodoleY пишет:
Medsft добавили бы эту тулзину в Опять .net
- тема создана к сожалению не мной и доступа к редактированию шапки я не имею.
Тулза рабочая)))
Пришли плиз в личку файло на чем упало.


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


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