Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
nohack
7 / 7 / 0
Регистрация: 18.08.2010
Сообщений: 34
#1

непонятный код - Assembler

26.09.2010, 21:33. Просмотров 505. Ответов 6
Метки нет (Все метки)

Не могу понять смысл фрагмента программы. Пробовал сам разобраться, но ничего толкового пока не нашел. Предполагаю, что здесь мы пробуем обратиться к DOS обходя 21h.
1. Как это использовали CALL:по смещению 5 в PSP через db?
2. Как именно здесь округляется параграф до адреса, кратного 16?
Assembler
1
2
3
4
5
push ds
mov ax,ds                            ;регистр DS  ...
                db 05h                 ;Код команды
add_to_ds: dw 0                   ; " ADD AX,00h "
         mov ds,ax
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 21:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос непонятный код (Assembler):

Hello непонятный вывод - Assembler
Здравствуйте, объясните пожалуйста почему не выводится просто Неllo а с закарючками и как избавиться, .model tiny ;модель памяти...

Преобразовать код на Java в код для ассемблера 3AA - Программирование
переделать Java программу в программу 3AA все данные типа int for(int i = 0; i < 10; ++i) { if(a < b){ a = a + 1; } else { b...

Преобразовать 16-ти разрядный двоичный код в код 8-4-2-1 - Assembler
Помогите пожалуйста составить программу для Intel 8051, которая преобразует 16-ти разрядный двоичный код в код 8-4-2-1 и исправит ошибки,...

Составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код - Assembler
составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код

Непонятный Код - C++
К какому языку относится следующий код: use Net::SSH2; my $user = "root"; my $pass = "yahh"; my $ip = "127.0.0.1"; my...

Непонятный код - PHP
Вот есть такой кусок require_once"templete/header.tpl"; if(isset($p)): if(is_file("core/$p.control.php") != FALSE): ...

6
Tronix
157 / 104 / 5
Регистрация: 22.08.2010
Сообщений: 215
26.09.2010, 21:44 #2
Очень маленький фрагмент, смысл по нему понять не возможно. Давайте весь код.
Доставая из шкафчика свой магический шар и зажигая свечи, предположу, что в переменную add_to_ds dw 0 по ходу исполнения другого какого-то кода заносится какое-то значение, и ds сдвигается на него.
Зачем это сделано - тут даже шар не подсказывает.
0
nohack
7 / 7 / 0
Регистрация: 18.08.2010
Сообщений: 34
27.09.2010, 20:38  [ТС] #3
Вот исходник
0
Вложения
Тип файла: txt Нерезидентный сом вирус.txt (10.3 Кб, 27 просмотров)
Tronix
157 / 104 / 5
Регистрация: 22.08.2010
Сообщений: 215
27.09.2010, 20:49 #4
А, ну так я и говорю в эту переменную заносится размер зараженной проги в параграфах, потом DS сдвигается на это число, чтобы тело виря не путалось в свои переменных.
1
nohack
7 / 7 / 0
Регистрация: 18.08.2010
Сообщений: 34
27.09.2010, 21:56  [ТС] #5
Так пока не требовалось использовать метку. Получается вроде перехода но там же dw (это вроде запись в ячейку памяти). И еще не понятно "db 05h"
По Вашему, так и можно вместо
Assembler
1
2
mov byte ptr add_to_ds,al                                      
mov byte ptr add_to_ds+1,ah
сделать вроде
Assembler
1
mov ds,ax
сразу
0
Tronix
157 / 104 / 5
Регистрация: 22.08.2010
Сообщений: 215
27.09.2010, 22:34 #6
db 05h - опкод команды add ax.
dw 0 - операнд этой команды кода пробегаемся по коду в первый раз. Получается команда add ax,0, то-есть при первом запуске ничего не делается с сегментом данных.
Далее вирь заражает проги, записывая свое тело в конец, а в переменную dw 0 заранее высчитанное кол-во параграфов зараженной проги. Потом когда запускается зараженная прога, получается так:

---Старт тела вируса---
add ax,[а тут уже кол-во параграфов зараженной проги] а не 0, как в прошлой раз
mov ds,ax
jmp на основное тело виря
---Зараженная программа
nop
nop
nop
---Основное тело виря
ищем файло,заражаем
и передаем управление зараженной проге
jmp Зараженная прога

Прмерно конечно набросал, я на самом деле код не смотрел того виря который в приложении, ибо лениво да и устал, но примерно скорее всего так.
1
nohack
7 / 7 / 0
Регистрация: 18.08.2010
Сообщений: 34
27.09.2010, 22:43  [ТС] #7
Спасибо за ответ
0
27.09.2010, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2010, 22:43
Привет! Вот еще темы с ответами:

Непонятный код? - C++
Подскажите, что выполняется в следующем коде и каким образом? int main() { char buf; while ( cout << "> " && cin >>...

непонятный код - Программирование Android
ДОбрый день, подскажите пожалуйста, что тут к чему case MENU_GET_NEXT_PAGE: // increment the startFrom value and...

Непонятный код - PHP
Добрый день! Столкнулся с такой проблемой: Есть лэндинг, формы заявки ведут на mailer.php Нужно было немного подправить в mailer,...

Непонятный код - JavaScript
Ковыряясь в коде одного движка, нашел интересную запись: var floatIndices = ; for (var i = 0; i <...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.