Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
1

Дизассемблирование: получение кода asm из com

25.05.2016, 21:05. Показов 3993. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
По учёбе очень нужно из программы в формате .com получить исходный код в формате .asm. В Ассемблере я смыслю чуть лучше, чем никак, и сейчас смотрю в IDA и Hiew и не представляю, что делать: IDA показывает одно, а Hiew совершенно другое. Можете подсказать алгоритм действий и/или полезные статьи на тему добычи и очистки исходного кода программы на языке Assembler?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2016, 21:05
Ответы с готовыми решениями:

Дизассемблирование кода
unsigned int Mas; unsigned int i; int main() { for (i=0;i<9;i++) { // Заменить цикл на...

Дизассемблирование кода
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, с вот таким заданием: необходимо...

Дизассемблирование кода команды с префиксом
Покопался в гугле, но ничего толкового не нашел по этому поводу. Помогите дизассемблировать...

Дизассемблирование jar файла, отладка байт-кода
Здравствуйте! Скажите, пожалуйста, есть ли такая возможность: перевести файл jar в байт-код (чтобы...

32
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
25.05.2016, 21:35 2
QWERTYfish, а большой код ? сколько байт ?
0
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
25.05.2016, 21:59  [ТС] 3
tahir_, .com весит 959 байт.
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
25.05.2016, 22:12 4
QWERTYfish, а IDA Free пробывал?

Добавлено через 6 минут
QWERTYfish, кинь файл
0
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 6
25.05.2016, 22:16  [ТС] 5
tahir_, ну да, выше же написано, но IDA ведь не весь исходный код показывает? Или я не так понимаю?
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
25.05.2016, 22:22 6
QWERTYfish, кинь файл, уж любопытно посмотреть,
tahir-s@yandex.ru
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 04:28 7
QWERTYfish, натрави на него отладчик. Зачем ты смотришь в дизассемблере?
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
26.05.2016, 06:54 8
R71MT,
Цитата Сообщение от QWERTYfish Посмотреть сообщение
получить исходный код
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 07:30 9
tahir_, а отладчик какой код покажет?
Дизасемблер может вывалить мусор (к примеру текстовые строки), а отладчик непосредственные команды
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
26.05.2016, 07:57 10
Лучше уточнить у ТС исходную постановку задачи. Почему-то ощущение, что требуется сделать лабу по массивам или текстовым режимам. ТС не смог найти исходник, но "нашёл" готовую com-программу...
Ну невозможно представить другую ситуацию, когда IDA даёт мусор - IDA интуитивно понятна (если чуть знать ассемблер).
1
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
26.05.2016, 08:49 11
QWERTYfish, Ненада Иду обижать, Ида хорошая, Ида умеет делать asm-файлы.
FILE | Produce | Create ASM File . . . или просто Alt + F10
Получается, чтото вроде:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
;
; ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
; є    This file is generated by The Interactive Disassembler (IDA)        є
; є    Copyright (c) 2000 by DataRescue sa/nv, <ida@datarescue.com>        є
; є         Licensed to: Thomas Wright, DVDMods, 1 user, special       є
; ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
;
; File Name   : D:\CAT\_my\1605265.COM
; Format      : MS-DOS COM-file
; Base Address: 1000h Range: 10100h-1012Fh Loaded length: 2Fh
 
 
; ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
 
; Segment type: Pure code
seg000      segment byte public 'CODE'
        assume cs:seg000
        org 100h
        assume es:nothing, ss:nothing, ds:seg000
 
; ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ S U B  R O U T I N E ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
 
 
        public start
start       proc near
 
start       endp ; sp = -2
 
seg000      ends
 
        end start
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 10:07 12
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Почему-то ощущение, что требуется сделать лабу по массивам или текстовым режимам. ТС не смог найти исходник, но "нашёл" готовую com-программу...
Вполне возможно..
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Ненада Иду обижать, Ида хорошая
Интересно, сможет она дизассемблировать такой файл? Штатные дизасмы тут бесполезно юзать, только если в отладчике посмотреть на регистры и записывать на бумажку.

Могу заручиться, что файл чистый.. Исходник нашёл в сети и переписал его под свой лад.
Если кому интересен - могу выложить. Обычный "Hello World!"
Вложения
Тип файла: zip Hello.zip (156 байт, 11 просмотров)
0
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
26.05.2016, 10:27 13
R71MT,
дизассемблировала сплошные CALL
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 10:52 14
Constantin Cat, ..но на исполнение работает и выводит "Hello"!
Идею спёр у одноимённого вируса. Прикольная штука..
0
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
26.05.2016, 10:59 15
R71MT,
Взяла она его, вот.
Assembler
1
2
3
4
                 call    near ptr loc_10103+1
seg000:0103 
seg000:0103 loc_10103:                              ; CODE XREF: seg000:0100p
seg000:0103                 call    near ptr 0DDFDh
Нижней строчке отменяеш код хрестиком, Ида ставит правильную метку, по новой метке включаеш код и так до конца.
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 11:12 16
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Ида ставит правильную метку, по новой метке...
..новая метка и так до конца. Нужен отладчик.. Вот что показывает W32Dasm. Больше ничего нет:

Кликните здесь для просмотра всего текста
Код
Disassembly of File: Hello.COM
Code Offset = 00000000, Code Size = 00000061
Data Offset = 00000000, Data Size = 00000000

+++++++++++++++++++ ASSEMBLY CODE LISTING ++++++++++++++++++
//********************** Start of Code in Object BinaryCode **************
Program Entry Point Not Available

//********************** Start of Code in Segment: 1 **************

:0001.0100 E80100                 call 0104
:0001.0103 E8F7DC                 call DDFD
:0001.0106 E80100                 call 010A
:0001.0109 E8B048                 call 49BC
:0001.010C E80100                 call 0110
:0001.010F E8CD29                 call 2ADF
:0001.0112 E80100                 call 0116
:0001.0115 E8B065                 call 66C8
:0001.0118 E80100                 call 011C
:0001.011B E8CD29                 call 2AEB
:0001.011E E80100                 call 0122
:0001.0121 E8B06C                 call 6DD4
:0001.0124 E80100                 call 0128
:0001.0127 E8CD29                 call 2AF7
:0001.012A E80100                 call 012E
:0001.012D E8B06C                 call 6DE0
:0001.0130 E80100                 call 0134
:0001.0133 E8CD29                 call 2B03
:0001.0136 E80100                 call 013A
:0001.0139 E8B06F                 call 70EC
:0001.013C E80100                 call 0140
:0001.013F E8CD29                 call 2B0F
:0001.0142 E80100                 call 0146
:0001.0145 E8B021                 call 22F8
:0001.0148 E80100                 call 014C
:0001.014B E8CD29                 call 2B1B
:0001.014E E80100                 call 0152
:0001.0151 E831C0                 call C185
:0001.0154 E80100                 call 0158
:0001.0157 E8CD16                 call 1827
:0001.015A E80100                 call 015E
:0001.015D E8C3C3                 call C523
:0001.0160 C3                     ret


:0001.0161 00000000000000000000   BYTE 10 DUP(0)
:0001.016B 00000000000000000000   BYTE 10 DUP(0)
:0001.0175 00000000000000000000   BYTE 10 DUP(0)
:0001.017F 00000000000000000000   BYTE 10 DUP(0)
:0001.0189 00000000000000000000   BYTE 10 DUP(0)
:0001.0193 00000000000000000000   BYTE 10 DUP(0)
:0001.019D 00000000000000000000   BYTE 10 DUP(0)
:0001.01A7 00000000000000000000   BYTE 10 DUP(0)
:0001.01B1 00000000000000000000   BYTE 10 DUP(0)
:0001.01BB 00000000000000000000   BYTE 10 DUP(0)
:0001.01C5 00000000000000000000   BYTE 10 DUP(0)
:0001.01CF 00000000000000000000   BYTE 10 DUP(0)
:0001.01D9 00000000000000000000   BYTE 10 DUP(0)
:0001.01E3 00000000000000000000   BYTE 10 DUP(0)
:0001.01ED 00000000000000000000   BYTE 10 DUP(0)
:0001.01F7 00000000000000000000   BYTE 10 DUP(0)
:0001.0201 00000000000000000000   BYTE 10 DUP(0)
:0001.020B 00000000000000000000   BYTE 10 DUP(0)
:0001.0215 00000000000000000000   BYTE 10 DUP(0)
:0001.021F 00000000000000000000   BYTE 10 DUP(0)
:0001.0229 00000000000000000000   BYTE 10 DUP(0)
:0001.0233 00000000000000000000   BYTE 10 DUP(0)
:0001.023D 00000000000000000000   BYTE 10 DUP(0)
:0001.0247 00000000000000000000   BYTE 10 DUP(0)
:0001.0251 00000000000000000000   BYTE 10 DUP(0)
:0001.025B 00000000000000000000   BYTE 10 DUP(0)
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
26.05.2016, 11:14 17
Цитата Сообщение от Constantin Cat Посмотреть сообщение
Взяла она его, вот.
Да HIEW его сразу взял.
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 11:29 18
Charles Kludge, согласен. HIEW это сила. Без лишних телодвижений справляется.
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
26.05.2016, 11:51 19
R71MT, но мой XVGA ни HIEW, ни IDA без лишних телодвижений не возьмут. Там шифровка от шрифтов Adobe Type1(.PFB) — спасибо Вадиму Суворову, автору FontLab'a и моему учителю. Руссификатр, кстати, не жмётся ни одним архиватором.
0
Эксперт Hardware
Эксперт Hardware
6103 / 2347 / 390
Регистрация: 29.07.2014
Сообщений: 3,108
Записей в блоге: 4
26.05.2016, 12:32 20
Цитата Сообщение от Charles Kludge Посмотреть сообщение
но мой XVGA...
..как-то скачал я его, но пока не разбирался что-к-чему. Надо будет посмотреть.
Там 2 архива: "XVGA_SRC" и "EVA_FONT". Ты про них говоришь?
Миниатюры
Дизассемблирование: получение кода asm из com  
0
26.05.2016, 12:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 12:32
Помогаю со студенческими работами здесь

Что выполняется в приведённом фрагменте кода (дизассемблирование программы на C++)
Подскажите, пожалуйста, что делает данный ASM-код. 0x4019df: c7 45 fc 01 00 00 00 ...

Дизассемблирование DLL, правка кода и компиляция его в DLL
ни разу не писал на c#, не пользовался monodeveloperом. сделано следующее: 1. дизассемблировал...

Получение serial number CPU/HDD asm
Можно ли получить серийный номер процессора или жесткого диска с помощью WinApi? Или же путем...

Упрощение кода ASM
Дан вот такой вот код, который считает А+B и C+D. Числа A,B,C,D записываются в ячейки с адресами...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru