| Посл.ответ | Сообщение | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 26 января 2017 23:36 · Поправил: Bean · Личное сообщение ·  #1
 
Добрый день exe-лабовцы! У меня такой вопрос, ковыряю программку на delphi через Олю, нужна ваша помощь. Скрин прилагаю.  Надо положить в верхушку стека нужный мне стринг, например "XXXXXXX", в таком  же виде как там щас лежит текущий, из скрина видно что по данному адресу пусто, есть ли какие-нибудь варианты чтобы положить стринг из другого места?  7e0d_26.01.2017_EXELAB.rU.tgz  - exelab.JPG
  | Сообщение посчитали полезным: | 
|  | 
| 
 Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32
 Статус: Участник
 
 | Создано: 26 января 2017 23:45 · Поправил: dosprog · Личное сообщение ·  #2
 
Подсунуть нужную ссылку там, где заполняется этот [EBP+10]. А вообще непонятно, что интересует сделать. 
  | Сообщение посчитали полезным: | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 27 января 2017 00:40 · Личное сообщение ·  #3
 
ну мне строку сунуть надо а у меня там типа char сует, я пытался подменить, а как длина строки определяется?
  | Сообщение посчитали полезным: | 
| 
 Ранг: 2.4 (гость) Активность: 0=0
 Статус: Участник
 
 | Создано: 27 января 2017 00:42 · Личное сообщение ·  #4
 
Инлайн асм бери и пиши цикл
  | Сообщение посчитали полезным: | 
| 
 Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32
 Статус: Участник
 
 | Создано: 27 января 2017 00:44 · Личное сообщение ·  #5
 
Туда не строку сунуть надо, а указатель на неё, заготовив её заранее в другом месте (выбрать свободное). Вид строки - посмотреть на вид других аргументов. Скорей всего просто ASCIIz. Хотя в WIN32 паскале строка имеет вид : db StrZLength,0,0,0, 'Some dtring',0
  | Сообщение посчитали полезным: | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 27 января 2017 03:15 · Личное сообщение ·  #6
 
Ну вот как подсунуть вроде проблем нет, а где и как область создать и чтобы потом там сохранить?
  | Сообщение посчитали полезным: | 
| 
  Ранг: 150.3 (ветеран), 175thx Активность: 0.16↘0.07
 Статус: Участник
 
 | Создано: 27 января 2017 04:01 · Поправил: -=AkaBOSS=- · Личное сообщение ·  #7
 
Bean пишет:а где и как область создать и чтобы потом там сохранить
 Ну если строка небольшая, то можно прям в стэке. А иначе ищи codecave пошире. Выделяешь пространство (или в своей процедуре, или в той, которую фиксишь), а потом суёшь туда куски строки. Загвоздка в том, что под код, формирующий строку, понадобится больше места, чем под саму строку.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32
 Статус: Участник
 
 | Создано: 27 января 2017 08:44 · Личное сообщение ·  #8
 
Что там, места нету даже в хвостах секций?
  | Сообщение посчитали полезным: | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 27 января 2017 11:32 · Личное сообщение ·  #9
 
В конце все забито 004F2FF3      0000          ADD BYTE PTR DS:[EAX],AL
  | Сообщение посчитали полезным: | 
| 
  Ранг: 104.9 (ветеран), 47thx Активность: 0.04↘0.02
 Статус: Участник
 
 | Создано: 27 января 2017 12:37 · Личное сообщение ·  #10
 
Bean пишет:В конце все забито 004F2FF3 0000 ADD BYTE PTR DS:[EAX],AL
 Так это и есть нулевые байты, в которые можно попробовать поместить строку. Просто опкод "00 00" дизассемблируется отладчиком в команду "ADD BYTE PTR DS:[EAX],AL"
  | Сообщение посчитали полезным: | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 27 января 2017 12:57 · Личное сообщение ·  #11
 
Попробовал, но после анализа получается мусор какой-то, попробовал на notepad там гуд все
  | Сообщение посчитали полезным: | 
| 
  Ранг: 337.5 (мудрец), 348thx Активность: 2.11↗2.42
 Статус: Участник
 
 | Создано: 27 января 2017 19:51 · Личное сообщение ·  #12
 
Это не код, а данные. Часть адресного регистра является операндом - это критерий треша. В чём собственно суть задачи, ну кроме ебли с неизвестно чем ?
----- vx
  | Сообщение посчитали полезным: | 
| 
 Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32
 Статус: Участник
 
 | Создано: 27 января 2017 20:53 · Поправил: dosprog · Личное сообщение ·  #13
 
Bean пишет:В конце все забито 004F2FF3 0000 ADD BYTE PTR DS:[EAX],AL
 
 Вот туда и суй строчку. Адрес запиши на бумажечке.
  | Сообщение посчитали полезным: Bean | 
| 
 Ранг: 1.4 (гость) Активность: 0.01=0.01
 Статус: Участник
 
 | Создано: 27 января 2017 21:47 · Личное сообщение ·  #14
 | 
| 
 Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32
 Статус: Участник
 
 | Создано: 27 января 2017 22:05 · Личное сообщение ·  #15
 
Ну, и норм.
  | Сообщение посчитали полезным: Bean |