Сейчас на форуме: igorcauret (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› AeroGlass for Win8.1 |
Посл.ответ | Сообщение |
|
Создано: 13 июля 2014 15:45 · Поправил: v00doo · Личное сообщение · #1 Все же рискну написать, хотя сейчас меня закидают помидорами, но все же. В общем цель: http://sourceforge.net/projects/glass8.berlios/files/win81_x86_1.2.5.7z/download Инжект в винду для восстановления Aero в 8.1 (точнее переписанное Aero, отрисовывается через DirectX) Лоадырь - aerohost.exe Ничего особенного не делает просто грузит функу InjectGlass в dwmglass.dll. Все остальное в dwmglass.dll (либа ничем не накрыта, но внутри проверка целостности). Первая проверка проcто на SID пользователя, от которого грузится либа: Code:
Дальше инжектится стандартным методом в winlogon.exe через CreateRemoteThread ну и делает свои грязные делишки. И тут в общем первый вопрос: как это все нормально трейсить? Так как нужно добраться до функи по адресу 100092A0 (offset 86A0), там основная проверка. Либа грузит donation.key, если тот существует. Code:
А вот дальше начинается уже основное: Получает инфу CPU Code:
А затем, кажется хэширует это все, вроде это Tiger-192 Code:
Вроде он: http://www.cs.technion.ac.il/~biham/Reports/Tiger/ Но я не уверен в этом и в том, что оно просто хэшит его. После этого получает ид жесткого Code:
И его снова хэшит и мешает с предыдущем, потом все это еще как я понял частями делит и высчитывает ID пк. А вот дальше использует уже очередность крипто апи: CryptAcquireContextW CryptImportKey CryptCreateHash CryptHashData CryptVerifySignatureW И все бы хорошо было бы, запатчить проверку после CryptVerifySignatureW и либа съест любой файл-пустышку, но вот внутри где-то проверка целостности либы и это не CRC. Несколько человек говорили, что вычисляется хэш либы (как - хз) и с помощью него расшифровывает шаблон для поиска нужного места в dwm.exe для отрисовки самой прозрачности. В крипто апи не силен, но до них еще добраться надо, кто опытнее, может сказать, есть ли смысл вообще до них рыть? В какую сторону вообще смотреть? Может проще будет сдампить кусок (если возможно) с правильными значениями после расшифровки, но тогда где кусок и как добраться до него, если либу трогать нельзя? Писать свой лоадырь который зациклит ее? Но функция вызывается не раз, как поймать нужный, именно загрузку ключа? ![]() |
|
Создано: 13 июля 2014 16:25 · Личное сообщение · #2 Первое, что пришло в голову: Копирнуть оригинальную либу, Хукнуть CreateFile&CreateFileMapping и перенаправлять на копию оригинала. Второе: изменить пару байт в либе, поставить бряк на выше указанные функции и ждать срабатывания. И через f8 шуровать до выхода из функции, а уже в теле приложения изучать. ![]() |
|
Создано: 13 июля 2014 16:34 · Поправил: v00doo · Личное сообщение · #3 vovanre, на счет хука, что-то подобное есть, уже кто-то сделал лом через подгрузку прокси-пустышки msimg32.dll, которая в свою очередь грузит другую либу и та патчит либу аеро в памяти, только вот косяк, из-за особенности винды, точнее запуска (полугибернация) слетает нафиг такой патч и при нескольких еще обстоятельствах, в общем поэтому и решил, что надо нормально ковырять ее. А на счет брякаться на CreateFile, то пробовал, но то ли у меня руки кривые, то ли черт его, постоянно попадал только на чтение файла лицензии, лога и в общем на все, кроме самой либы, на счет перенаправления идея тоже была, но место которое я нашел, оказалось совсем не тем. ![]() |
|
Создано: 13 июля 2014 18:09 · Личное сообщение · #4 |
|
Создано: 13 июля 2014 22:17 · Поправил: Dart Raiden · Личное сообщение · #5 |
|
Создано: 15 июля 2014 00:41 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› AeroGlass for Win8.1 |
Эта тема закрыта. Ответы больше не принимаются. |