Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> чтение данных из сегмента кода 
:(
    Опции темы
kb64
Дата 4.4.2010, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 2.2.2008

Репутация: нет
Всего: нет



Доброго всем дня!
Возник вопрос.
Когда исполняю "чужеродную" программу, в сегменте кода есть строчка

(40000000) mov eax, ebx  <---- адрес вымышлен (:

Мне нужно (до этой строчки) положить регистр ebx  в переменную.
Как это сделать? Спасибо.

П.С. Если не сложно, то последовательность моих действий, и какие ф-ции курить.
П.П.С. Можно ли сделать CreateRemoteThread с адреса выше и потом ассемблерной вставкой asm mov {variable, ebx} занести регистр в переменную?

PM MAIL   Вверх
GoldFinch
Дата 4.4.2010, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



kb64, судя по вашему посту, вы мало что понимаете в вопросе
начните с чтения литературы, например прочитайте хотя бы вот это

Windows Via C/C++ 
by Jeffrey Richter and Christophe Nasarre  
Microsoft Press © 2008 

Chapter 22 - DLL Injection and API Hooking 
PM MAIL ICQ   Вверх
GremlinProg
Дата 5.4.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106




M
GremlinProg
kb64, мы не обсуждаем взлом и неправомерное использоваание ПО



--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
EvilsInterrupt
Дата 5.4.2010, 17:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



>>kb64, мы не обсуждаем взлом и неправомерное использоваание ПО
а это может быть не взломом, а одим из способов обойти работоспособность малвары, если знаний не хватает удалить малварный комплекс целиком!


kb64, у тебя там точно строчка по этому адресу или инструкция ?

Кажется догадываюсь, у тебя есть инструкция по 0xHHHHHH адресу и ты знаешь что там используется регистр ebx для занесения его значения в другой регистр и тебе хочется знать, что это за значение. Причем программно, так ?

Если да, то есть два способа:
1) поставить сплайсинг т.е. прыжок на свой код, потом выполнит родную и прыгнет за нее
2) поставить хардварныый брякпоинт, для этого специально вызвать багу скажем деление на нуль, поставить бряк и убрать багу, сказав при этом "работай дальше"

вот пример из моего проекта, по разгребанию того что делает порно-блокер:
Код

#include <windows.h>

HANDLE hFile;

/*----------------------------------------------------------------------------*/
extern "C" int __declspec(dllexport) api()
{
  return 0;
}
/*----------------------------------------------------------------------------*/
void __declspec(naked) DumpMemSnapshot()
{
  void* mem;
  DWORD tmp;

  __asm {
    mov ecx,dword ptr[ebp+0x0C]
    and ecx,0xFFFF0000
    mov mem,ecx
    pushad
  }
  
  WriteFile(hFile,mem,0xE0,&tmp,NULL);

  __asm {
    popad
    push 0x00401212
    push 0x00401276
    ret
  }
}
/*----------------------------------------------------------------------------*/
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD  fdwReason, LPVOID lpReserved )
{
  BYTE* HookMem;
  DWORD HookOffs;

  switch(fdwReason)
  {
    case DLL_PROCESS_ATTACH:
    hFile = CreateFileA("vmmem.dmp",
                GENERIC_WRITE,
                FILE_SHARE_READ,
                NULL,
                CREATE_ALWAYS,
                FILE_ATTRIBUTE_NORMAL,
                0);
    if(hFile==INVALID_HANDLE_VALUE)
      return FALSE;

    /* Set Hook */
    HookOffs = (DWORD)(DumpMemSnapshot) - 0x0040120D - 5;
    HookMem  = (BYTE*)0x0040120D;
    *(DWORD *)&HookMem[1] = HookOffs;
    
    break;
  }
  return TRUE;
}


Это сообщение отредактировал(а) EvilsInterrupt - 5.4.2010, 17:28
PM MAIL WWW ICQ Jabber   Вверх
GremlinProg
Дата 6.4.2010, 09:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(EvilsInterrupt @  5.4.2010,  19:27 Найти цитируемый пост)
а это может быть не взломом, а одим из способов обойти работоспособность малвары

смешно, конечно, но я все же сделаю комментарий

EvilsInterrupt, если ты даешь прохожему ключи от дверей своей квартиры, то будь уверен, что пропавшие оттуда ценности не результат того, что ты забыл выключить свет в подъезде

примерно в таком же ключе можно во первых - отнести приведенный код к обходу работы "вируса", во вторых - к просмотру содержимого регистра (видно же, что тут слизывается дамп по адресу в регистре, что к теме не имеет ни какого отношения), а в третьих - программный обход его работы отрывать от формулировки "взлом и неправомерное использоваание ПО"

вот как раз третье, даже из всех благих намерений точно не решается в разделе "C/C++: Системное программирование и WinAPI"

Добавлено через 1 минуту и 55 секунд
хотя, тут даже малварой не пахнет


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.