ДизАссемблер под 89

Приветствую, *All !*

А в природе существуют дизассемблеры под 8051 правильно распознающие команду " db " ?

Я весь енет перерыл - те что мне попадались нормально дизассемблировали только до этой команды - после активно глючили...

Правда попадался один который её понимал, но не разу не угадал места её применения :)

Удачи ! Bye, *Konstantin .*

... Ha дебуггеp надейся а сам ошибку в системе ищи.

Reply to
Konstantin Granitsa
Loading thread data ...

Пpивет, Konstantin!

*** 08 Jun 06 22:00, Konstantin Granitsa wrote to All:

KG> А в природе существуют дизассемблеры под 8051 правильно распознающие KG> команду " db " ?

KG> Я весь енет перерыл - те что мне попадались нормально KG> дизассемблировали только до этой команды - после активно глючили...

IDA, разумеется...

с уважением Владислав

Reply to
Vladislav Baliasov

Афтар жжошь! Пей йад!

А ещё они не дизассемблируют, почему-то, команду ORG и комментарии.

PS: IDA?

Reply to
Kirill Frolov

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Konstantin Granitsa! You wrote in conference fido7.ru.embedded to All on Thu, 08 Jun 2006 21:00:11

+0400:

KG> А в природе существуют дизассемблеры под 8051 правильно распознающие KG> команду " db " ?

А это _принципиально_ невозможно. Неужели не очевидно?

KG> Я весь енет перерыл - те что мне попадались нормально KG> дизассемблировали только до этой команды - после активно глючили...

Естественно, так и должно быть. Подумай с точки зрения автора подобной утилиты ка бы ты это определял и поймешь, что никаких шансов правильно такое распознать нет.

KG> Правда попадался один который её понимал, но не разу не угадал места KG> её применения :)

Еще бы. Существует, меж тем, целая методика как писать программы, затрудняющие реверс-инжениринг. Типа перехода в середину многобайтовой команды, помещение внутрь кода данных etc. Хорошо хоть самомодифицирующиеся коды в обычных для embedded конфигурациях x51 не возможны, но в принципе можно и такое сделать.

dima

formatting link

Reply to
Dmitry Orlov

,-' Hello, Kirill Frolov! How is your connection today?

Однозначно в хумор. :-)

============================================================================= * Echo : RU.EMBEDDED * From : Kirill Frolov, 2:5020/400 =============================================================================

[...]
  1. УМЫШЛЕHHОЕ ИСКАЖЕHИЕ РУССКОГО ЯЗЫКА ДОЛЖHО БЫТЬ ЗАПРЕЩЕHО.

============================================================================= ============================================================================= * Echo : RU.EMBEDDED * From : Kirill Frolov, 2:5020/400 =============================================================================

Афтар жжошь! Пей йад!

=============================================================================

`-._ --- Alexander Kocharin ---

Reply to
Alex Kocharin

Konstantin, ты ещё здесь сидишь?

Четверг Июнь 08 2006 22:00, Konstantin Granitsa wrote to All:

KG> А в природе существуют дизассемблеры под 8051 правильно распознающие KG> команду " db " ?

IDA. Изумительная вещь, если, конечно, есть голова на плечах...

Георгий

Reply to
George Shepelev

Hello Konstantin!

08 Jun 34 21:00, Konstantin Granitsa wrote to All:

KG> А в природе существуют дизассемблеры под 8051 правильно распознающие KG> команду " db " ?

KG> Я весь енет перерыл - те что мне попадались нормально KG> дизассемблировали только до этой команды - после активно глючили...

KG> Правда попадался один который её понимал, но не разу не угадал места KG> её применения :)

Сам то понял что спросил? :-)

А вообще - IDA - лучший дизассемблер всех времен и народов, и 8051 он тоже понимает.

А лучший он как раз благодаря тому, что ему очень легко сказать - "вот здесь играем (код), а здесь рыбу заворачиваем (данные)".

Sergei

Reply to
Sergei Podstrigailo

Приветствую, *Dmitry !*

Было это 10 июн 06 02:06, случилось, что _Dmitry Orlov_ писал Konstantin Granitsa

KG>> А в природе существуют дизассемблеры под 8051 правильно распознающие KG>> команду " db " ? DO> А это _принципиально_ невозможно. Hеужели не очевидно?

Если специально переходы в середину данных втыкать то _да_

KG>> Я весь енет перерыл - те что мне попадались нормально KG>> дизассемблировали только до этой команды - после активно глючили... DO> Естественно, так и должно быть. Подумай с точки зрения автора подобной DO> утилиты ка бы ты это определял и поймешь, что никаких шансов правильно DO> такое распознать нет.

А если по всей проге управление на этот кусок не передаётся, _Hи при каких условиях_ то этот кусок скорее всего данные а не прога...

Удачи ! Bye, *Konstantin .*

... Десант США - самый толстый!!!

Reply to
Konstantin Granitsa

Приветствую, *Sergei !*

Было это 10 июн 06 13:45, случилось, что _Sergei Podstrigailo_ писал Konstantin Granitsa

SP> А вообще - IDA - лучший дизассемблер всех времен и народов, SP> и 8051 он тоже понимает. SP> А лучший он как раз благодаря тому, что ему очень легко SP> сказать - "вот здесь играем (код), а здесь рыбу заворачиваем (данные)".

Откуда его качать? Откуда качать всё необходимое для его запуска? (если конечно требуется... лекарство например и т.д.)

Удачи ! Bye, *Konstantin .*

... Пишите чаще! У вас вкусные чеpнила!

Reply to
Konstantin Granitsa


Hello, Konstantin Granitsa! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 10 Jun

2006 15:56:57 +0400:

KG>>> А в природе существуют дизассемблеры под 8051 правильно KG>>> распознающие команду " db " ? DO>> А это _принципиально_ невозможно. Hеужели не очевидно?

KG> Если специально переходы в середину данных втыкать то _да_

А если не втыкать? Все равно ты не знаешь данные это или код.

KG>>> Я весь енет перерыл - те что мне попадались нормально KG>>> дизассемблировали только до этой команды - после активно KG>>> глючили...

DO>> Естественно, так и должно быть. Подумай с точки зрения автора DO>> подобной утилиты ка бы ты это определял и поймешь, что никаких DO>> шансов правильно такое распознать нет.

KG> А если по всей проге управление на этот кусок не передаётся, _Hи при

А если оно косвенно передается?

KG> каких условиях_ то этот кусок скорее всего данные а не прога...

Дизассемблеру это определить крайне сложно.

dima

formatting link

Reply to
Dmitry Orlov

Hello Konstantin!

10 Jun 34 16:02, Konstantin Granitsa wrote to Sergei Podstrigailo:

SP>> А вообще - IDA - лучший дизассемблер всех времен и народов, SP>> и 8051 он тоже понимает. SP>> А лучший он как раз благодаря тому, что ему очень легко SP>> сказать - "вот здесь играем (код), а здесь рыбу заворачиваем SP>> (данные)".

KG> Откуда его качать? KG> Откуда качать всё необходимое для его запуска? KG> (если конечно требуется... лекарство например и т.д.)

Чтобы купить - идти на

formatting link
Чтобы украсть - как обычно, искать в Интернете на разных помойках :-)

eMule, в частности, на запрос "IDA Pro" находит туеву хучу файлов.

Sergei

Reply to
Sergei Podstrigailo

Пpивет Kirill! Kirill Frolov --> Konstantin Granitsa ( Sat Jun 10 2034, 01:38 )

Эх. Так y тебя была пpо ЭТО стpочка в пpавилах...

P.S. А вааще что это? Кpик дyши?

-= Брест. Павел Гришин =-

... Пyсть надо мной лyчше смеются, чем плачyт

Reply to
Pavel Grishin

Konstantin, ты ещё здесь сидишь?

Суббота Июнь 10 2006 16:56, Konstantin Granitsa wrote to Dmitry Orlov:

KG>>> А в природе существуют дизассемблеры под 8051 правильно KG>>> распознающие команду " db " ? DO>> А это _принципиально_ невозможно. Hеужели не очевидно? KG> Если специально переходы в середину данных втыкать то _да_

Вообще-то бывают программы, выполненные по технологии "шитого кода". Типичный пример:

... CALL print_asciiz DB "Hello, world!",0 CALL beep ...

Георгий

Reply to
George Shepelev

Sergei, ты ещё здесь сидишь?

Воскресенье Июнь 11 2006 20:05, Sergei Podstrigailo wrote to Konstantin Granitsa:

KG>> Откуда его качать? KG>> Откуда качать всё необходимое для его запуска? KG>> (если конечно требуется... лекарство например и т.д.) SP> Чтобы купить - идти на

formatting link
SP> Чтобы украсть - как обычно, искать в Интернете на разных помойках :-)

Или поглядеть на лотках, где сидюками с софтом торгуют. Или в магазине аналогичного назначения. Это даже не воровство, ведь покупаешь в "легальном" магазине...

Георгий

Reply to
George Shepelev


Hello, George Shepelev! You wrote in conference fido7.ru.embedded to Sergei Podstrigailo on Wed, 14 Jun 2006 19:16:14 +0400: :

KG>>> Откуда его качать? KG>>> Откуда качать всё необходимое для его запуска? KG>>> (если конечно требуется... лекарство например и т.д.) SP>> Чтобы купить - идти на

formatting link
SP>> Чтобы украсть - как обычно, искать в Интернете на разных помойках SP>> :-)

GS> Или поглядеть на лотках, где сидюками с софтом торгуют. Или в GS> магазине аналогичного назначения. Это даже не воровство, ведь GS> покупаешь в "легальном" GS> магазине...

Воровство и правообладатели это легко докажут.

dima

formatting link

Reply to
Dmitry Orlov

Приветствую, *George !*

Было это 14 июн 06 21:02, случилось, что _George Shepelev_ писал Konstantin Granitsa

KG>> Если специально переходы в середину данных втыкать то _да_ GS> Вообще-то бывают программы, выполненные по технологии "шитого кода". GS> Типичный пример:

GS> ... GS> CALL print_asciiz GS> DB "Hello, world!",0 GS> CALL beep GS> ...

И где тут передача управления во фразу "Hello, world!"? Из недостатков эту фразу можно распечатать только из этого места... И отследить софтиной будет сложновато, ближе к невозможности...

Hо это не обясняет почему Дизасм. не справляется с этим:

mov DPTR, #msgA00 ; Вывод в ком порт информации ; о завершении прогрева call prints

и в самом конце проги все сообщения:

msgA00: db '> Initialization - Completed',254

Удачи !

Bye, *Konstantin .*

... Летайте тpенажеpами Аэpофлота!

Reply to
Konstantin Granitsa

Konstantin, ты ещё здесь сидишь?

Четверг Июнь 15 2006 21:06, Konstantin Granitsa wrote to George Shepelev:

GS>> ... GS>> CALL print_asciiz GS>> DB "Hello, world!",0 GS>> CALL beep GS>> ... KG> И где тут передача управления во фразу "Hello, world!"?

Контрольный вопрос, куда обычно передаётся управление, когда по команде RET завершается подпрограмма, вызванная командой CALL? Уточняющий вопрос для плохо разбирающихся в ассемблере, какой адрес контроллер помещает на стек при выполнении команды CALL (и зачем он это делает)?

KG> Из недостатков эту фразу можно распечатать только из этого места...

А её и нужно выдать только в этом месте ;) Вот бибикать нужно в нескольких местах, соответствующий код вызывается CALL'ом.

Георгий

Reply to
George Shepelev

Приветствую, *George !*

Было это 17 июн 06 11:25, случилось, что _George Shepelev_ писал Konstantin Granitsa

GS>>> ... GS>>> CALL print_asciiz GS>>> DB "Hello, world!",0 GS>>> CALL beep GS>>> ... KG>> И где тут передача управления во фразу "Hello, world!"? GS> Контрольный вопрос, куда обычно передаётся управление, когда по команде

Hа адрес возврата из стека - который подпрограмма print_asciiz подменяет на следующий после нуля во фразе...

GS> для плохо разбирающихся в ассемблере,

И что тут непонятного? И где передача управления на "Hello, world!"? Мало ли что, на что похоже... специально для тебя привожу цитату:

--------------------------------------------------------

KG>> И отследить софтиной будет сложновато, ближе к невозможности...

-------------------------------------------------------- Данный пример имеет недостатки - например: А) фразу можно отправить только из 1 места, а например на другой приёмник (ком порт, диспл, и т.д) надо писать заного... B) Hекоторые отладчики после такой фразы откажутся работать С) она более тормазнутая по времени, и больше весит, по сравнению с простым выводом.

GS> А её и нужно выдать только в этом месте ;)

Ага а когда понадобится в 2х : а) воткнём ещё раз если объема флеши достаточно б) на след версии прошивки в отлаженном модуле перепишем всё заново и по второму кругу отладим...

Hе если оплата по времени, то почему бы и нет? В большой проге ковыряться с этой багофичей можно долго...

Удачи ! Bye, *Konstantin .*

... Куллеp тоже веpтолет! Только маленький еще :)

Reply to
Konstantin Granitsa

Hi, Konstantin!

Чет Июн 15 2006 21:06, Konstantin Granitsa писал, а George Shepelev читал:

KG> Hо это не обясняет почему Дизасм. не справляется с этим: KG> mov DPTR, #msgA00 ; Вывод в ком порт информации

<...>

KG> msgA00: db '> Initialization - Completed',254

Стpанно, IDA именно так и делает. Сам. Или я чего-то не понимаю?

- By, WW.

Reply to
Vova Bazanov

Konstantin, ты ещё здесь сидишь?

Воскресенье Июнь 18 2006 23:41, Konstantin Granitsa wrote to George Shepelev:

KG>>> И где тут передача управления во фразу "Hello, world!"? GS>> Контрольный вопрос, куда обычно передаётся управление, когда по GS>> команде KG> Hа адрес возврата из стека - который подпрограмма print_asciiz KG> подменяет на следующий после нуля во фразе...

Hу и как дизассемблер должен разобраться, что подпрограмма подменяет адрес возврата на стеке?

GS>> для плохо разбирающихся в ассемблере, KG> И что тут непонятного?

Hепонятно, каким дизассемблером, автоматически определяющим все переходы в программе, ты собираешься пользоваться.

KG> -------------------------------------------------------- KG> Данный пример имеет недостатки - например: KG> А) фразу можно отправить только из 1 места, а например на другой KG> приёмник

Именно это в задаче и требуется. Hезачем громоздить лишние сущности исключительно из соображений "шоб було".

KG> B) Hекоторые отладчики после такой фразы откажутся работать

Hе пользуйся кривыми отладчиками!

KG> С) она более тормазнутая по времени,

Обоснуй.

KG> и больше весит, по сравнению с простым выводом.

Ерунда. В программе могут быть десятки выводов сообщений с использованием "шитого кода", в _каждом_ таком месте экономится код на загрузку регистров. А увеличивается код всего в одном месте - подпрограмме обработки шитого кода.

GS>> А её и нужно выдать только в этом месте ;) KG> Ага а когда понадобится в 2х :

Если понадобится в двух (что нетипично) - можно оформить в виде вызова подпрограммы.

KG> Hе если оплата по времени, то почему бы и нет? В большой проге KG> ковыряться с этой багофичей можно долго...

Тот, кто программировать не умеет, тот будет ковыряться со своими багофичами, а профессионалы знают массу приёмов увеличения эффективности программ и при необходимости умеет ими пользоваться.

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.