информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Извиняюсь! В процессе отправки поста МД грохнулся! 16.03.02 12:37  Число просмотров: 976
Автор: Zef <Alloo Zef> Статус: Elderman
Отредактировано 16.03.02 12:39  Количество правок: 1
<"чистая" ссылка>
На самом деле проблема такая: под МД шмат кода хранится в криптованном виде, потом декриптуется и запускается.
Как из этого фрагмента организовать вызовы АПИ?
Если бы там это было через прерывания, я бы не спрашивал.
<programming>
Как вызвать АПИ из перемещаемого кода? 16.03.02 07:54  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Как вызвать АПИ из перемещаемого кода? 16.03.02 10:01  
Автор: vp016 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
hi!
Oooo!:) Брат по разуму! Короче говоря абсолютный адрес можно загрузить
в регистр:
mov[lb] $128, %eax
call *%eax
эквивалент:
int (* f)();
f = 0x80;
(* f)();
Для unix, я насколько понимаю о чем идет речь :), проблем нету - используешь прямо системные вызовы int, сам код можно написать
переместимым сравнительно просто:
jmp test
test1:
mov %esp, %ebp # сдесь стало быть мы можем вычислить адрес скоторго у нас прога:)
...
call test1
Для Вин32 проблема состоит в том что для апи - адреса в dll (их можно вытянуть из PEаголовка), но от версии вин зависит где искать PE заголовок. Если бы микрочлены выложили полное описание системных вызовов, то можно было бы сделать так как в unix. Если интересно, стукни в 144221400 и обсудим более подробно задачу, если это то о чем я подумал, я смогу помочь:).
Извиняюсь! В процессе отправки поста МД грохнулся! 16.03.02 12:37  
Автор: Zef <Alloo Zef> Статус: Elderman
Отредактировано 16.03.02 12:39  Количество правок: 1
<"чистая" ссылка>
На самом деле проблема такая: под МД шмат кода хранится в криптованном виде, потом декриптуется и запускается.
Как из этого фрагмента организовать вызовы АПИ?
Если бы там это было через прерывания, я бы не спрашивал.
Извиняюсь! В процессе отправки поста МД грохнулся! 17.03.02 19:04  
Автор: Biasha <Бяша> Статус: Member
<"чистая" ссылка>
> На самом деле проблема такая: под МД шмат кода хранится в
> криптованном виде, потом декриптуется и запускается.
> Как из этого фрагмента организовать вызовы АПИ?
> Если бы там это было через прерывания, я бы не спрашивал.
У приложения есть таблица импортов, в которую загрузчик записывает адреса функций, статически связанных - из этой таблицы и бери адреса.
А ещё можно извратиться и вызывать функции через int 2Eh.
А через int 2Eh как? 18.03.02 04:05  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
А через int 2Eh как? 18.03.02 08:38  
Автор: vp016 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Знал бы прикуп - жил бы в Сочи. Описание системных вызовов в вин, мне неизвестно:(.
Извиняюсь! В процессе отправки поста МД грохнулся! 16.03.02 13:24  
Автор: YURICH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> На самом деле проблема такая: под МД шмат кода хранится в
> криптованном виде, потом декриптуется и запускается.
> Как из этого фрагмента организовать вызовы АПИ?
> Если бы там это было через прерывания, я бы не спрашивал.
GetProcAddress?
Дык, его же то же надо вызвать, а как? 17.03.02 02:51  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Я думаю, лучше сделать некриптованные "переходнички" в теле проги, вот тока вопрос: а подпрограммы при загрузке садятся на постоянные относительные адреса, или "плавают" друг относительно друга?
Дык, его же то же надо вызвать, а как? 17.03.02 12:28  
Автор: vp016 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я думаю, лучше сделать некриптованные "переходнички" в теле
> проги, вот тока вопрос: а подпрограммы при загрузке садятся
> на постоянные относительные адреса, или "плавают" друг
> относительно друга?
При таком раскладе можно получить дескриптор на загруженную библиотеку
или загрузить ту кокторую нужно loadlibrary. затем получить указатели на необходимые функции getprocessaddr. Ну и дальше вызывать по указателям.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach