# протестируйте plz app.exe под вислой и прочими осями

Тема в разделе "WASM.HEAP", создана пользователем kaspersky, 2 май 2008.

  1. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    в общем subj. буду очень признателен.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    kaspersky
    xp2 билд 2600
    ок

    зы оно меня хацкерм обозвало
     
  3. dbrain

    dbrain New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2007
    Сообщения:
    197
    Крис, XP с 3 sp, воркает:)))
     
  4. varg

    varg New Member

    Публикаций:
    0
    Регистрация:
    1 май 2008
    Сообщения:
    8
    извиняюсь, под w2k работает...страдаю криворукостью после бессонной ночи :)
     
  5. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Имя ОС Microsoft® Windows Vista™ Ultimate
    Версия 6.0.6001 Service Pack 1 Сборка 6001
    ОК
    Результат: hello, hacker!

    Имя ОС Microsoft(R) Windows(R) Server 2003, Enterprise Edition
    Версия 5.2.3790 Service Pack 1 Сборка 3790
    ОК
    Результат: hello, hacker!
     
  6. GroundHog

    GroundHog New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    35
    Windows XP Professional x64 Service Pack 2 (3790.srv03_sp2_gdr.070321-2337)
    OK
    Результат: hello, hacker!
     
  7. dbrain

    dbrain New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2007
    Сообщения:
    197
    Крис, а чего это за файл? ЛинкероM шо ли балуетесь?)))
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    спасибо всем откликнувшимся!!!
    но очень бы хотелось узнать как он себя поведет под вислой.

    dbrain
    линкер там стандартный.
    а идея в том, чтобы ускорить импорт, отказавшись от такового и заменив его на прямые вызовы. такая простая тулза. пишем dll, пишем спец. тузлу, которая определяет RVA адреса всех фунок, и формирует .h файл, который мы цепляем к базовой программе, а дальше определяем базовый адрес загрузки dll и усе. ничего импортировать не надо. а учитывая, что dll может быть и без фиксапов, то можно очень нехило извратиться, делая прямые вызовы в другую dll по фиксированным адресам. типа чтобы напугать начинающих хакеров ;)
     
  9. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    сейчас дядьки из M$ у нас тут это дело присекут...
    Или под себя это заделают , если нет то задушат!
    За идею респект!!!
     
  10. isaak

    isaak New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    12
    немного не в тему, но:
    [isaak@qwqw app-dll.rar_FILES]$ wine app.exe
    wine: creating configuration directory '/home/isaak/.wine'...
    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Application tried to create a window, but no driver could be loaded.
    Make sure that your X server is running and that $DISPLAY is set correctly.
    Application tried to create a window, but no driver could be loaded.
    Make sure that your X server is running and that $DISPLAY is set correctly.
    ALSA lib seq_hw.c:457:dntknw:snd_seq_hw_open) open /dev/snd/seq failed: Permission denied
    err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
    err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Application tried to create a window, but no driver could be loaded.
    Make sure that your X server is running and that $DISPLAY is set correctly.
    err:ole:apartment_createwindowifneeded CreateWindow failed with error 1114
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    Could not load Mozilla. HTML rendering will be disabled.
    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Xlib: connection to ":0.0" refused by server
    Xlib: No protocol specified

    Application tried to create a window, but no driver could be loaded.
    Make sure that your X server is running and that $DISPLAY is set correctly.
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:ole:apartment_createwindowifneeded CreateWindow failed with error 0
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:ole:apartment_createwindowifneeded CreateWindow failed with error -536870654
    err:wgl:process_attach X11DRV or GDI32 not loaded. Cannot create default context.
    wine: '/home/isaak/.wine' created successfully.
    hello, hacker!

    PS
    Linux qwqw 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:47:07 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
     
  11. Joes

    Joes New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    98
    А как оно будет жить с разными версиями DLL? Из которых импортируются функции т.е.

    Правка: посмотрел, для своего кода, ясно.
     
  12. Ray

    Ray New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    6
    WinXP SP3 - Ok
     
  13. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Что-то неочень понял в чем "крутизна" этой идеи, ее новизна и зачем вообще это надо?..
     
  14. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    isaak
    ага, под wine оно не работает, спасибо. оно и под 9x работать не будет, т.к. я занял адреса, которые в ней не могут быть отведены под PE. а так работать должно на всей линейке NT

    Novi4ek
    тут на самом деле две идеи. основная идея в том, что классический импорт очень медленная штука и загрузка большого кол-ва DLL с большим кол-вом фунок занимает значительное время. и хотя MS придумала много еще более других схем импорта, они все равно тормозят.

    моя идея: определяем RVA-адреса фунок в dll статическим образом после ее сборки и загоняем их в .h файл, который подключаем к программе, использующей их, которая через GetModuleHandle получает базовый адрес загрузки DLL, а после чего вызывает все функции по их фактическим адресам без импорта. накладные расходы на вызов функций - примерно те же, т.е. call ds:func выполняется не быстрее, чем mov r1, [base_addr]/add r2, [RVA_addr_func]/call r2, хотя может показаться, что в первом случае происходит одно обращение к памяти, а во втором - два, это не совсем так, т.к. в функцию еще передаются параметры (как правило, через стек) и как минимум забрасывается адрес возврата. так что мы имеем ничтожный оверхид на вызов (а при вызове в цикле даже выигрыш т.к. call r2 всяко быстрее call ds:func) и все ништяк.

    конечно, возникает проблема со сменой версией dll. и тут действует жесткая сцепка app + dll, но для dll, поставляемых вместе с самой программой, и не являющейся библиотекой общего пользования - все ок.

    касательного данного конкретного примера там смеха ради у dll убиты фиксапы и она неперемещаемая, как и сам exe-файл. в результате адреса всех функций - константа и можно отказаться от сложения базового адреса с RVA. работать такая схема будет, если только не возникнет конфликтов с чем-то еще. т.е. у нас нет заранее загруженных DLL, претендующих на эту область памяти. главное - не "врезаться" в NTDLL.DLL и KERNEL32.DLL, поскольку они проецируются на адресное пространство процесса еще до загрузки самого PE-файла (exe/dll) и уже не могут быть перемещены. вплоть до висты они занимали старшие адреса памяти и потому проблем не возникало, но вот в висте с ее рандомизацией адресного пространства я не знаю какой диапазон адресов могут юзать эти две библиотеки и как заведомо избежать конфликта, если у моей dll убиты фиксапы. в принципе, область за первым мегабайтом и еще плюс сколько-то мегабайт, NTDLL.DLL/KERNEL32.DLL трогать не имеет права, т.к. много (очень много) exe файлов, грузящихся сюда с убитыми фиксапами. то есть если у нас есть один exe и одна dll, то мы можем их разместить здесь и все будет ок, а если у нас до фига dll?! где их размещать?!


    wsd
    шпионы под кроватью ;)
     
  15. Novi4ek

    Novi4ek New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2007
    Сообщения:
    317
    Вот это я не очень понял, почему это ваша идея и почему это вообще идея, вроде бы все более чем банально. Во всяком случае мне уже в голову это приходило давно уже (да и вообще "приходило в голову" как-то неуместно звучит т.к. вроде как это очевидные вещи) - только мне это кажется чем-то бестолковым, м.б. я чего-то не понимаю просто..
     
  16. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Novi4ek
    да нет, идея хорошая!
    если такое попадёться при реверсе, это немного притормозит среднего уровня спеца.
    с миру по нитке...
    Но теперь зеродей попалён и можно ставить на полку :)
     
  17. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    kaspersky
    почему тогда не отказаться от dll вообще? использовать статику там..
    пусть ее может юзают несколько программ. При изменении dll прийдется перекомпиливать все программы, что не совсем гут

    all
    зеродей юзающий длл. ыыы

    зы
    можно вместо экспорта одной функции экспортировать таблицу адресов используемых функций или что-то типа того
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    kaspersky
    Win 98 SE 4.10.2222A
    hello, hacker!
    Только в файл с консоли перенаправляться не желает (в ХР перенаправляется).
     
  19. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    это кто? :)
     
  20. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    Хм... проще сразу создавать таблицу с CRC вызовами API и получать адреса парсингом таблицы экспорта...
    Имхо ваша тема будет актуальна только при создании какогонить крякми там чтоле...
    но заморот в любом случае дафига...

    P.S. мб я чото недопонимаю :dntknw: