• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья ROPInjector: Using Return-Oriented Programming for Polymorphism and Antivirus Evasion

Пожалуйста, обратите внимание, что пользователь заблокирован
обосрать Рела
Релу не привыкать.

Повторюсь, на васме можешь пудрить мозги дальше, тут не выйдет
На васме есть старая добрая традиция угорать со всяких психически больных и блаженных, никто там уже никого другого серьезно не воспринимает, так что все нормально.
 
никто там уже никого другого серьезно не воспринимает, так что все нормально.
Это понятно. Но подобные высказывания «Это все чушь!» на развёрнутую заметку и другой 101 способ унизить форумчан (мнимой) элитарностью - это все порождает срачи. Почему мнимая? Ибо дважды разбита в пух и прах, при детальной дискуссии про ROP, поциент не в курсе о подобных работах, но зато принимается судить, о том, что это чушь -> провоцирует других задать вопрос, не дурак ли дядя Петя, за что, в последствии эти самые «другие» получат варны незаслуженно. И второй раз - сейчас, уличён в несостоятельности публикаций, на которые неоднократно ссылается в «серьезных переговорах», в серьёзной дискуссии участвовать не готов, как в теме о ROP, так и тут по анклавам. Чутка копнешь ухватишь за яйца - уже становится понятно, что софистика, ибо «не помню что сам писал, утверждение не чёткие». Уровень дискурса пиздец, а гонору…
 
Последнее редактирование:
Haunt

> буду кидать варны за флуд.

Если ты что то не понял, тебе подпись модера не помогает, её можно и убрать. Мне глубоко пх на твоё мнение ты нуби и не вполне понимаешь масштаб задач. Если описывать все мелочи и детали, то можно утонуть. Поэтому описывается только общая идея кратко.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Уровень дискурса пиздец, а гонору
Он просто больной на голову человек, понятно, что толку таких держать и терпеть мало, но на инвалидов же не принято обижаться за то, что они инвалиды.
 
Если описывать все мелочи и детали, то можно утонуть. Поэтому описывается только общая идея кратко.
Ты шутишь? О чем ты сейчас? Ты не представляешь, насколько далеко твоим публикациям до уровня научной статьи. У тебя дай бог 1.5 листа А4 опуса, написанного будто бы в состоянии наркотического опьянения ибо ты и сам не помнишь, что писал. Разбираем hardware breakpoints -> ты говоришь, что чушь -> я привожу отсылки на твои работы, где ты неоднократно упоминаешь хардверные ловушки -> твои работы - чушь. Действительно, можно не то, что захлебнуться, а и утонуть, не смеши меня. Я и посерьёзнее работы разбирал, и даже не прочь бы утонуть в качественной публикации от Инди. Проблема только есть, Инди не способен подобное написать. Так что проблема не в том, что никто утонуть не захочет, проблема в том, что контента в публикациях Инди, как и воды в китайских бассейнах - по коленки всего.
ты нуби и не вполне понимаешь масштаб задач
Ты должен понимать, что мне не нужно быть курицей, чтобы понять, что яйца протухлые. Мы уже все оценили твой масштаб. 1.5 страницы за более 10-15 лет в теме. А свои фантазии оставь при себе, они ничем не подкреплены, их никто не видел.
Если ты что то не понял, тебе подпись модера не помогает, её можно и убрать.
Я то как раз таки все понял, на то я и модер, чтобы понимать с кем общаюсь, благо скилла хватает за пару диалогов понять, что передо мной обыкновенный интернет тролль, а не научный деятель. По этому, повторюсь ещё раз. Здесь профильный профессиональный ресурс, флудить о заслугах, которые никто не видел, принижая достоинство других форумчан, кто не понимает и не принимает твой бред - не сюда.
 
Последнее редактирование:

DildoFagins


> Он просто больной на голову человек,

Походу так, но это не точно. Терпеть держать чушь какая то, товарищ модер понаписал выше какой то фигни - мне всё равно. Мне не особо интересно тут тех инфы нет одни какие то школьные понты.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
какие то школьные понты
Конечно, школьные понты куда хуже понтов псевдо-спеца системщика средних лет. Главное, не забывать напоминать о своих понтах в любых темах, даже в тех, в которых ты не смыслишь ничего.
 
Выше приведены все пруфы, которые вы игнорируете, при этом продолжаете флудить и принижать достоинство других участников форума.

DildoFagins


Ты и модер ничего не смыслите и поэтому поливаете грязью. С тобой всё давно ясно, но модер нарушил все возможные правила. Он должен быть не заинтересован, тн быть в тени. И если обьём мозга не позволяет что то понять, то не высказывать своё неверное мнение.

Я не писал научные труды. Все хотят готовых решений. но увы нужно свою работу провести. Я дал лишь общие идеи и принципы далее разрабатывайте сами, так вот это устроено.
 
Ты и модер ничего не смыслите и поэтому поливаете грязью.
Ещё раз повторяю, хватит заниматься софистикой. Тебя никто грязью не поливает. Ты отошёл в сторону от конструктивного диалога, у тебя нет объективных контр-аргументов, все, чем ты занимаешься - говоришь о том, какие все вокруг нуби. Это не уровень дискурса xss.pro. Это флуд.
Я дал лишь общие идеи и принципы далее разрабатывайте сами, так вот это устроено.
Ты дал статьи с описанием механизмов hardware breakpoints. На основе этого был сформулирован POC, который ты назвал чушью, хотя он основан на твоих статьях. Значит ты не дал ничего. Вкинул ложную инфу и разводишь срачи вокруг этого. Почему ты считаешь, что я должен быть к этому благосклонен?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ты и модер ничего не смыслите и поэтому поливаете грязью
Ну как выяснилось, ты тоже ничего не смыслишь в своих нечетких рассуждениях. Очень странная идея, что в бреду сумасшедшего кто-то другой должен находить и понимать смысл. Напоминает мне об учителях литературы в школах, которые хотят, чтобы дети находили потаенный смысл в бреде наркоманов *янного века.
 
1. Хардверный трек памяти, установка ловушек на память. В этом случае на блок памяти
ставится ловушка, которая срабатывает при обращении к памяти.
Вот фрагмент, это кусочек интерпретатора байт-кода. Какие-либо цели противодействия эмуляции не ставились, проводился эксперимент по автоматическому управлению памятью в программах на асме, начало описания и исходники здесь: https://xss.pro/threads/60235/
Код:
; Копирование выполняем инструкцией movs: при вызове сборщика мусора исходное
; значение может быть изменено, модификация и окажется скопирована в приёмник
; при возврате из обработчика прерывания.
Instruct    MAKEBLOCK
    mov    ecx, [opcode.1]        ; wosize
    mov    eax, ecx
    to_wosize    eax
    or    eax, [opcode.2]        ; tag
    next_opcode    2
;    Сохраняем возможную ссылку для учёта сборщиком мусора.
    push    accu
    stos    Val_header[alloc_small_ptr]
    mov    rsi, rsp
;    Сохраняем адрес блока для корректировки скопированных ссылок сборщиком мусора.
    push    alloc_small_ptr
rep    movs    qword[alloc_small_ptr], [rsi]
    pop    accu    ; адрес блока (за заголовком) скорректирован сборщиком мусора
    mov    rsp, rsi
    Instruct_next
end Instruct
Память выделяется вот этой командой rep movs qword[alloc_small_ptr], [rsi].
Если RDI (макрос alloc_small_ptr) адресует неотображённую страницу, генерируется сигнал SIGSEGV (код для Linux, но суть везде одна), а обработчик коммитит страницу. И есть такой нюанс - обработчик сканирует ранее выделенную память, находит блоки, на которые есть ссылки (т.е. их адреса сохранены в стеке или других блоках), все эти живые блоки сдвигает к началу кучи и корректирует ссылки. Это называется сборка мусора по алгоритму mark-compact. Следствие из нюанса - если произошло уплотнение кучи, значит следует скорректировать значение RDI в прерванном потоке, что и делается через структуру, где сохраняется контекст потока (в Linux это ucontext). Поскольку movs атомарна, при возврате из обработчика инструкция будет перезапущена с новым значением RDI и скопируются актуальные данные. Если заменить movs на набор простых инструкций, которые выполняют тоже самое, то интерпретатор будет иногда падать, поскольку набор исполняется неатомарно: будет скопировано не то или не туда. Соотвественно и некоторые эмуляторы отвалятся, если не учитывают атомарность movs.

Подходит ли это под описание? Обращение к блоку памяти есть, а ловушки в смысле trap из IA SDM том.3 нет, тут #PF, fault. Но в то же время:
Там был page_guard стековые события.
Точно так же как и финт с отладочными регистрами из сообщения #6 - это fault.
Trap в принципе отличается от fault тем, что генерируется после исполнения, т.е. без ухищрений инструкция может быть перезапущена только во втором случае.
exception classifications.png
Значит "ловушка" может означать всё что угодно. Почему автор так написал, это другой вопрос. Если он реализовал, значит ему самому всё более-менее понятно. :) Может, он хотел спровоцировать обсуждение, что бы появились какие-то новые идеи, но кто-то нечаянно наступил кому-то на больную мозоль и всё скатилось в обсуждение личностей.

Очень странная идея, что в бреду сумасшедшего кто-то другой должен находить и понимать смысл.
Джон Форбс Нэш-младшийамериканский математик, работавший в области теории игр, дифференциальной геометрии и изучения уравнений в частных производных[6][7]. Его теории широко используются в экономике.

Лауреат Нобелевской премии по экономике 1994 года за «Анализ равновесия в теории некооперативных игр» (вместе с Райнхардом Зельтеном и Джоном Харсаньи)[8][9]. Джон Нэш — единственный человек, удостоенный Нобелевской премии в области экономических наук и Абелевской премии.
 
Последнее редактирование:
Может, он хотел спровоцировать обсуждение, что бы появились какие-то новые идеи, но кто-то нечаянно наступил кому-то на больную мозоль и всё скатилось в обсуждение личностей.
Тут нужно видеть цель человека. Когда человек хочет что-то обсудить и развить новые идеи, диалог строится иным образом с людьми. Это если цель «прийти к истине». Если же цель в элитарном выделении и любой предметный вопрос скатывается в «ты нуб, а я молодец», какой смысл и польза от таких сообщений, кроме как унижение достоинства остальных? Была бы там научная работа, которую никто не понял, это одно. Но, извините, публикации настолько не понятные, что, как мы выяснили, автор и сам отзывается о них следующим образом.
Я даже чётко и не помню что это значит, утверждения не чёткие.
Стоит резонный вопрос, каким образом тогда кто-то другой должен в этой матчасти разбираться, чтобы «не быть нуби». Эта логическая ошибка и выводит на чистую воду настоящие цели автора - троллинг. Это при том, что данная им же характеристика его публикаций была «выведена на чистую воду», а не признана автором «как есть» в процессе публикации, чтобы никто времени не терял, пытаясь серьезно в ней разобраться. Когда же цель - достичь истины, даже дискурс иной. Сообщения строятся подобно твоему выше, с иным посылом. Цель достичь истины - приветствуется. Иные цели, для подпитки ЧСВ, троллинг, etc - нет. В первом случае имеем конструктивный диалог, во втором - очаг срачей, которые не нужны. Поймите меня правильно, все мы в чем-то не разбираемся - это нормально. И если меня ткнут носом в то, что я не понимаю, я не начну пениться =) скорее скажу спасибо, но это должно быть сделано именно что красиво. Форум для того и нужен, для обмена информацией, чтобы красиво тыкать друг друга носом и все росли.
 
Последнее редактирование:
И если меня ткнут носом в то, что я не понимаю, я не начну пениться =) скорее скажу спасибо, но это должно быть сделано именно что красиво.
В том то и соль. Если кто не готов под таким подписаться, у меня для него плохие новости:

Эффект Да́ннинга — Крю́гераметакогнитивное искажение у людей с низким уровнем квалификации: они делают ошибочные выводы и принимают неудачные решения, но не способны осознавать эти ошибки в силу неполноты знаний, умений и навыков[1], что приводит к ложному определению пределов компетенции и завышению представлений о собственных способностях — даже в незнакомых областях знаний и впервые совершаемых действиях.

Если же цель в элитарном выделении и любой предметный вопрос скатывается в «ты нуб, а я молодец», какой смысл и польза от таких сообщений, кроме как унижение достоинства остальных?
Не знаю, надеялся, что Indy ответит. Вариантов много, могу провести такую параллель. Последнее время специально обученные люди переименовывают blacklist (чёрный список) в blocklist (список блоков). Вносится путаница и меняется смысл (сценарий описал в «1984» Джордж Оруэлл).

Пока он размышляет на Wasm-е о сумасшествии Фрейда, продолжу.

"Выборка данных(Data Fetch).
Для использования DFG необходимо отследить машинную выборку данных(DF)
"

Нашёл, что цитата из Софтверные анклавы, где заявлен Полноценный антидамп.

Data Fetch - это когда заполняется cache line, т.е из ОЗУ читается последовательность в 64 байта (м.б. 32 или 128, зависит от архитектуры). Когда данные читаются в регистр, операция называется load. Загрузка происходит не из ОЗУ, а из кеша - это важный нюанс. На нём основаны читающие ring-0 память атаки, цитата spectre.pdf:
spectre.png
В таком контексте Полноценный антидамп намекает, что при чтении физических страниц из ядра может быть получено что-то не то. По факту автор придумал какую-то свою терминологию и на Нобелевку эти открытия вроде бы не тянут.

Вот http://www.rohitab.com/discuss/topi...anner-bypassing-nod32-memory-scan/?p=10104784 публикация от 2015 года, где описания более осмысленные и код должен быть рабочим. Там даже есть bts D[edi][CONTEXT.rEFlags - CONTEXT.rEdi],8 ; EFLAGS_TF
Код:
 ,;
;         -= POC: Обход AVVM используя IDP-захват. =-
;
; Тело апи содержит инструкцию(атом), которая отслеживается VM.
; При обнаружении её выполняется эмуляция апи вне контекста VM.
; Из за этого обработка данных не последовательна, результат по
; является в памяти сразу, после исполнения одной инструкции(по
; добно сервисам ядра).
; Необходимо определить обращение к буферу из атома. Если обращ
; ения нет, то выполнялся атом. Используем IDP-технику для ссыл
; ки на буфер. В этом случае атом не получит валидной ссылки на
; буфер, так как она формируется динамически при обработке обра
; щений к буферу. Из атома обращений нет. Алгоритм следующий:
;
; Применяем IDP-модификацию ссылки на буфер, передаваемой в апи
; P = (@Buffer & (PAGE_SIZE - 1)) + C, где C - смещение в нулях
; (в N/A регионе в начале АП). Эмулятор получит некорр. ссылку.
;
; При обращении к указанному N/A буферу возникнет #AV. Определя
; ем(из VEH/SEH)регистр, являющийся базой в эффективном адресе:
;   EA = R_base + N*R_index + C
;   EA + 1 = (R_base + 1) + N*R_index + C
; Для этого:
; - Находим регистр в контексте со значением [P; P + Size], где
;   Size - размер буфера. Адрес к которому происходит обращение
;   передаётся из Cr2.
; - Инкрементируем регистр и рестартим инструкцию. Получаем Cr2'.
; - Если Cr2' = Cr2 + 1, то базовый регистр определён. Иначе хэ
;   ндлим следующий регистр.
;
; Корректируем базовый регистр на дельту баз буферов:
;   R_base + ((@Buffer & (NOT(PAGE_SIZE - 1))) - C)
;
; Рестартим инструкцию, обращение произойдёт к исходному буферу.
; После серии обращений к буферу апи завершится корректно.
;
; В эффективной адресации база используется всегда непосредстве
; нно, без деления на части. Поэтому вероятность увеличить инде
; кс с последующим доступом вникуда отсутствует. Это исключает
; необходимость раскодировки инструкций(ModR/M etc), тоесть исп
; ользование какого либо мотора для дизасм.
;
; Для обхода данной техники наиболее простое решение - использо
; вать промежуточный буфер, например локаль. Из которого данные
; будут пересылаться в атом(и обратно).
;
; (c) Indy, 2015
;
comment '
    if #AV                        ; Обращение к N/A буферу.
        if IdpInt                    ; Признак тестирования.
            !IdpInt
            Rn = IdpPrev            ; Восстанавливаем ссылку.
            if (Cr2 - 1) <> IdpCr2
                R(n+1)            ; Тестируем следующий регистр.
            else                    ; Эффективные адреса совпадают - найден базовый регистр.
                Rn + IdpDelta        ; Корректируем ссылку на R/W буфер.
                rEFlags.TF        ; Трассируем инструкцию.
            fi
            > Exec
        fi
        IdpCr2 = Cr2                ; Сохраняем текущий эфф. адрес, сравним его далее(EA + 1 = R_base + 1).
        if Cr2 ~ [IdpBase % (IdpBase + IdpSize)]    ; Обращение к N/A буферу.
            Do                    ; Ищем регистр, содержащий ссылку на буфер.
                if R(n) > 6        ; Регистры перечислены, базовый не найден.
                    > Skip
                fi
                if Rn ~ [IdpBase % (IdpBase + IdpSize)]    ; Регистр найден.
                    IdpPrev = Rn    ; Сохраняем текущее значение.
                    IdpInt        ; Взводим флаг - тестирование.
                    Rn + 1        ; Инкремент ссылки.
                    > Exec        ; Рестарт инструкции.
                fi
                R(n+1)            ; Следующий регистр.
            Loop
        fi
        > Skip
    else if #DB                    ; Трассировочный останов.
        !rEFlags.TF                ; Прекращаем трейс.
        if Rn = IdpPrev + IdpDelta    ; Если изменился базовый регистр, то скипаем корректировку его.
            Rn = IdpPrev            ; Снова разбиваем ссылку.
        fi
        !R(n)                    ; Ожидаем новый доступ к буферу.
    Exec:
        Continue()
    fi
Skip:
    Unwind()'
  
    .686
    .model flat, stdcall
    option casemap :none
  
    include \masm32\include\ntdll.inc
    includelib \masm32\lib\ntdll.lib
  
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\kernel32.lib
  
    include BeaEngine.inc

; DEBUG    equ TRUE

.data
    include Cry.inc

ifdef DEBUG
    pDisasm    PVOID ?
    Inst        DISASM <>
    $Log        CHAR "%p:    %s", 13, 10, 0
    $Task    CHAR "Cr2: %p, %s: %p", 13, 10, 0
    $Msg        CHAR "%s", 0
    $Dis        CHAR "BeaEngine.dll",0
    $Entry    CHAR "_Disasm@4",0
    Rn        CHAR "Edi", 0
            CHAR "Esi", 0
            CHAR "Ebx", 0
            CHAR "Edx", 0
            CHAR "Ecx", 0
            CHAR "Eax", 0
            CHAR "Ebp", 0
endif

Buffer    CHAR "Test", 0
        CHAR 32 DUP(?)
      
IDP struct
    IdpBase    PVOID ?
    IdpSize    PVOID ?
    IdpRn    ULONG ?
    IdpPrev    PVOID ?
    IdpCr2    PVOID ?
    IdpDelta    ULONG ?
    IdpInt    BOOLEAN ?
IDP ends
PIDP typedef ptr IDP

.code
; +
; o #DB на KiUED() не хэндлим, нормально такая ситуация не произойдёт(дедлок).
; o В целях оптимизации можно обработать префикс REP.
; o N/A буфер выравнивать не обязательно на границу страницы.
;
; R(n)    Rn
; 0        rEdi
; 1        rEsi
; 2        rEbx
; 3        rEdx
; 4        rEcx
; 5        rEax
; 6        rEbp
;
    assume fs:nothing
XCPT proc uses ebx esi edi ExceptionPointers:PEXCEPTION_POINTERS
    mov eax,ExceptionPointers
    mov ebx,fs:[TEB.Tib.StackBase]
    mov ebx,D[ebx - 4]
    assume ebx:PIDP
    mov esi,EXCEPTION_POINTERS.ExceptionRecord[eax]
    mov edi,EXCEPTION_POINTERS.ContextRecord[eax]
    assume esi:PEXCEPTION_RECORD
    add edi,CONTEXT.rEdi        ; RGP
; ExceptionInformation{}:
; +0 Access(0:R, 1:W, 8:E(NX)).
; +4 Cr2
    cmp [esi].ExceptionCode,STATUS_ACCESS_VIOLATION    ; #AV
    jne IsTrap
    cmp [ebx].IdpInt,FALSE
    je Ext
; Инкремент был выполнен.
    mov eax,[ebx].IdpRn
    mov ecx,[ebx].IdpPrev
    dec [ebx].IdpInt            ; False
    mov D[edi][eax*4],ecx        ; Rn - 1
  
    mov ecx,[esi].ExceptionInformation[4]            ; Cr2
    dec ecx
    .if [Ebx].IdpCr2 != Ecx
        inc [ebx].IdpRn        ; Далее обработаем следующий регистр.
        jmp Exec
    .endif
; Cr2' = Cr2 + 1
    mov edx,[ebx].IdpDelta
    add D[edi][eax*4],edx    ; + Delta
  
    ifdef DEBUG
        pushad
        mov eax,[esi].ExceptionAddress
        mov Inst.EIP,eax
        push offset Inst
        Call pDisasm
        invoke DbgPrint, addr $Log, Inst.EIP, addr Inst.CompleteInstr
        popad
        pushad
        lea ecx,[Rn + eax*4]
        invoke DbgPrint, addr $Task, [Ebx].IdpCr2, Ecx, D[Edi][eax*4]
        popad
    endif

; После исполнения инструкции восстановим регистр.
    bts D[edi][CONTEXT.rEFlags - CONTEXT.rEdi],8        ; EFLAGS_TF
    jmp Exec
Ext:
    mov eax,[esi].ExceptionInformation[4]            ; Cr2
    cmp [ebx].IdpBase,eax
    mov [ebx].IdpCr2,eax
    ja Skip
    sub eax,[ebx].IdpSize
    cmp [ebx].IdpBase,eax
    jb Skip
; Обращение к N/A буферу.
ChkRn:
    mov eax,[ebx].IdpRn
    cmp eax,6
    ja Skip
    mov ecx,D[edi][eax*4]    ; Rn
    cmp [ebx].IdpBase,ecx
    ja NextRn
    sub ecx,[ebx].IdpSize
    cmp [ebx].IdpBase,ecx
    jb NextRn
; Rn ~ Buffer{}.

    mov ecx,D[edi][eax*4]
    inc D[edi][eax*4]        ; Rn + 1
    inc [ebx].IdpInt
    mov [ebx].IdpPrev,ecx
    jmp Exec  

NextRn:
; Обрабатываем следующий регистр.
    inc [ebx].IdpRn            ; R(n+1)
    jmp ChkRn

IsTrap:
    cmp [esi].ExceptionCode,STATUS_SINGLE_STEP    ; #DB
    jne Skip
    ; TF очищается системой.
; Если изменяется базовый регистр(STOS, MOV R,[R] etc), то не восстанавливаем его.
    mov edx,[ebx].IdpPrev
    xor eax,eax
    mov ecx,edx
    add ecx,[ebx].IdpDelta
    xchg [ebx].IdpRn,eax
    .if D[Edi][Eax*4] == Ecx
        mov D[edi][eax*4],edx    ; - Delta
    .endif
; Рестарт инструкции.
Exec:
    xor eax,eax
    dec eax        ; EXCEPTION_CONTINUE_EXECUTION
    jmp Exit
Skip:
    xor eax,eax
Exit:
    ret
XCPT endp

%IDPINIT macro Base, S1ze
    mov eax,fs:[TEB.Tib.StackBase]
    xor ecx,ecx
    sub esp,sizeof(IDP)
    mov D[eax - 4],esp
    mov IDP.IdpSize[esp],S1ze
    mov IDP.IdpRn[esp],ecx
    mov IDP.IdpInt[esp],ecx

    lea eax,Buffer
    sub eax,X86_PAGE_SIZE
    and eax,NOT(X86_PAGE_SIZE - 1)
    mov IDP.IdpDelta[esp],eax
  
    lea eax,Base
    and eax,X86_PAGE_SIZE - 1
    add eax,X86_PAGE_SIZE
    mov IDP.IdpBase[esp],eax
endm
  
%IDPEND macro
    add esp,sizeof(IDP)
endm
      
    CHAR "Fuck VM"
Ip:
    mov ecx,2000H
    lea esi,Cry
    .repeat
        sub B[esi],23H
        xor B[esi],12H
        ror B[esi],2
        inc esi
        dec ecx
    .until Zero?
    lea eax,Cry + 600H    ; EP
    ; Образ файловый, нужно загружать в память, для сигнатурного теста и так сойдёт.
    jmp Eax

    assume fs:nothing
EP proc
ifdef DEBUG
    invoke LoadLibrary, addr $Dis
    invoke GetProcAddress, Eax, addr $Entry
    mov pDisasm,eax
endif
    invoke RtlAddVectoredExceptionHandler, 1, addr XCPT
; R-test.
    %IDPINIT Buffer, 4
    invoke RtlComputeCrc32, 0, Eax, 4
    %IDPEND
    add eax,(offset Ip - 784DD132H)    ; @Ip
    ifndef DEBUG
        jmp Eax    ; AV-test.
    else
; W-test.
        %IDPINIT Buffer, 32
        add eax,1000H
        invoke GetModuleFileName, NULL, Eax, 32
        %IDPEND
        invoke DbgPrint, addr $Msg, addr Buffer
    endif
    ret
EP endp
end EP
Новые (2017 го года) публикации на wasm-е я не осилил, они чем-то похожи на набор buzz-words в рекламных проспектах стартапов, но в данном случае автор выдумывал их сам. Техника "Intercept Destruction of Pointers" вроде понятна из описания, придумал интересный финт с частным случаем висячих указателей, но за назвние незачёт.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну я не уверен, что археологические раскопки манускриптов, созданных воспаленным разумом психически неуровновешенного спеца, могут чего-то нового и интересного показать.
 
Ну я не уверен, что археологические раскопки манускриптов, созданных воспаленным разумом психически неуровновешенного спеца, могут чего-то нового и интересного показать.
Ну это мнение человека, которого гуру назвал нуби. В любом случае оно субъективно, как и моё (что его статьи с Васма представляют опасность для неподготовленного читателя, но старые, вроде, приличны). А документация от Интела - она объективна. Пока я вижу, что мнение гуру с ней расходится. Если это так, то остаётся два варианта:
1) Indy признаёт, что в последних трудах у него путаница с терминологией;
2) Indy заявляет, что документация - тоже нуби.
Вот мне не понятно, почему он до сих пор это не сделал? Из-за "Предупреждения 6 / 3" он не может отвечать?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Из-за "Предупреждения 6 / 3" он не может отвечать?
Не, он просто расстроился, что его тут носом ткнули в его теоретизации и их недостатки. А у спеца же не может быть недостатков в теоретизациях. Поэтому и не отвечает и не заходит сюда. Но в целом я не рекомендую тебе в этот чан с говном эти дебри эльфийские погружаться. Как бы практика уже многих людей показала, что от него ничего дельного ты добиться не сможешь, максимум узнаешь, что ты - нуби. Просто дружеский совет.

Но если хочешь побеседовать с ним об этом, то лучше иди на васм, это - своего рода зона комфорта для него. Хоть мы там и поджигаем ему пукан периодически, туда он регулярно захаживает и общается свободно, называя всех нуби.
 
что его тут носом ткнули в его теоретизации и их недостатки. А у спеца же не может быть недостатков в теоретизациях.
Не просто за недостатки, а за лишние понты, при наличии недостатков. Это важно сейчас. Я как про ROP, так и про анклавы начал диалог с уважением. Какую информацию в ходе диалога он дал? Как дискурс шёл? Странно, как модеры на васме столько лет терпят его ничем не подкрепленную элитарность и троллинг.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Странно, как модеры на васме столько лет терпят его ничем не подкрепленную элитарность и троллинг.
Да просто все забили хер на него, ну больной человек на голову и больной, его не вылечить, а банить его постоянно и перманентно тоже такое себе, в депрессию уйдет, руки на себя наложит.
 
Клерк в душе добрый и безобидный, это по глазам видно. И тексты за 2016-й год (на пред. странице я ошибся, написал 2015) вполне грамотные. Что потом случилось?

Потом он как человек, у которого за словами следует дело, на основе POC-a написал офигенный протектор, который чпокал эмуляторы антивирусов. Стало возможно круто закриптовать модных ботов, которыми торгуют по 50WMZ за кучку. Но некоторые коварные антивирусы подло сканировали память после распаковки и всё равно детектили payload. Многочасовой оверинженеринг оказался коту под хвост. Для не очень модных ботов, от которых есть исходники, столь крутые технологии не нужны - там можно подшаманить сорцы, но они на языках высокого уровня, их религия запрещает. Случился конфликт блистательного гения с унылой реальностью, выгорание и прочее. И тут ещё Rel опубликовал пару статей про компайл-тайм полиморфизмы, поставив аватаром большого кота - естественно, как часть ненавистного бытия, попал под раздачу.

Если эта версия верна, то нет никаких персональных конфликтов. Документация Интел - это та часть бытия, за которую Indy может зацепиться и признать, что его немного не туда занесло. Так он вернётся к жизни и начнётся конструктив.

лучше иди на васм,
Там закрыта регистрация (точнее, не приходит письмо с подтверждением). Вручную, наверное, могут активировать акк, но не вижу смысла: там последний новый пользователь 28 авг 2021, а я уже тут зарегистрировался.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Там закрыта регистрация (точнее, не приходит письмо с подтверждением). Вручную, наверное, могут активировать акк, но не вижу смысла: там последний новый пользователь 28 авг 2021, а я уже тут зарегистрировался.
Я могу адменам там написать и попросить тебя активировать, напиши ник под хайдом для меня.

Если эта версия верна, то нет никаких персональных конфликтов
Да нет никаких персональных конфликтов, не знаю, как он ко мне относится, но я просто люблю над ним по-дружески поугорать.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх