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

 eXeL@B —› Вопросы новичков —› CODE RIP
Посл.ответ Сообщение

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

Создано: 13 декабря 2008 21:01
· Личное сообщение · #1

Прочитал статью Broken Sword*а про Code rip Broken Sword*а www.wasm.ru/article.php?article=coderip01 В общих чертах понял. Но меня интерисует вопросы:

1) Как отследить изменения стека до (какие параметры приготавливаются до исполнения функции)

2) Как и чем компелировать выдранный код ?

3) Хотелось бы посмотреть как это работает на практике! Broken Sword обещал продолжение этой статьи (практическое воплощение статьи), но к сожалению тема заглохла!!!

Может есть какая статья или дока ( на русском!) где это всё подробно (пошагово) описывается!!!


P.S. Нашёл только одну статью где описывается практика www.wasm.ru/article.php?article=addfunc .

Вот пару вопросов по этой статье:

"Найти участок кода, отвечающий непосредственно за вычисление выражения несложно..." можно поподробнее как и что?

Где взять прогу аIIDKing v2.0. ?

Есть ли ещё примеры по этой теме (статьи, доки...) Искал в нете ничего дельного не нашёл!

Просьба!

Мож кто из продвинутых обитателей cracklab.ru напишет хорошую, подробную статью с практичекскими примерами по CODE RIP*у

Заранее спасибо!!!



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 17 декабря 2008 15:44
· Личное сообщение · #2

Компилировать масмом, разве БрокенСворд это не написал?
На практике работает, проверено, но были ньюансы =)



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

Создано: 19 декабря 2008 09:31 · Поправил: tekton
· Личное сообщение · #3

"... разве БрокенСворд это не написал?" Неа-а!!! Он описал только возникающие трудности!

Попробывал Сохранить *Asm файл из Иды, он получился километровый! А что нам из него надо выбрать не знаю.



Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 19 декабря 2008 10:26
· Личное сообщение · #4

tekton пишет:
А что нам из него надо выбрать не знаю.

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

-----
xchg dword [eax], eax




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

Создано: 20 декабря 2008 01:08 · Поправил: tekton
· Личное сообщение · #5

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


Чем собственно и занимаюсь! ;) Конечно иногда пытаюсь "прыгнуть через голову", но статья проста зацепила!

Накупил книг : Калашникова, Панова, но к сожалению некоторые вопросы не понятны! Например адресация такого типа
Code:
  1. mov word ptr [DI+515*4], 4
и некоторыми инструкциями ассемблера Например LEA, include (кажись так пишется)... Подскажите хороший справочник по инструкциям асма!?

И ещё проблемма в том, что у Калашникова в книге примеры не для Win32.
И проблемма скачал MASM 10 но почитатьбы на русском как с ним работать! Может есть какая форошая инфа? Заранее спасибо!



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

Создано: 20 декабря 2008 01:22 · Поправил: Veliant
· Личное сообщение · #6

берем адрес из EDI прибавляем к нему 515*4 и заносим по этому адресу число 4 как слово(2 байта) т.е. 0004

Lea это вычисление адреса.
лично я вообще асму по зубкову учился (Assembler для Dos,Windows и Unix)



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 21 декабря 2008 11:08
· Личное сообщение · #7

tekton пишет:
Например адресация такого типа

Это просто.
По эталонному синтаксису ассемблера для Intel ВСЕ обращения к памяти (именованные, косвенно или явно указанные цифрами) должны быть в квадратных скобках, однако MASM допускает написание без скобок.
Чтоб отличить:
mov EAX,var1
(имелось в виду: поместить АДРЕС var1 в регистр EAX)
от
mov EAX,[var1]
(имелось в виду: поместить значение var1 в регистр EAX)
в MASM'e используется директива offset и первое выражение всегда надо писать:
mov EAX,offset var1
тогда как второе выражение можно писать
и mov EAX,[var1]
и mov EAX, var1
Это сбивает с толку, но так принято в MASM'e.
Дальше описал Veliant.

Про LEA
Изначально эта инструкция предназначена для формирования смещения. Но сама LEA не обращается к ячейкам памяти. Это позволяет использовать LEA для вычисления других значений, не обязательно используемых в качестве смещении.
По эталонному синтаксису LEA – единственная инструкция, в которой операнд в квадратных скобках не означает обращение к памяти.
По синтаксису MASM получается:
lea EAX,EBX
=
lea EAX,[EBX]
а вообще, такое выражение равно
mov EAX,EBX

Возникает вопрос: почему по эталону у LEA второй операнд должен быть в квадратных скобках, если обращения к памяти нет?
Обращения нет, но адрес формируется. Выражения в квадратных скобках процессор считает перед тем, как выполнить основное действие инструкции (фактически вместе с формированием физического адреса). И если посмотреть на устройство машинной команды, то станет понятно при каких значениях постбайта в эталонном синтаксисе обязаны быть квадратные скобки.

include – это не инструкция ассемблера. Это директива. Аналогичная директива должна быть во всех языках программирования (в C, например, это будет #include).
Суть проста: присоединяет дополнительный файл исходника.
Там может быть всё то же самое, что и в основном файле исходника (код, описания и т.п.).

tekton пишет:
Подскажите хороший справочник по инструкциям асма!?

В.И. Юров Спец. Справочник
Но самый актуальный справочник – документация на проц от Интел:
Номера для поиска:
253665?? - том 1-й,
253666?? и 253667?? - том 2-й, глава "Instruction Format"
253668?? - том 3-й.

tekton пишет:
И проблемма скачал MASM 10 но почитатьбы на русском как с ним работать! Может есть какая форошая инфа?

1. уроки Айсилона (Iczelion'а)
2. мои статьи

-----
Всем привет, я вернулся




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

Создано: 22 декабря 2008 00:51
· Личное сообщение · #8

Спасибо! А то с командами перехода и с командами сравнения справился, а с командами смещения, с адресацией завал!
Купил книгу Калашникова "Ассемблер Это просто!..." начал по тиху читать. Времени свободного, к сожалению мало Спасибо за помощь!



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

Создано: 24 декабря 2008 19:07
· Личное сообщение · #9

Пирогов Asm для Win - неплохая книга на русском. Лучше Intel справочника нет. Без знания иностранных языков (хотя бы английского) по-серьезному как в реверсинге так и в программировании не *ер делать. Мнение мое и необязательно правильное.



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

Создано: 24 декабря 2008 22:01
· Личное сообщение · #10

В свое время писал небольшой ман, может кому поможет разобраться

7db6_24.12.2008_CRACKLAB.rU.tgz - MINITUTORS.HTM.zip



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 25 декабря 2008 12:56
· Личное сообщение · #11

Veliant пишет:
лично я вообще асму по зубкову учился (Assembler для Dos,Windows и Unix)


XoDeR пишет:
Пирогов Asm для Win - неплохая книга на русском.


+1, +1

-----
Я медленно снимаю с неё UPX... *FF_User*




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

Создано: 25 декабря 2008 19:12
· Личное сообщение · #12

2 AlexZ: жжош не падецки "UPX Killer -d"




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

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

Как-нить бы заканчивали с оффтопом.



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

Создано: 26 декабря 2008 21:20 · Поправил: tekton
· Личное сообщение · #14

Archer пишет:
Как-нить бы заканчивали с оффтопом.


Наверно тему можно пока прикрыть! Но если что хорошее появится (статьи, мануалы ... ) по этой теме, киньте мне ссылок в личку ! Спасибо всем!




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 26 декабря 2008 21:29
· Личное сообщение · #15

tekton пишет:
Наверно тему можно пока прикрыть!

Ты это можешь сделать сам.




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

Создано: 26 декабря 2008 22:01
· Личное сообщение · #16

В Н-ый раз пишу: автор может сам закрыть свой топик, поклацав кнопку Закрыть тему под кнопкой Отправить сообщение.


 eXeL@B —› Вопросы новичков —› CODE RIP
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати