Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Самописная функция GetProcAdress

ты можешь вообще ничего не думать, почему то это все равно встречается повсеместно. И очень ахуено ссылатся на алгоритмы по типу ROR13 и по видимому MD5 когда каждый школьник уже 10 тысяч раз создал свою разновидность добавив туда рандомной соли.
Давай я скажу, что любое хеширование бесполезно, ведь его можно детектить(а что тебе это даст? ты собрался брут форсить хеш???)
Я не особо то и знаком с api-hashing техникой, лишнее без знаний говорить желания нет, мейби ты прав.
 
ну да, люмма же ставила наверное обосанный вмп с целью защиты от детектов который детектит почти любой сканер
я не знаю что такое люмма, 70% статей колби посвящены взломам читов, 20% рассказов о технологиях или его находках при ревёрсе, 10% что-то остальное

это в любом случае лучше чем показывать голую строку. если продукт хочет быть безопасным и оставляет такой код - значит кодер посчитал нужным его не скрывать или он попросту не может быть надёжен. я не помню что было в той статье про люмму (может я её даже и не читал), но мне хотелось бы увидеть конкретное утверждение в статье колби, что никакая виртуализация на коде не стояла
 
я не знаю что такое люмма, 70% статей колби посвящены взломам читов, 20% рассказов о технологиях или его находках при ревёрсе, 10% что-то остальное

это в любом случае лучше чем показывать голую строку. если продукт хочет быть безопасным и оставляет такой код - значит кодер посчитал его не скрывать или он попросту не может быть надёжен. я не помню что было в той статье про люмму (может я её даже и не читал), но мне хотелось бы увидеть конкретное утверждение в статье колби, что никакая виртуализация на коде не стояла
@colby57
когда ты люмму реверсил строки с апи хэшингом были открыты?

там вроде OLLVM стояла, что вообще никак не влияет на строки кроме условных переходов
 
1. быстро
2. строчку не палить

не надо доёбываться до второго пожалуйста, есть ещё первое
по поводу первого пункта, хэширование имени каждого экспорта (не учитывая предвычисление) + сравнение интов из результатов никогда не будет быстрее нормально имплементированной fail-fast функции сравнения строк (и даже без fail-fast, не учитывая оптимизации и векторизацию компилятора это по сути можно сузить до "много арифметики с 64b интами vs compare-loop"). тем более будет ещё быстрее если знаешь размер обеих строк и можешь юзануть std::string_view::operator== (или хотя-бы руками сравнивать размеры перед сравнением строки если string_view недоступен), его компилятор заинлайнит и оптимизирует по максимуму, но даже простой strcmp уже очень сильно выигрывает у fnv1a64 хэша.

по сути только для второго пункта это и стоит юзать конкретно в случае тса
P.S. я расписал всё по большей части не для тебя, т.к. думаю что ты всё это и так знаешь, а для других чуваков которые будут читать тред
 
много арифметики с 64b интами vs compare-loop
интуитивно то оно так, но много арифметики часто бывает быстрее компарации, и не только с большими строками. предсказатель ветвлений не любит strcmp.
да и работа с машинным словом всегда быстрее, его банально можно положить в регистр, а не читать из памяти, что как бы делает хеш функцию быстрой(как будто это не главная её задача - быть быстрой)
 
интуитивно то оно так, но много арифметики часто бывает быстрее компарации, и не только с большими строками. предсказатель ветвлений не любит strcmp.
да, но AFAIK бранч-предиктор в максимально ванильном strcmp по сути может сработать только один раз (и то если компилятор не свернёт этот if в branchless, что, учитывая уровень оптимизации таких операций - вполне возможно), на первом несовпадении или же в конце строки. ценой за такой мисспредикт будет ~10-15 тактов, что не так уж и много в сравнении с потенциальным хэшированием всей строки (ибо без промежуточного состояния невозможно узнать не совпадает ли какой-либо символ строки) когда у строк не совпадает даже первый символ, а strcmp в это же время сделает fail-fast на первом символе.


да и работа с машинным словом всегда быстрее, его банально можно положить в регистр, а не читать из памяти, что как бы делает хеш функцию быстрой(как будто это не главная её задача - быть быстрой)
не-не, безусловно, о простом сравнении интов и сравнении строк даже речи идти не может, тут даже обсуждать нечего, конечно оно всегда будет быстрее. я писал именно про xor & mul на каждой итерации для 64-битного инта, что в сравнении с cmp-loop будет гораздо дороже.
векторизацию и прочее я не затрагиваю, т.к. не особо разбираюсь в сабже, поэтому за это утверждать лучше ничего не буду, но просто упомяну что каждая новая итерация fnv1a зависима от результата предыдущей, поэтому я даже не понимаю как компилятор может это векторизировать, - предположу что в итоге цикл latency-boundится скоростью imul
 
но мне хотелось бы увидеть конкретное утверждение в статье колби, что никакая виртуализация на коде не стояла
привет, конкретно тот билд, что разбирался в статье не имел никакой виртуализации, единственное, там стоял доисторический оллвм с гитхаба, который похерил контрол флоу, ну и на этом всё, всё остальное изобретал уже разраб люммы сам
1769454803616.png


Я не особо то и знаком с api-hashing техникой, лишнее без знаний говорить желания нет, мейби ты прав.
да в ней нет чего-то уникального и крутого, малварь-девы ей пользуются лет 10 уже, и она не прибавляет не ебаться каких-то плюсов к защите от анализа, хз с чего такой срач там возник по поводу него
 
привет, конкретно тот билд, что разбирался в статье не имел никакой виртуализации
привет, ясно, тогда это скорее их проблема, что они оставили всё открыто
 
Та похуй на эту вашу оптимизацию. Нуячить и клиенту выкинуть, пусть ебется. Сейчас каждый вторая тарахтелка имеет мощность как ту-175.

Ну сгорит у чела комп ну бля анлак, это у вас чета у нас все работает выкинуть ему и всё. Мамаев же позволяет себе так делать в продукте за 20$, чем я хуже.
 
привет, конкретно тот билд, что разбирался в статье не имел никакой виртуализации, единственное, там стоял доисторический оллвм с гитхаба, который похерил контрол флоу, ну и на этом всё, всё остальное изобретал уже разраб люммы сам
Посмотреть вложение 325889
что и следовало доказать, создатель этого стиллера да и другие малварь разрабы в первую очередь думают о доходе со своего продукта, а защита второстепенна, либо вообще ничего не стоит.
любой наложенный популярный обфускатор это + 5 детектов
 
любой наложенный популярный обфускатор это + 5 детектов
да откуда мне знать что это малварь? логично, что в открытом виде это никакой защиты и не даёт, кроме скрытия строки
 
Назад
Сверху Снизу