eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Дневники и блоги —› my log.txt
Посл.ответ Сообщение

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 26 января 2019 00:24 New!
Цитата · Личное сообщение · #1

Чтобы не флудить, заведу себе тоже блог, и буду писать разные мысли.

На тему студии. Конечно, это как бы стандарт де-факто в разработке под винду, но она давно превратилась в неясно что. Изначально язык Си предполагался как высокоуровневая замена Ассемблеру. На Си пишут ядра ОС и прочее. Т.е. основная суть - это должен быть язык с нулевым рантаймом. А что делает студия? Она везде сует свой MSVCRTxx , любой хелловорлд с дефолтными настройками тащит какую-то либу, причем для каждой версии студии она своя (и обратно не совместима). Конечно, все это можно поотключать, прилинковать crt от win2k или вообще вырезать и кодить сугубо на винапи (заинлайнив memset , который особо "умный" компилер будет подставлять везде). Но все же, это глупо и раздражает. Особенно, когда перешел на Си из Асма.

Ранг: 67.5 (постоянный)
Статус: Участник

Создано: 28 января 2019 22:17 · Поправил: Boostyq New!
Цитата · Личное сообщение · #2

На самом студия очень удобная
Как завезли мульти-курсорность, отпала надобность в других текстовых редакторах вообще
Даже под линукс мне проще работать из под студии, конечно это обертка, но все таки
Плюс TeamServices удобная штука, гораздо проще в понимании чем git
Напрягает только, что скорее всего мсофт все палят и для приватных вещей едва ли можно ее использовать

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 30 января 2019 17:52 New!
Цитата · Личное сообщение · #3

Boostyq
в плане удобства , если речь о дополнение кода (intelisense/visual asssist) - тут да, равных студии нет.
а как вы решаете проблему с CRT и какую версию студии юзаете?

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 3 февраля 2019 20:58 · Поправил: morgot New!
Цитата · Личное сообщение · #4

Что такое фейк ав или как определить пидараса лицо нетрадиционной секс. ориентации среди аверов? Очень просто. Берем UPX , пакуем с дефолтными опциями, к примеру, виндовс блокнот и заливаем на виртотал. Ахтунги себя проявляют:

Ad-Aware Gen:Variant.Razy.341219 20190203
ALYac Gen:Variant.Razy.341219 20190203
Arcabit Trojan.Razy.D534E3 20190203
BitDefender Gen:Variant.Razy.341219 20190203
Cybereason malicious.053e14 20190109
Cylance Unsafe 20190203
Emsisoft Gen:Variant.Razy.341219 (B) 20190203
F-Secure Gen:Variant.Razy.341219 20190203
GData Gen:Variant.Razy.341219 20190203
MAX malware (ai score=82) 20190203
eScan Gen:Variant.Razy.341219 20190203


Авер - самый бесполезный тип человека/проги.

Давно уже пора сделать проактивку, и палить потенциально опасные действия. Но нет - в мире эпидемии шифровальщиков (хотя их отловить просто, хук на запись в файлы), а аверы детектят невинный UPX.

Ранг: 67.5 (постоянный)
Статус: Участник

Создано: 4 февраля 2019 00:31 · Поправил: Boostyq New!
Цитата · Личное сообщение · #5

morgot пишет:
а как вы решаете проблему с CRT и какую версию студии юзаете?

Использую последнюю и набор тоже, с CRT проблем особенных нет т.к. практически не использую стандартные классы/функции, но вы так не делайте хд
Можете попробовать студию постарее, например набор от 13 студии (придется ее тоже поставить, но компилить можно и из последней), там вроде бы импорт немного лучше (но уже не скажу точно, давно не использую)
Так же можете статически прилинковать библиотеку если импорт вас так напрягает, но будьте аккуратнее если у вас библиотека например инжектится в другой процесс, у меня однажды были очень странные артефакты с рендером из-за этого


Ранг: 1991.4 (!!!!)
Статус: Модератор
retired

Создано: 4 февраля 2019 07:32 New!
Цитата · Личное сообщение · #6

Читайте документацию. Более 1 статического рантайма в процессе могут подраться друг с другом.

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 4 февраля 2019 16:21 New!
Цитата · Личное сообщение · #7

Boostyq
последняя это 17 ? Я максимум 15 юзал, как кодили с 1 челом вместе. Но он там написал cmake батник, и собиралось без црт.
А так то с импортом норм у 6 студии, но она 98 года и нет множества инклудов и либ.
Классы и прочее не юзаю, только чистый Си.

Boostyq пишет:
но будьте аккуратнее если у вас библиотека например инжектится в другой процесс


Я для таких целей стараюсь юзать Масм, в котором из коробки все отключено).

Кстати, Boostyq. Нашел какую-то вашу тему про шифрование строк. Сам заморачивался таким вопросом, конкретно "ProtectString("string") с автоматической обработкой". Но, как оказалось, препроцесор Си не умеет шифровать строки. Писать в коде char *s = "$2*afaf"; //secret - глупо и утомительно, + если надо поменять 100500 строк, то надо все делать вручную.
В общем, как вы вышли с положения ? Я пока хочу посмотреть в сторону pre_build опций студии.

Ранг: 67.5 (постоянный)
Статус: Участник

Создано: 9 февраля 2019 23:15 · Поправил: Boostyq New!
Цитата · Личное сообщение · #8

morgot пишет:
В общем

Вообще есть несколько вариантов:
1) Генерация через constexpr: сильно ограничена, тем не менее очень полезная штукенция.
Малая часть шифрования для моих проектов делается во время компиляции.
Пример для запутывания строк - https://github.com/elbeno/constexpr/blob/master/src/include/cx_strenc.h
2) Использования препроцессора от буста.
Про это много не скажу, но наверняка можно.
3) События перед сборкой: написать отдельную тулзу генератор, вызывать ее перед сборкой, складывать результат в отдельный файл(ы).
Так например делает кьют, тоже хорошее решение, частично использую для других задач
4) Обработка бинарника: делается маркер (например вызов апи), затем тулза ищет по импортам, генерирует алгоритм для каждой строки, собирает функцию расшифровки (опционально кладет под вм и т.д.), затирает старую строку, помещает новую вместо нее или в доп. секцию, затем импорты удаляются.
Так делают в основном проты, если инструмент свой, то можно легко интегрировать в сборку через события после нее.
В основном использую этот вариант, т.к. помимо шифрования строк еще куча задач которые удобнее делать в бинарнике.

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 2 марта 2019 06:04 New!
Цитата · Личное сообщение · #9

Boostyq
Вот я делал как в пункте 3 (на РНР генерил тулзу и ею шифровал строки, хз этот ли метод, но вроде да)
как в 4 - пробовал такое тоже, но надо хорошо знать РЕ формат. А чем делаешь? Я делал на пхп , открывал файл в utf-16 и шифровал. Вроде как в студии есть какие-то вещи для пост и пре билд, но там петон богомерзкий, которого я не знаю.

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 18 марта 2019 03:07 New!
Цитата · Личное сообщение · #10

Прочитал в одной теме такое сообщение:

ARCHANGEL пишет:
А вообще уже не раз читаю, что кто-то начинает изучать туторы Нарвахи и изучает их все, не просто читает, а берёт и делает всё, что там написано именно так, как там написано. Блин, какие стойкие люди! Когда у меня спрашивают, до какого тутора я прочитал, я даже теряюсь, т.к. точно не помню, то ли 13, то ли 14, то ли вообще 7


Как мне видится, в кодинге (и везде) существует, грубо говоря, три группы людей:
1. Те, кому изначально дано этим заниматься. Гении и т.п.
2. Те, кому нужно приложить значительные усилия, чтобы выйти на средний/высокий уровень.
3. Те, кому в принципе не дано.

Рассмотрим подробнее.
к первой категории относятся люди, которым изначально, с рождения (образно говоря) предначертано заниматься тем или другим делом. Если брать спорт - это те, у кого изначально отличные физ. данные, с раннего детства. Если брать it-сферу (кодинг, ресерч, етц) то это люди , которые как-то интуитивно разбираются во всем этом. Ну как пример, биография К.К. , который с раннего детства кодил и реверсил. Таким людям действительно нет смысла читать все эти мануалы и книжки, они интутивно могут разобраться в отладчике, и так далее. Инди говорил, что не читает Руссиновича, и в принципе я верю, что ему с дизасма больше матчасти, чем с чтения книжек.

Но далеко не у всех есть такая предрасположенность. А может, зависит в каком возрасте человек начал этим заниматься? Не знаю. Но я вот по себе замечал, что усваивается инфа только после вот такого детального изучения и повторения всех действий за автором. Когда-то я не мог изучить Асм. Реально , очень хотел, но не мог накодить что-то сложнее хелловорлда для ДОС. Люди в конфе васма говорили, мол да ладно, я там за несколько вечеров под пиво выучил асм по тхт мануалу за 81 год, да что такого. Но мне не лезло и все. В итоге, какой-то человек посоветовал мне большую книгу Кипа Ирвина, где объяснялся этот самый Асм от и до, с упражнениями и примерами. И что? После ее изучения я наконец-то понял , пазл сложился.
С той же Олли ситуация аналогичная. Методом тыка я в ней ничего не мог понять, максимум трейсил свои асм-проги и то, не особо успешно. Как почитал эти уроки (первые 20+), и повторил все за автором - так все и встало на свои места. И со всем другим аналогичная история - не знаю, почему так, но мне идеально заходит инфа, которую я не просто детально изучил, но и повторил за автором / выполнил все упражнения.

Так что не все так однозначно.


Ранг: 220.0 (наставник)
Статус: Участник

Создано: 18 марта 2019 10:38 · Поправил: f13nd New!
Цитата · Личное сообщение · #11

morgot пишет:
1. Те, кому изначально дано этим заниматься. Гении и т.п.
2. Те, кому нужно приложить значительные усилия, чтобы выйти на средний/высокий уровень.
3. Те, кому в принципе не дано.

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

ЗЫ: смотришь что негры делают с mpc-500, вынув ее из кармана и смахнув траву и паннировку от курицы - зависть берет

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 18 марта 2019 15:00 New!
Цитата · Личное сообщение · #12

f13nd пишет:
Возможно кто-то с кодингом-реверсом что-то подобное испытывает.

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

В музике я не разбираюсь, но мб там тоже есть какие то мануалы от локального Нарвахи? Или думаешь, там нужен именно талант, как в пейсательстве?


Ранг: 220.0 (наставник)
Статус: Участник

Создано: 18 марта 2019 15:08 New!
Цитата · Личное сообщение · #13

morgot пишет:
Или думаешь, там нужен именно талант, как в пейсательстве?

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

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 18 марта 2019 15:30 New!
Цитата · Личное сообщение · #14

f13nd
т.е. ты считаешь, что никаких изначальных задатков нет, и все дело лишь в том, кем, к примеру были родители / друзья ?
Ну мб и так, если почитать биографию, то почти у всей "элиты" дома с детства были какие-то спектрумы и прочее. Все олимпийские чемпионы занимались спортом с раннего детства.


Ранг: 220.0 (наставник)
Статус: Участник

Создано: 18 марта 2019 15:54 New!
Цитата · Личное сообщение · #15

morgot пишет:
Все олимпийские чемпионы занимались спортом с раннего детства.

Спорт к 30 годам заканчивается, это физкультура, доведенная до абсурда, предел физических возможностей и износ организма к 30 годам. Не говоря уже о соревновании фармацевтов, кто более эффективный и при этом незапрещенный препарат изобретет, чтоб накачать им спортсмена. Поэтому с раннего детства, чтоб возрастными изменениями результат не скалировался, иначе моложежь обойдет.

Ну кто с детства занимался спектрумами, а не в игрульки на них играл, у них багаж побольше просто. Насколько применим этот опыт "для решения современных задач", еще вопрос, но у них небольшая скидка, да.

Изначальные задатки это физиология? Ну считается, что у мозга крупней среднего (1250г для мужчин, 1200г для женщин, лол) потенциал выше, но ключевое слово "потенциал", его можно и не реализовать. А кто-то с 900 кубиками жарит будь здоров (кстати часто таких можно вычислить по асоциальному поведению, тоже лол), просто специализируясь на чем-то одном (третий раз лол). У приматов одна из характерных черт в том, что инстинктов гораздо меньше и на их поведение больше влияет полученный или перенятый у других особей опыт. Отцовская генетика не так решает, как то, что отец просто присутствовал и влиял на становление.

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 25 марта 2019 19:23 New!
Цитата · Личное сообщение · #16

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

Ищем расширение tampermonkey (или аналоги для ваших браузеров), что это такое , ищите в гугле, вкратце - добавляет на страницу ваши яваскрипты. Создаем новый скрипт и пишем в нем такое:

Code:
  1. // ==UserScript==
  2. // @name         shitRemover
  3. // @match        https://exelab.ru/f/index.php*
  4. // @grant        none
  5. // ==/UserScript==
  6.  
  7. (function() {
  8.     'use strict';
  9.     var posts = document.getElementsByTagName("tr");
  10.  
  11.     for (var i = 0; i < posts.length; i++)
  12.     {
  13.  
  14.     if ((posts[i].className != "tbCel1") && (posts[i].className != "tbCel2"))
  15.     { console.log(posts[i].className); continue; }
  16.     var a = posts[i].getElementsByTagName('a');
  17.  
  18.        for (var j = 0; j < a.length; j++)
  19.        {
  20.            if ((a[j].innerText == "sty") || (a[j].innerText == "dma") || (a[j].innerText == "Jurim"))
  21.            {
  22.                //posts[i].innerHTML = "<tr><td><h1>VYSER UDALEN</h1></td></tr>";
  23.                posts[i].style.display = 'none';
  24.  
  25.            }
  26.        }
  27.     }
  28.  
  29.  
  30. })();


В строке где if ((a[j].innerText == добавляете свои логины (хотя я бы советовал эти тоже оставить).
Так то вроде работает, но могут быть глюки, я не гуру жс.

| Сообщение посчитали полезным: Gideon Vi



Ранг: 220.0 (наставник)
Статус: Участник

Создано: 25 марта 2019 19:37 New!
Цитата · Личное сообщение · #17

Яваскрипты можно даже в адресную строку браузера вставлять. Был когда-то такой, для скачивания музыки в вк.

Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 25 марта 2019 20:01 New!
Цитата · Личное сообщение · #18

f13nd
можно, да. Но чтобы каждый раз заново не вводить, проще скрипт юзать (и избавить себя от созерцания треша).

Вообще, жс интересный яп, но не в плане работы (веб кодинг уныл), а именно для себя что-то сделать.


Ранг: 1120.2 (!!!!)
Статус: Участник

Создано: 30 апреля 2019 05:12 · Поправил: Gideon Vi New!
Цитата · Личное сообщение · #19

morgot пишет:
Создаем новый скрипт и пишем в нем такое


чуть допилить бы, сейчас скрипт прячет в том числе и посты, которые поблагодарил неугодный чел.
--> Link <--
я аж удивился, что инде имеет против ютуба, что отключил скрипт.


Ранг: 220.0 (наставник)
Статус: Участник

Создано: 30 апреля 2019 10:54 New!
Цитата · Личное сообщение · #20

Gideon Vi пишет:
сейчас скрипт прячет в том числе и посты

Code:
  1. <tr ...>
  2.          <td ...>
  3.                  <div class=username>
  4.                         <b>
  5.                               <...>nickname</a>
  6.                         </b>
  7.                  </div>
  8.          </td>
  9. </tr>

Тебе надо прятать <tr>, в котором есть <div class=username>, в котором есть <a> с искомым содержимым.

| Сообщение посчитали полезным: Gideon Vi


Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 1 мая 2019 22:00 New!
Цитата · Личное сообщение · #21

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

В данном случае, мы находим TR, и выбираем все ссылки (A), которые являются потомками DIV с классом username. Ищем в строке (которая будет javascript..имя пользователя) нужного нам юзера и скрываем пост с ним (или заменяем на какой-то текст).
В примере удаляется пост Инди, по образу и подобию добавьте еще кого хотите (рекомендую флудера dma, остальных по вкусу). Добавлять тут:

Code:
  1.  if (a[j].href.indexOf("ИМЯ_ЮЗЕРА") != -1)
  2.           {
  3.                posts[i].style.display = 'none';
  4.           // posts[i].innerHTML = '<b>DELETE</b>';
  5.  
  6.         }


Полный код скрипта:

Code:
  1. // ==UserScript==
  2. // @name         shitRemover
  3. // @match        https://exelab.ru/f/index.php*
  4. // @grant        none
  5. // ==/UserScript==
  6.  
  7. (function() {
  8.     'use strict';
  9.     var posts = document.getElementsByTagName("tr");
  10.  
  11.     for (var i = 0; i < posts.length; i++)
  12.     {
  13.  
  14.     if ((posts[i].className != "tbCel1") && (posts[i].className != "tbCel2"))
  15.     { continue; }
  16.     var a = posts[i].querySelectorAll('div.username a');
  17.  
  18.        for (var j = 0; j < a.length; j++)
  19.        {
  20.          if (a[j].href.indexOf("difexacaw") != -1)
  21.           {
  22.                posts[i].style.display = 'none';
  23.           // posts[i].innerHTML = '<b>DELETE</b>';
  24.  
  25.         }
  26.        }
  27.     }
  28.  
  29. })();


Вроде должно работать, но могут быть ошибки, я не гуру жс.

| Сообщение посчитали полезным: Gideon Vi


Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 2 июля 2019 00:46 · Поправил: morgot New!
Цитата · Личное сообщение · #22

В uri форума буква /f/ почему-то поменялась на заглавную /F/. Соответственно, параметр @match (если вы юзаете tampermonkey и иже с ним надо изменить. На
https://exelab.ru/F/index.php* либо https://exelab.ru/*/index.php*
Можно и просто https://exelab.ru/* , но тогда будет срабатывать на всех страницах сайта (статьи и т.д.), впрочем, если вы читаете только форум, то без разницы.

Заметил небольшой баг. Если , как в моем случае (я блокирую dma ) это самое "dma" будет в каком-то нике, то заблокируется и он. Заметил это случайно по теме некоего Ahmadmansoor . Нужно заменить строку
Code:
  1. if (a[j].href.indexOf("dma") != -1)

На
Code:
  1. if(a[j].innerText == "dma")

Ес-но ник ставьте свой (хотя этот тоже советую оставить, т.к. ни 1 поста по теме за полгода нет).

| Сообщение посчитали полезным: Gideon Vi


Ранг: 32.5 (посетитель)
Статус: Участник

Создано: 12 октября 2019 06:39 New!
Цитата · Личное сообщение · #23

Немного оптимизировал код, чтобы не писать простыню if'ов , прочитал про новейшие достижения в яваскрипт - https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/some
Потому как люди регят клонов, и писать каждый раз if...else if..else else if.. утомительно. А тут раз добавил в массив и все.

Code:
  1. (function() {
  2.     'use strict';
  3.     var posts = document.getElementsByTagName("tr");
  4.     var daun = ['dma', 'sty', 'sim_19']; //массив с флудерами
  5.  
  6.     function chck(arr, val) //проверка на вхождение в массив, true если пост писал наш флудер
  7.     {
  8.     return arr.some(function(arrVal)
  9.      {
  10.      return val === arrVal;
  11.      });
  12.     }
  13.  
  14.  
  15.     for (var i = 0; i < posts.length; i++)
  16.     {
  17.  
  18.     if ((posts[i].className != "tbCel1") && (posts[i].className != "tbCel2"))
  19.     { continue; }
  20.     var a = posts[i].querySelectorAll('div.username a');
  21.  
  22.        for (var j = 0; j < a.length; j++)
  23.        {
  24.          if (chck(daun,a[j].innerText))
  25.             {
  26.             posts[i].innerHTML = '<td></td><td><b>флуд удален</b></td>';
  27.          }
  28.  
  29.        }
  30.     }
  31.  
  32. })();
 eXeL@B —› Дневники и блоги —› my log.txt

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS