<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все посты подряд / Action Script / Хабр]]></title>
    <link>https://habr.com/ru/hubs/action_script/posts/</link>
    <description><![CDATA[Action Script – объектно-ориентированный язык программирования]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 02 May 2026 08:18:34 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  
  <item>
    <title><![CDATA[Пост @over_Dude — Windows (+1) — 06.03.2026 15:11]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1007390/</guid>
    <link>https://habr.com/ru/posts/1007390/?utm_campaign=1007390&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/763/c2b/04a/763c2b04aa2ee0dad9e0681a702456db.png" alt="Установка сертификатов Минцифры одним CMD-скриптом: быстро, без бубна" title="Установка сертификатов Минцифры одним CMD-скриптом: быстро, без бубна" width="1536" height="1024"><div><figcaption>Установка сертификатов Минцифры одним CMD-скриптом: быстро, без бубна</figcaption></div></figure><p>Коллеги, сделал небольшой утилитарный скрипт для установки сертификатов Минцифры.</p><p>Проблема знакомая многим:<br>при работе с Госуслугами, банковскими сервисами или рядом государственных порталов требуется установить корневые и удостоверяющие сертификаты Минцифры.</p><p>Обычно это выглядит так:</p><p>• скачивание сертификатов<br>• импорт через MMC<br>• установка в разные хранилища<br>• повторить несколько раз</p><p>Чтобы упростить задачу, собрал архив со скриптом, который устанавливает все сертификаты пакетно.</p><p>В архиве:<br>— 2 корневых сертификата<br>— 3 удостоверяющих центра</p><p>Достаточно:</p><ol><li><p>распаковать архив</p></li><li><p>запустить CMD-файл от имени администратора</p></li></ol><p>Сертификаты автоматически добавляются в системное хранилище Windows.</p><p>Подробная статья и разбор:<br><a href="https://it-apteka.com/ustanovka-sertifikatov-mincifry-odnim-cmd-skriptom-bystro-bez-bubna/" rel="noopener noreferrer nofollow">https://it-apteka.com/ustanovka-sertifikatov-mincifry-odnim-cmd-skriptom-bystro-bez-bubna/</a></p><p>Скачать архив:<br><a href="https://it-apteka.com/wp-content/uploads/2026/03/certs_install.zip" rel="noopener noreferrer nofollow">https://it-apteka.com/wp-content/uploads/2026/03/certs_install.zip</a></p><p>Буду благодарен за обратную связь, особенно если используете в корпоративной среде.</p> <a href="https://habr.com/ru/posts/1007390/?utm_campaign=1007390&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 06 Mar 2026 12:11:34 GMT</pubDate>
    <dc:creator><![CDATA[over_Dude]]></dc:creator>
      
      <category><![CDATA[автоматизация]]></category><category><![CDATA[рутина]]></category><category><![CDATA[windows]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @stopsp — Action Script (+1) — 15.08.2025 14:36]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/937524/</guid>
    <link>https://habr.com/ru/posts/937524/?utm_campaign=937524&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Попросил GPT5 написать скрипт для приложения 3ds max, который сможет информировать об потенциальных угрозах в 3d-сцене программы. После нескольких часов возни и исправлений, скрипт заработал и отлично показал себя в деле, обнаружив в сцене имитационный вредоносный код. </p><p>Кто из специалистов может посмотреть этот код? Будет от него реальная польза или это бесполезная пустышка?</p><p>По словам ИИ,  MaxScript по синтаксису напоминает смесь <strong>JavaScript + Pascal</strong>, с динамической типизацией.</p><pre><code>/*
   MaxScript Exorcist 3.1 (fixed - helpers moved to top-level)
   - Исправлена ошибка "No outer local variable references permitted here"
   - Вспомогательные функции вынесены на верхний уровень
   - Проверка папки с .ms/.mcr/.mse
   - Расширенное сканирование сцены (все свойства, контроллеры, материалы, XRef)
   - ⚡ Подсветка найденных потенциально опасных токенов
   - Авторы: Юра и GPT5-mini
*/

-- ===== GLOBAL PATTERNS =====
global patterns
patterns = #(
    "shell",
    "cmd\.exe",
    "CreateProcess",
    "WinExec",
    "system\s*\(",
    "Process\.Start",
    "ProcessStartInfo",
    "DotNet\.loadAssembly",
    "LoadAssembly",
    "LoadLibrary",
    "ImportDLL",
    "dll",
    "WriteLine\s*\(",
    "Write\s*\(",
    "DeleteFile\s*\(",
    "removeFile",
    "renameFile",
    "copyFile",
    "RunScript",
    "Execute",
    "openFile",
    "fileStream",
    "StartProcess",
    "Run",
    "ShellExecute",
    "regsvr32",
    "CreateObject",
    "WScript",
    "ActiveXObject"
)

-- ===== Helper: read ASCII strings from binary .mse =====
fn readBinaryStrings filePath =
(
    local strings = #()
    try
    (
        local f = openFile filePath mode:"rb"
        local buf = ""
        while not eof f do
        (
            local b = readByte f
            if b &gt;= 32 and b &lt;= 126 then buf += (bit.intAsChar b)
            else
            (
                if buf.count &gt;= 4 then append strings buf
                buf = ""
            )
        )
        if buf.count &gt;= 4 then append strings buf
        close f
    )
    catch()
    return strings
)

-- ===== Helper: scan files in folder (text and .mse) =====
fn scanFilesInFolder folderPath =
(
    local suspicious = #()
    local files = getFiles (folderPath + "\\*.ms*")
    if files.count == 0 then
    (
        format "No .ms/.mcr/.mse files found in %\n" folderPath
        return suspicious
    )

    for f in files do
    (
        local isText = true
        local content = ""
        try
        (
            if matchPattern f pattern:"*.mse" then
            (
                local lines = readBinaryStrings f
                for l in lines do
                    for p in patterns do
                        -- сравниваем в нижнем регистре для устойчивости
                        if findString (toLower l) (toLower p) != undefined then append suspicious #(f, p)
                isText = false
            )
            else
            (
                local fh = openFile f mode:"r"
                while not eof fh do content += readLine fh + "\n"
                close fh
            )
        )
        catch
        (
            isText = false
            append suspicious #(f, "&lt;binary or unreadable&gt;")
        )

        if isText then
            for p in patterns do if findString (toLower content) (toLower p) != undefined then append suspicious #(f, p)
    )

    return suspicious
)

-- ===== Helper: recursive scan of an object (uses global 'patterns') =====
fn scanObjectRecursively obj =
(
    local findings = #()
    try
    (
        -- Все свойства объекта (без аварий при чтении)
        local propNames = #()
        try ( propNames = getPropNames obj ) catch()
        for p in propNames do
        (
            try
            (
                local val = getProperty obj p
                if classOf val == String then
                (
                    for pattern in patterns do
                        if matchPattern val pattern pattern:"regex" then append findings #(obj.name, p, pattern)
</code></pre> <a href="https://habr.com/ru/posts/937524/?utm_campaign=937524&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 15 Aug 2025 11:36:27 GMT</pubDate>
    <dc:creator><![CDATA[stopsp]]></dc:creator>
      
      <category><![CDATA[скрипт]]></category><category><![CDATA[3ds max]]></category><category><![CDATA[безопасность]]></category><category><![CDATA[код]]></category><category><![CDATA[вредоносный код]]></category><category><![CDATA[антивирус]]></category><category><![CDATA[ai]]></category><category><![CDATA[ии]]></category><category><![CDATA[gpt]]></category><category><![CDATA[gpt5]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
