|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.12.2020, 07:48 | #1 |
Пользователь
Регистрация: 02.10.2020
Сообщений: 17
|
Как получить доступ к другому бинарнику?
Есть iso файл, один из бинарников - boot.bin, загрузочный, из него я хочу получить доступ к другому бинарнику без файловой системы по адресу. У boot.bin - 0x7c00, у bin2.bin - 0x7A00.jmp не работает, может есть варианты? (Я новичок и не хочу париться на счёт файловой системы, это сложно ) Использую Nasm в 16-ти битном режиме.
Последний раз редактировалось TheReactiveMouse; 02.12.2020 в 07:50. Причина: Добавление яп |
02.12.2020, 08:41 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
jmp должен работать, т.к. сегмент в данном случае один-и-тот.
есть ещё jmp far, но он для межсегментных вызовов, когда к смещению добавляется ещё и адрес сегмента.
Нашедшего выход - затаптывают первым..
|
02.12.2020, 08:56 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
02.12.2020, 14:15 | #4 |
Пользователь
Регистрация: 02.10.2020
Сообщений: 17
|
R71MT, Может быть надо jmp 7A00h:0000? И может обьясните на примере?
|
02.12.2020, 16:12 | #5 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Это и есть "jmp far", т.к. адрес указывается в формате сегмент:смещение
Только если это загрузчик, то будет наоборот - 0000 = сегмент в регистре CS, и 7A00 = смещение в данном сегменте. Судя по всему, модуль ядра "bin2.bin" ты положил в память 0000:7A00, и хочешь передать на него управление из загрузчика, который находится в том-же сегменте(0000), только по базовому адресу 0000:7С00. Поэтому это считается обычным NEAR переходом (в пределах 64Кб) и простой "jmp" тут должен работать. Есть ещё условные переходы типа JZ/JNB/JNC и т.п - они считаются близкими SHORT и не могут выходить за пределы 128-байт. Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 02.12.2020 в 16:14. |
03.12.2020, 08:04 | #6 |
Пользователь
Регистрация: 02.10.2020
Сообщений: 17
|
R71MT, Попробовал, не помогло, может дело в том что я делаю .iso через UltraISO?
Последний раз редактировалось TheReactiveMouse; 03.12.2020 в 08:11. |
03.12.2020, 10:24 | #7 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
вполне возможно...
как-вариант - пробуй чистый бинарник, не пакуя в iso. с какого носителя вообще грузишся? флоп, флешка, диск? я когда-то делал себе загрузчик с осью - всё работало с реального флопа. если нужно могу скинуть исходники.
Нашедшего выход - затаптывают первым..
|
03.12.2020, 17:31 | #8 | |
Новичок
Пользователь
Регистрация: 03.12.2020
Сообщений: 12
|
Цитата:
конкретно, что и куда и зачем, ответ получил бы уж... Надоть-как? Я загружаюсь с LiveCD/USB (или свое Указать), хочу установить/запустить (Указать), что-то в этом роде... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Доступ из одного документа к другому | KemanSR | Visual C++ | 0 | 01.05.2015 19:06 |
Передать управление другому бинарнику | EnderChiken | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 22.02.2013 14:46 |
Как подключиться к другому компьютеру по IP и получить список общих папок | calypso | Работа с сетью в Delphi | 1 | 02.12.2012 20:00 |
получить доступ к другому окну | champx | Win Api | 2 | 04.10.2012 22:41 |
Делфи. Функция, возвращающая букву системного диска(раздела). Или как ее можно получить по-другому? | быдлокодер | Помощь студентам | 2 | 08.06.2010 23:26 |