|
|
|
Тема
|
работа с WinDasm и хекс редактор
|
|
| Автор |
voyager (бодхи) |
| Публикувано | 27.12.02 13:03 |
|
|
аз ще ви полея с малко ламеризъм - ама бихте ли ми дали съвет как да намеря определена част от кода, която съм намерил в WinDasm и искам да променя в хекс редактора. Имам предвид, че дебъгера /*WinDasm*/ ми показва кода като адреси в паметта, а като искам да пачна нещо, трябва да го направя в хекс редактора. Там обаче кода е даден като отместване и не става да стигна до него като локация. Досега винаги правех сърч за поредица от шестнайсетични инструкции, които съм видял в дебъгера, ама е адски бавно и трудно.
Сигурен съм, че се прави по друг начин, ама как? 
--
- вече изцяло на български
| |
|
Тема
|
Re: работа с WinDasm и хекс редактор
[re: voyager]
|
|
| Автор |
AliBabach (heavy drinker) |
| Публикувано | 27.12.02 17:21 |
|
|
ми нема как другояче да търсиш, да речем:
:005CBA96 8A4801 mov cl, byte ptr [eax+01]
:005CBA99 3A4A01 cmp cl, byte ptr [edx+01]
:005CBA9C 750E jne 005CBAAC
и искаш jne -to да го смениш на EB (JMP)
търсиш си 8A48013A4A01750E, сменяш 75 на ЕВ и това е
как мислиш че може да стене по-бързо?
| |
|
Тема
|
Re: работа с WinDasm и хекс редактор
[re: voyager]
|
|
| Автор | Гeнчo (Нерегистриран) |
| Публикувано | 27.12.02 17:34 |
|
|
Ами опитай следното:
Първо, прочети малко за структурата на EXE-файла и за PE-headera. Важно е за по-нататъшната работа.
Различните части от кода са записани в ЕХЕ-то в секции. В началото на ЕХЕ-то има таблица на секциите, в която е записано кое парче от кода къде във файла се намира, и от кой виртуален адрес се зарежда в паметта. Поглеждаш виртуалния адрес на НАЧАЛОТО на кода, който дисасмваш (обикновено е 00401000h, но може и да е различен). Намираш секцията, и определяш от къде във файла почва. После с проста сметка определяш необходимото ти парче къде е във файла (секцията е непрекъсната, има секция за код, данни и т.н., дисасемблера някъде е споменал името и).
Има и друг начин, за по-напреднали :))
С HEX-редактора поглеждаш от къде почва кода (в началото на ЕХЕ-то, където свършват данните, разредени с много нули, и винаги е на адрес, кратен на 16, обикновено е кратен на 1024 = 400h). Обикновено това е началото на кода (с много малки изключения) и съответства на виртуалния адрес на код-секцията (00401000 в случая). От тук нататък по същия начин.
Успех!
| |
|
Тема
|
Re: работа с WinDasm и хекс редактор
[re: AliBabach]
|
|
| Автор | Nex/[BiOCiDE] (Нерегистриран) |
| Публикувано | 27.12.02 18:46 |
|
|
AliBabach
vijdam 4e gi razbira6 :
ми нема как другояче
ghahahahaha
| |
|
Тема
|
Re: работа с WinDasm и хекс редактор
[re: voyager]
|
|
| Автор | Nex/[BiOCiDE] (Нерегистриран) |
| Публикувано | 27.12.02 18:50 |
|
|
Mi man ne znam kuv ti e problema?? W32Dasm ti dava napravo offseta (otmestvaneto) vuv faila dokato e markiran suotvetniq red!
ako 6e smenq6 nqkvo JNE da re4em
markira6 reda s JNE i gleda6 otdolu statusa i vijda6 offseta v HEX
Posle v HEX redaktora si go tursi6 offseta v HEX kakto si e v W32Dasm i si na to4noto mqsto kudeto e JNE-to :))
Toq problem go ima pri SoftIce be man
Puk i ne znam kak ba4ka6 s W32Dasm puk ne znae6 de da si vidi6 offseta :)
Uspeh!
| |
|
|
|
I az sum na tova mnenie. Awe vednuj kato, che li vidqh nqkakuv adres, ta napravo si go namerih, no qvno sum se oburkal, zashtoto dosega vse tozi nachin za turene sum polzvam
A mi e interesno zashto e taka. Nali si loadvam exe za dissassemble. Mi nachi adressa na koda bi trqbvalo da suotvetstva na adresa vuv faila. Nqkoi shte me svetne li, che me e murzel da procheta kakvo pokazva adresa na WinDasm vsushtnost
by Waz Gaa
| |
|
Тема
|
Re: работа с WinDasm и хекс редактор
[re: Гeнчo]
|
|
| Автор |
voyager (rasta man) |
| Публикувано | 08.01.03 16:54 |
|
|
ахааааа... май зацепиииих :)))
примерно като дизасемблирах нещо виждам следния ред:
Program Entry Point = 00401D9C
File Offset : 0001DD9C
Значи в хекс едитора отивам на 0001DD9C и там е ентри пойнта... И след това проследявам...
Ако правилно съм разбрал, мерси много, Генчо. Както винаги даваш най-компетентното мнение 
--
- вече изцяло на български
| |
|
|
|
|