PDA

Просмотр полной версии : Изучаю дебагер и всё такое :)


Ponchik
11.06.2009, 21:40
Надоело на PHP кодить, хочется чегонить интересного
Скачал я OllyDbg, написал программку на дельфи
function hellofunction():String;
begin
showmessage('Hello, world');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
hellofunction();
end;
Она тут http://slil.ru/27750582
При клаце на кнопку "Hello" вызывается функция hellofunction()
Вот как мне это в дебагере увидеть, ну чёнить типа
call hellofunction();
Или как оно там выглядит...
И вызвать эту функцию через Command line (Alt+F1 в OllyDbg)
Прочитал вот это http://cracklab.ru/art/?action=view&id=1&old=ollydbg
Сказано
Call Stack – Просмотреть все вызовы выполнения код в стеке. (горячая клавиша: Alt+K)
Я без понятия что такое код в стеке, но я думаю - это то что мне надо :)
Так вот, запускаю Project1.exe, в OllyDbg - fille->attach цепляюсь к проге, открываю Call Stack, жму в проге Hello, вылетает месага hello world но в Call Stack ничего нет.
Как вы это делаете, раскажите :)
P.S. в статье с cracklab.ru описан "взлом" или как это назвать crackme, но сайт в дауне, в гугле не нащёл, да и вобще ничего дальше не понял :rolleyes:

Если кто ничё непонял, в 2х словах
[20:43:36] <banana_> Я не понял че те надо то?
[20:43:44] <Ponchik> словить имя функции
[20:43:53] <Ponchik> и заставить прогу выполнить её

d_x
11.06.2009, 21:58
Я без понятия что такое код в стеке, но я думаю - это то что мне надо
словить имя функции
Может, сначала стоит почитать литературу насчет того, как вызываются функции, как передаются аргументы в функции, как функция возвращает значение и т.д.? Или вообще совсем общее по асму - регистры, инструкции.

banana
11.06.2009, 22:00
Ну и какбе для дельфи DeDe надо юзать а не олю

Ponchik
11.06.2009, 22:01
d_x, ну а как они вызываются, разве не будет в OllyDbg написана имя функции?
А АСМ это насколько я знаю вобще язык программирования, причём тут дебагер =\ Дебагер он ведь нужен для рассмотра что и где прога делает
Скорей всего я тута бреда нвговорил, но это так, как я себе это представляю, есть какие книги по дебагерам или как это всё учить, мне совсем для нуба ибо я 0 в этом =\
*стыдно*

d_x
11.06.2009, 22:07
Скачай простейшую прогу на асме:
http://rapidshare.de/files/47500501/hw.exe.html
и по шагам ее выполни в Olly (кнопкой F8), возможно, что-то прояснится)
Там всего ничего инструкций, никакого мусора. Заметь, к ней не аттачиться надо, а просто загрузить в отладчик. Отладчик кстати всегда показывает код в ассемблерном виде.

-=Nicon=-
11.06.2009, 22:12
Почитай на сайте http://www.wasm.ru/ Введение в крэкинг с нуля, используя OllyDbg, там все написано простым языком для новичков.


Так вот, запускаю Project1.exe, в OllyDbg - fille->attach цепляюсь к проге, открываю Call Stack, жму в проге Hello, вылетает месага hello world но в Call Stack ничего нет.


Ставь в OllyDbg бряк на MessageBoxA

Ponchik
11.06.2009, 22:17
Ну у мя тогда 2 проблемы...
Мне вобще это всё надо для гамы, хочу бота написать :)
Не, я это всё учу не потомучто бот нужен, а интересно как это :) А ботов и в гугле навалом
Ну неважно, 2 проблемы
1)exe шник игры ищет папку textures если её нет, он выдаёт еррор, дебагер запускает прогу хз из какой папки, и там нет папки textures и я её немогу запустить
2)Это гама, она отправляет данные на сервер, получает, а я так понял Shift+F8 пошагово выполнять всё, так пока я всё рассматрю сервер меня отключит =\

Мне пока в IRCe объясняют чё и как, если что, я вернусь :)

d_x
11.06.2009, 22:20
Ставь в OllyDbg бряк на MessageBoxA
Пояснил бы, что для этого надо открыть командную строку (Alt+ F1) и ввести bp MessageBoxA. Когда программа достигнет инструкции call MessageBoxA, сработает эта точка останова и внизу в ольке будет написано нечто вроде "Breakpoint at user32.MessageBoxA".

Не факт кстати, что в той программе на дельфи используется эта функция, возможно, там MessageBoxIndirect или вообще что-то своё. А вот с той программой, которую я привел, все нормально будет.

-=Nicon=-
11.06.2009, 22:43
Пояснил бы, что для этого надо открыть командную строку (Alt+ F1) и ввести bp MessageBoxA.

А статьи для чего тогда? Мне лично не кто, не чего не объяснял в свое время когда я начинал.

[n]-c0der
12.06.2009, 01:01
Go на Wasm.ру там все это по шагам описано, кстати для распознованя дельфийских функций в ольке лучше установить готовый плагин.

zeppe1in
12.06.2009, 15:16
[n]-c0der
это какой?)

POS_troi
14.06.2009, 16:34
А АСМ это насколько я знаю вобще язык программирования, причём тут дебагер =\

Олька интерпретирует машинный код в код Ассемблера (и то слегка отдаленно).
Ассемблер всеже подучить прийдеться в любом случае хотябы основные команды.
Потренеруйся на Крякмисах =)

DarkMist
16.06.2009, 13:42
[n]-c0der
это какой?)

какой плагин?7 мне тож интересно стало..

zeppe1in
16.06.2009, 14:18
POS_troi
как это отдалённо? помоему нормально)
DarkMist
я только ida_sigs знаю который сиги от иды применяет. но он почему то иногда не работает у меня.

а вот нашол какойто
Code (Delphi) Helper 0.5
This plugin helps to show function comments from user defined. Plugin can now check Delphi functions and Miracl functions.
http://tuts4you.com/download.php?view.38

Mr.Andersen
17.06.2009, 10:48
Ну вы блин даете. на дельфях проги надо изучать не в ольге. и не в IDA. для этого же есть DEDE. правда, не знаю какой релиз самый свежий, слышал я, что автор заморозил работу. например, 6-7 дельфи уже не катит. А плагин ваш называется REDHAWK, и это скорее новая ольга с кучей плагинов на все случаи жизни. Но на waasm его нет, надо поискать.

s0l_ir0n
17.06.2009, 11:13
Вот как мне это в дебагере увидеть, ну чёнить типа
call hellofunction();
Или как оно там выглядит...

00452720 55 push ebp

И вызвать эту функцию через Command line (Alt+F1 в OllyDbg)
Там ты эту функцию не вызовешь.

[20:43:36] <banana_> Я не понял че те надо то?
[20:43:44] <Ponchik> словить имя функции
[20:43:53] <Ponchik> и заставить прогу выполнить её

Ты не словишь имя функции, т.к. это не функция экспорта.

neprovad
17.06.2009, 19:41
Для интеграции сигнатур ida в olly можно использовать
плагин godup
http://tuts4you.com/download.php?view.54