The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз эмулятора DOSBox Staging 0.81"
Отправлено n00by, 17-Фев-24 08:20 
Читаемость кода - понятие весьма растяжимое. Реверсер читает и листинг дизассемблера, переписывая его в более понятную остальным форму. При этом возникает проблема: при переписывании всего 1 в 1 времени уходит столько, что игра обычно не стоит свеч. Классическое решение - типовые части пишутся с нуля (т.н. "clean room desing" - это в первую очередь ускорение процесса, а не обход лицензионных ограничений).

Бывает, что некоторым вообще не важно понимать, как оно работает, тогда "рипают" код, чистят листинг IDA Pro и приводят его к виду, собираемому ассемблером. Похоже, тут автор пошёл еще дальше и приводит к виду, собираемому компилятором [*]. Можно собрать под другой процессор, но читаемость от этого лучше не становится. Да ещё и теряется изоморфность, то есть результат может работать отлично от оригинала. Именно поэтому потом запускаются оба варианта и сравниваются.

Не стоит ругать автора за якобы мартышкин труд, это всё не просто даже в теории. Главный вопрос тут: как так получилось, что очередной самородок вместо создания чего-то полезного занят "Looking for job in EU, Ca".

[*]
start:
    R(STI); // 12 sti
    R(CLD); // 13 cld
    R(PUSH(seg_offset(_data))); // 14 push _data
    R(POP(ds)); // 15 pop ds
    R(ah = 9;); // 16 mov ah,9
    R(dx = offset(_data,_msg););    // 17 mov dx,offset _msg
    R(_INT(0x21));  // 18 int 21h
    R(ax = 0x4c00;);    // 20 mov ax,4c00h
    R(_INT(0x21));  // 21 int 21h

struct Memory m = {
{0}, // padding
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // segment _data
{'H','e','l','l','o',' ','W','o','r','l','d','!','\n','\r','$'}, // _msg

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру