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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ищу исходники хитрого PE упаковщика 
:(
    Опции темы
nic1986
Дата 23.1.2011, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пытаюсь найти сорцы упаковщика поддерживающего файлы со статическим TLS.И меня уже начинают одолевать мысли что такого в паблике просто нету  smile 
Йоду не предлогать,он несправился даже с таким:
Код

__declspec( thread ) int tls_i=1; 
__declspec( thread ) char tls_char[25]="Hello World";
typedef PTEB (NTAPI *_NtCurrentTeb)(); 
DWORD WINAPI Thr(LPVOID lParam)
{
    for(int i=0;i<tls_i;i++)
    {
        MessageBoxA(0,tls_char,"",MB_OK);
    }
    printf("data site VA: %d\n",(DWORD)tls_char);
    DWORD selfBase=(DWORD)GetModuleHandle(NULL);
    DWORD toNT=( (IMAGE_DOS_HEADER*)selfBase)->e_lfanew;
    IMAGE_NT_HEADERS *ntH=(IMAGE_NT_HEADERS*)(selfBase+toNT);
    IMAGE_TLS_DIRECTORY *itd=(IMAGE_TLS_DIRECTORY*)(ntH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress+selfBase);
    printf("itd->StartAddressOfRawData: %d\nitd->EndAddressOfRawData: %d\n",itd->StartAddressOfRawData,itd->EndAddressOfRawData);
    HMODULE lib=LoadLibraryA("ntdll.dll");
    _NtCurrentTeb NtCurrentTeb=(_NtCurrentTeb)GetProcAddress(lib,"NtCurrentTeb");
    TEB *teb=NtCurrentTeb();
    printf("TlsSlots:\n");
    for(DWORD i=0;i<63;i++)
    {
        if(teb->TlsSlots[i]!=NULL){printf("Index :%d:%s\n",i,(char*)teb->TlsSlots[i]);}
    }
    printf("TlsGetValue:\n");
    for(DWORD i=0;i<1023;i++)
    {
        if(TlsGetValue(i)!=NULL)
        {
            printf("Index: %d:%s\n",i,(char*)TlsGetValue(i));
        }
    }
    DWORD cell=TlsAlloc();
    TlsSetValue(cell,tls_char);
    printf("%s",(char*)teb->TlsSlots[cell]);
    return(0);
}
int _tmain(int argc, _TCHAR* argv[])
{
    CreateThread(0,0,&Thr,0,0,0);
    getch();
    return 0;
}

PM MAIL   Вверх
500mhz
  Дата 16.2.2011, 00:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

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



UPX не?


--------------------

PM MAIL 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.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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