Anonymous
😂😂😂
x86-64
Lev
и как у них с безопасностью? Действительно лучше винды?
Anonymous
ну если настроить то да
Anonymous
а так
Anonymous
если порты открыты на внешку то на изи
x86-64
Дыры везде есть, вон айфонцы удаленнно хакают, а ядро там то же
Anonymous
😕😕😕
x86-64
А вот jb так на новую ось и не выпустили (
Anonymous
ну что господа черные шляпы
Anonymous
😂😂😂
ⰿⰰⰾⱏ
Ну линукс проще
Ага его даже прямо с дырами пересочинить можно
Anonymous
че линукс
Anonymous
линукс нор
Anonymous
держится
Anonymous
не без багов но не как в винде
Anonymous
в линухе они быстро фиксяться
Dmitry
да в винде тоже довольно быстро фиксятся, ну, когда о них становится известно :) хотя много багов успевают пофиксить без выхода публичных эксплоитов
Dmitry
но в целом подход security by obscurity довольно уебищен
Anonymous
ахахах абузы пошли...
Anonymous
живем..
Anonymous
😂😂
x86-64
я про то, что интерфейс линукса более понятен, а не про баги
Dmitry
кому более понятен? неподготовленному пользователю?
x86-64
асмопрограммисту, разумеется. вроде тут о них канал
Dmitry
да хуй знает, мне и виндоус тоже понятен :)
Dmitry
да, и системные вызовы
Anonymous
😁😁
Dmitry
а что такого в системных вызовах в Windows? больше параметров и половина из них reserved а другая половина must be null? :)
x86-64
а что такого в системных вызовах в Windows? больше параметров и половина из них reserved а другая половина must be null? :)
Я слышал, что win32-программа, работающая исключительно с сисвызовами под x64 работать не будет, ибо там есть только 64-битные сисвызовы, а 32-битные вообще хз как реализованы
x86-64
да и сами номера сисвызовов не стандартизованы и постоянно меняются
Dmitry
ну во-первых это неправда
x86-64
в линухе всё проще, всё стандартно и неизменно
Dmitry
про то что исключительно с сисвызовами работающая программа для win32 не будет работать под x64
Dmitry
во-вторых, даже 32-битная программа может работать с 64-битными вызовами
Dmitry
слушай, ну ты вызываешь в 32-битной программе CreateFile, он в свою очередь зовет ZwCreateFile, который является mov eax, N ; mov edx, esp ; sysenter - ну вот тебе и системный вызов
Dmitry
все там нормально реализовано и работает
x86-64
про то что исключительно с сисвызовами работающая программа для win32 не будет работать под x64
врать не буду, сам не проверял, но народ пишет, что не работает. да и плавающие номера тоже как-то не подарок
Dmitry
номера да, на них полагаться нельзя, но ты можешь их узнать
Dmitry
ну у народа в коде видимо баг.
Anonymous
а он разве на на NtCreate идет ?
x86-64
номера да, на них полагаться нельзя, но ты можешь их узнать
просканировав ntdll? да, я натыкался на такие утилиты
Anonymous
сразу на Zw
Dmitry
Nt, Zw, какая разница
Dmitry
да, просканировав ntdll
Dmitry
ну это вообще пиздец просто сделать на самом деле
Anonymous
😕
Anonymous
ехе шник без импорта?:
Dmitry
ну да
x86-64
во-вторых, даже 32-битная программа может работать с 64-битными вызовами
а вот это уже интереснее, то есть в 32-битной программе можно сделать 64-битный вызов? А сегмент 64-битный создать можно? в 64-битном режиме сегментация не работает, увы (
Anonymous
😁😁😁😁
Anonymous
естьу кого образец заценить
Anonymous
такого уровня я не видел еще
Anonymous
😕😕
x86-64
в линухе всё зашибись - modify_ldt() и вызывай 32-битный код из 64-битного сколько влезет
Dmitry
у меня вот тоже экзешник без импорта сейчас :) с динамическим импортом
Dmitry
смотри
Dmitry
ты делаешь jmp 0x33:твой_64_битный_код
x86-64
ехе шник без импорта?:
если на сисвызовах, то какой импорт
Dmitry
и исполняешь 64-битный код
Anonymous
ну бл.. я новчек
Dmitry
потом делаешь jmp 0x23:твой_32_битный_код
x86-64
0x33 - какой-то стандартный селектор?!
Dmitry
и исполняешь 32-битный код.
x86-64
*0x23 то есть
Dmitry
ну вот такой селектор, чтобы прыгать из 32 в 64 и обратно :)
Anonymous
😁
x86-64
undocumented, разумеется?
Dmitry
ну естественный хуй
x86-64
да, как-то не допёрло, что GDT может быть одинаковой везде, точно ведь ))
x86-64
Ещё в винде засада - нельзя мапить память со страничной гранулярностью. Минимальный размер - 64k
x86-64
в cygwin сделали тупо: PAGE_SIZE=65536
Anonymous
👍👍😃
Anonymous
почему 36 на конце ?
Dmitry
эм, потому что это 64кб
x86-64
65536 = 2^16
Dmitry
да, нельзя мапить и выделять, но не помню, чтобы это было проблемой когда-то
x86-64
а вот в чём прикол этой гранулярности - непонятно