ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 21.11.2007, 19:09
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме:
165671

Репутация: 215
По умолчанию

Цитата:
Сообщение от KEZ  
> Этого я так и не понял, почему?

А релоки в длл придумали просто так?
Проблема в том, что каким-то инструкциям нужна VA, а каким-то - смещение, относительно EIP. Поэтому - либо релочишь колы и джампы, либо mov'ы и все остальное.
Как у тебя CRT инициализируется с таким кодом:



?

где _osplatform == 0x42AF20

перенесешь код - будет уже совсем неправильный адрес.
Хех, ну а причем тут CRT? Ни о каком CRT речи не идет. Следовательно не будет таких инструкций, которые бы обращались по зашитым в них адресам, все обращения по абсолютным адресам сведутся к вызовам winapi, адреса которых получены в ходе выполнения программы. Я никогда на самом деле этими вещами не занимался, но ошибок в рассуждениях своих не вижу.
 

  #22  
Старый 21.11.2007, 19:29
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Цитата:
Хех, ну а причем тут CRT? Ни о каком CRT речи не идет.
first post:
http://forum.antichat.ru/showpost.php?p=508892&postcount=1

Цитата:
Сообщение от razzzar  
char * szData = (char *) malloc(GetFileSize(hFile, NULL));
...
free(szData);
...

Цитата:
но ошибок в рассуждениях своих не вижу.
ну для интереса - попробуй, с отключенной крт, скопировать полный образ бинарника (полный, иначе как быть с импортом?. ну или пофиг какой) в другой процесс. не хело ворлд, а что-то более мощное. точно будет косяк где-нибудь.
 

  #23  
Старый 21.11.2007, 19:35
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме:
165671

Репутация: 215
По умолчанию

Цитата:
Сообщение от KEZ  
first post:
http://forum.antichat.ru/showpost.php?p=508892&postcount=1



...



ну для интереса - попробуй, с отключенной крт, скопировать полный образ бинарника (полный, иначе как быть с импортом?. ну или пофиг какой) в другой процесс. не хело ворлд, а что-то более мощное. точно будет косяк где-нибудь.
Ну про первый пост мы уже не говорим, тема немножко другая. Я не буду конечно этим заниматься, что ты говоришь - лень, но интерес остался. Где-нибудь, это где - контрпример приведи. Как известно для доказательства теоремы надо ее получить, опираясь на аксиомы, а для опровержения теории достаточно привести контрпример, не клеющийся с рассуждениями этой теории и известный из постулатов или доказанных ранее теорем, ну и где он? Я специально посмотрел сейчас в отладчике код с множеством циклов, условий, свичей, даже с goto - все переходы относительные..
 

  #24  
Старый 21.11.2007, 23:36
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


Thumbs up

Пример надо приводить, когда точно известно, что предполагается делать - копировать образ бинарника в другой процесс полностью, или копировать туда 1 ф-ю/какой-нибудь кусок кода неизвестно какого размера.
В первом случае - придется специально переносить каждую секцию на другой адрес. Вообще смысла в этом никакого не вижу, разве что для проверки: "а все-таки можно ли вот так сделать"? Во втором случае сказать конкретно ничего нельзя - никто не знает что будешь копировать ... Есть факт - пока jmp'ы (и тп) будут указывать в кусок кода, который двигается вместе с ними - все будет нормально. Соотв, если убрать инструкции, требующие абсолютный адрес (все остальные, грубо говоря) - работать будет. Но тогда надо будет не использовать глобальные переменные или как-то передавать их адреса в выделеной куче. И вообще извращаться. Неужели не проще скопировать все туда же, где оно и было до этого? Это универсально по крайней мере.
 

  #25  
Старый 28.11.2007, 17:29
panda gorl
Новичок
Регистрация: 19.03.2007
Сообщений: 5
Провел на форуме:
6319

Репутация: 0
По умолчанию

Цитата:
Сообщение от razzzar  
Есть программа, которая инжектирует свой код в svchost.exe
Выполняет в нем какой-то код, а потом выполняет действия наподобии этих:
Код:
char * szData = (char *) malloc(GetFileSize(hFile, NULL));
...
free(szData);
Так вот работает все отлично, но как только доходит до выделения памяти выкидует сообщение о ошибке и просьбе отослать отчет в Microsoft. Кто знает с чем связано?
ZaCo - ламо, KEZ прав абсолютно, ибо дело в тупом CRT. Я для того чтобы обойти баг просто тупо переопределил все маллоки и операторы нью\делит:

Код:
void* __cdecl malloc(size_t n)
{
    void* pv = HeapAlloc(GetProcessHeap(), 0, n);
    return pv;
}
void* __cdecl calloc(size_t n, size_t s)
{
    return malloc(n*s);
}
void* __cdecl realloc(void* p, size_t n)
{
    if (p == NULL) return malloc(n);
    return HeapReAlloc(GetProcessHeap(), 0, p, n);
}
void __cdecl free(void* p)
{
    if (p == NULL) return;
    HeapFree(GetProcessHeap(), 0, p);
}

void* __cdecl operator new(size_t n)
{
    return malloc(n);
}
void __cdecl operator delete(void* p)
{
    free(p);
}
Ты инжектишь сразу весь образ своего приложения или только его кусок?
 

  #26  
Старый 28.11.2007, 18:59
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

2panda gorl зачем ты обзываешься? мог бы сказать хотя бы перед этим где я в этом топике не прав
 

  #27  
Старый 28.11.2007, 19:23
panda gorl
Новичок
Регистрация: 19.03.2007
Сообщений: 5
Провел на форуме:
6319

Репутация: 0
Post

Цитата:
Сообщение от ZaCo  
2panda gorl зачем ты обзываешься? мог бы сказать хотя бы перед этим где я в этом топике не прав
не обижайся
 

  #28  
Старый 28.11.2007, 19:33
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

ну и не говори
 

  #29  
Старый 29.11.2007, 18:14
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

DuplicateHandle
__________________


snow white world wide
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ