Нет исполняемого ядра для файла с расширением vbs

Обновлено: 01.07.2024

Злоумышленник может полагаться на то, что пользователь откроет вредоносный файл, чтобы получить исполнение. Пользователи могут быть подвергнуты социальной инженерии, чтобы заставить их открыть файл, который приведет к выполнению кода. Это действие пользователя, как правило, будет наблюдаться как последующее поведение при фишинговом вложении. Злоумышленники могут использовать несколько типов файлов, выполнение которых требует от пользователя, включая .doc, .pdf, .xls, .rtf, .scr, .exe, .lnk, .pif и .cpl.

Злоумышленники могут использовать различные формы маскировки файла, чтобы увеличить вероятность того, что пользователь откроет его.

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

Примеры процедур

admin@338 пытался заставить жертв запускать вредоносные вложения Microsoft Word, доставленные через фишинговые электронные письма. [1]

Агент Тесла был казнен с помощью вредоносных вложений электронной почты [2]

Команда безопасности Ajax заманивала жертв к запуску вредоносных файлов. [3]

Андариэль пыталась заманить жертв активировать вредоносные макросы во вложениях электронной почты. [4]

AppleJeus требует от пользователя запуска вредоносного установщика MSI. [5]

AppleSeed может добиться исполнения, если пользователи запускают вредоносные вложения файлов, распространяемые по электронной почте. [6]

APT-C-36 предлагает жертвам принять макросы, чтобы выполнить последующую полезную нагрузку. [7]

APT12 пытался заставить жертв открывать вредоносные вложения Microsoft Word и PDF, отправленные с помощью целевого фишинга. [8] [9]

APT19 пыталась заставить пользователей запускать вредоносные вложения, доставленные через фишинговые электронные письма. [10]

APT28 пытался заставить пользователей нажимать на вложения Microsoft Office, содержащие вредоносные сценарии макросов. [11] [12]

APT29 использовала различные формы целевого фишинга, пытаясь заставить пользователя открывать вложения, включая, помимо прочего, вредоносные документы Microsoft Word, файлы .pdf и .lnk. [13] [14] [15]

APT30 полагалась на то, что пользователи запускают вредоносные вложенные файлы, доставленные через фишинговые электронные письма. [16]

Компания APT32 пыталась заманить пользователей для выполнения вредоносного дроппера, доставленного через фишинговое вложение. [17] [18] [19] [20] [21]

APT33 использует вредоносные вложения электронной почты, чтобы побудить жертв запустить вредоносное ПО. [22]

APT37 отправляет фишинговые вложения, пытаясь убедить пользователя открыть их. [23]

APT38 пыталась заманить жертв активировать вредоносные макросы во вложениях электронной почты. [24]

APT39 отправляет фишинговые электронные письма, пытаясь заставить пользователей щелкнуть вредоносное вложение. [25] [26] [27] [28]

Astaroth использовал для выполнения вредоносные файлы, включая VBS, LNK и HTML. [29]

Bad Rabbit был запущен посредством установки пользователем исполняемого файла, замаскированного под установщик флэш-памяти. [30] [31]

BADFLICK полагался на то, что пользователи нажимают на вредоносное вложение, полученное с помощью целевого фишинга. [32]

Bandook использовал документы-приманки, чтобы убедить пользователя включить макросы. [33]

BlackTech использовала электронные письма с вредоносными документами, чтобы убедить жертв установить вредоносное ПО. [34]

BLINDINGCAN заманивает жертв выполнять вредоносные макросы, встроенные в документы Microsoft Office. [35]

BoomBox был запущен в результате взаимодействия пользователя с вредоносным файлом. [36]

BRONZE BUTLER пытался заставить пользователей запускать вредоносные вложения Microsoft Word, доставленные через фишинговые электронные письма. [37] [38]

Bundlore пыталась заставить пользователей запускать вредоносный файл .app, который выглядит как обновление Flash Player. [39]

Кардинал RAT заманивает жертв выполнять вредоносные макросы, встроенные в документы Microsoft Excel. [40]

CARROTBALL был запущен из-за того, что пользователей заманивали открывать вредоносные вложения электронной почты. [41]

Chae требует, чтобы пользователь щелкнул вредоносный документ Word, чтобы выполнить следующую часть атаки. [42]

Cobalt Group отправляла электронные письма, содержащие вредоносные вложения, требующие от пользователей выполнения файла или макроса для заражения компьютера-жертвы. [43] [44]

CSPY Downloader был доставлен через вредоносные документы со встроенными макросами. [45]

Dark Caracal делает свое вредоносное ПО похожим на документы Flash Player, Office или PDF, чтобы побудить пользователя нажать на него. [46]

Darkhotel отправляет фишинговые электронные письма, пытаясь заставить пользователей щелкнуть вредоносные вложения. [47] [48]

DarkHydrus отправил вредоносное ПО, которое требовало от пользователей нажатия кнопки включения в Microsoft Excel, чтобы разрешить загрузку файла .iqy. [49] [50]

Стрекоза 2.0 использовал различные формы целевого фишинга, пытаясь заставить пользователей открывать вложения. [51] [52]

Dridex полагался на то, что пользователи нажимают на вредоносное вложение, доставленное с помощью фишинга. [53]

Элдервуд использовал несколько типов целевого фишинга, чтобы заставить пользователя открывать вложения. [54] [55]

Emotet полагался на то, что пользователи нажимают на вредоносное вложение, доставленное с помощью целевого фишинга. [56] [57] [58]

EnvyScout был запущен через вредоносные файлы, вложенные в электронные письма. [36]

Ferocious Kitten пытался убедить жертв включить вредоносный контент в фишинговую электронную почту, включив странное сообщение-приманку. [59]

FIN4 заманивает жертв запускать вредоносные вложения, доставляемые через фишинговые электронные письма (часто отправленные со взломанных учетных записей). [60] [61]

FIN6 использует вредоносные документы, чтобы заставить жертв разрешить выполнение сценариев PowerShell. [62]

FIN7 побуждал жертв дважды щелкать изображения в отправленных ими вложениях, что затем запускало скрытый файл LNK. [63] [64] [65]

FIN8 использует вредоносные вложения электронной почты, чтобы побудить жертв запустить вредоносное ПО. [66] [67] [68]

Frankenstein использовал троянские документы Microsoft Word, отправленные по электронной почте, что побуждало жертву включать макросы. [69]

Галлмейкер отправлял жертвам документ-приманку с предупреждением, в котором жертвам предлагалось «включить контент» для выполнения. [70]

Gamaredon Group пыталась заставить пользователей нажимать на вложения Office со встроенными вредоносными макросами. [71] [72]

Gorgon Group пыталась заставить пользователей запускать вредоносные вложения Microsoft Office, доставленные через фишинговые электронные письма. [73]

Grandoreiro заражает жертв через вредоносные вложения. [74]

Исполняемый файл GuLoader был получен с помощью встроенных макросов во вредоносные документы Word. [75]

Hancitor использовал вредоносные документы Microsoft Word, отправленные по электронной почте, что побудило жертву включить макросы. [76]

Higaisa использовала вредоносные вложения электронной почты, чтобы заманить жертв к выполнению файлов LNK. [77] [78]

IcedID был выполнен через документы Word с вредоносными встроенными макросами. [79]

Компания Inception побуждала жертв щелкать вредоносные файлы для разведки компьютеров и выполнения вредоносных программ. [80] [81] [82] [83]

IndigoZebra рассылала фишинговые электронные письма с вредоносными вложениями, в которых получателям предлагалось проверить изменения в файле, которые могли бы спровоцировать атаку. [84]

Indrik Spider пытался заставить пользователей щелкнуть вредоносный заархивированный файл. [85]

InvisiMole может доставлять троянские версии программного обеспечения и документов, полагаясь на действия пользователя. [86]

Javali добился исполнения за счет того, что жертвы открыли вредоносные вложения, в том числе файлы MSI со встроенным VBScript. [29]

JCry добился выполнения, заманивая пользователей щелкнуть файл, который оказался установщиком обновления Adobe Flash Player. [87]

Загрузчик JSS был запущен через вредоносные вложения, содержащиеся в фишинговых сообщениях электронной почты. [64]

Kerrdown был казнен из-за того, что жертвы открывали вредоносные файлы. [21] [88]

KGH_SPY распространяется через документы Word, содержащие вредоносные макросы. [45]

Kimsuky пытался заставить жертв открывать вредоносные вложения электронной почты. [89] [90] [91] [45] [6]

Lazarus Group пыталась заставить пользователей запускать вредоносное вложение Microsoft Word, доставленное через фишинговую электронную почту. [92]

Левиафан отправлял фишинговые вложения, пытаясь заставить пользователя щелкнуть. [93] [94]

Lokibot обманом заставлял получателей активировать вредоносные макросы, заставляя их нажимать кнопку "включить контент" во вложениях электронной почты. [95] [96]

Мачете полагался на то, что пользователи открывают вредоносные вложения, доставленные с помощью фишинга, для запуска вредоносного ПО. [97] [98] [99] [100]

Magic Hound пытался заставить жертв открывать вредоносные вложения электронной почты. [101]

menuPass пытался заставить жертв открывать вредоносные файлы, такие как ярлыки Windows (.lnk) и/или документы Microsoft Office, отправленные по электронной почте в рамках целевых фишинговых кампаний. [102] [103] [104] [105] [106]

Метаморфо требует, чтобы пользователь дважды щелкнул исполняемый файл, чтобы запустить вредоносный файл HTA или загрузить вредоносный установщик. [107] [108]

Вредоносные фишинговые вложения Mofang требовали от пользователя открытия файла после получения. [109]

Molerats отправлял вредоносные файлы по электронной почте, заставляя пользователей нажимать «Включить контент», чтобы запустить встроенный макрос и загрузить вредоносные архивы. [110] [111] [112]

MuddyWater пыталась заставить пользователей активировать макросы и запускать вредоносные документы Microsoft Word, доставленные через фишинговые электронные письма. [113] [114] [115] [116] [117] [118] [119] [120]

Mustang Panda отправляет вредоносные файлы, для выполнения которых требуется прямое взаимодействие с жертвой.[121] [122] [123] [124]

Naikon убеждает жертв открывать вредоносные вложения для запуска вредоносных программ. [125]

NativeZone может отображать документ RTF для пользователя, чтобы разрешить выполнение шелл-кода стадии Cobalt Strike. [36]

NETWIRE был реализован путем заманивания жертв к открытию вредоносных документов. [126] [75] [127]

Кочевой осьминог пытался заманить жертв нажать на вредоносные вложения в фишинговых электронных письмах. [128] [129]

Octopus полагался на то, что пользователи нажимают на вредоносное вложение, доставленное с помощью целевого фишинга. [129]

OilRig предоставила документы с поддержкой макросов, в которых требовалось, чтобы цели нажимали кнопку «включить контент», чтобы выполнить полезную нагрузку в системе. [130] [131] [132] [133]

В OSX/Shlayer пользователи монтируют и запускают вредоносный файл DMG. [134] [135]

Patchwork внедрил вредоносный макрос в документ Word и заманил жертву щелкнуть значок, чтобы запустить вредоносное ПО. [136] [137]

PLATINUM пыталась заставить пользователей открывать вредоносные файлы, рассылая жертвам фишинговые электронные письма с вложениями. [138]

PLEAD был выполнен через вредоносные вложения электронной почты. [34]

PoetRAT использовал фишинговые вложения для заражения жертв. [139]

Компания Pony пыталась заманить жертв к загрузке вложенного исполняемого файла (архивов ZIP, RAR или CAB) или документа (PDF или другого формата MS Office). [140]

PROMETHIUM пытался заставить пользователей запускать скомпрометированные установочные файлы легитимного программного обеспечения, в том числе приложений для сжатия, программного обеспечения для обеспечения безопасности, браузеров, приложений для восстановления файлов и других инструментов и утилит. [141] [142]

QakBot был казнен из-за того, что пользователи открывали вредоносные вложения. [143] [144] [145] [146] [147] [148] [149] [150]

Рамзи был казнен с помощью вредоносных вложений электронной почты. [151]

Rancor пытался заставить пользователей щелкнуть встроенный макрос в документе Microsoft Office Excel, чтобы запустить свое вредоносное ПО. [152]

REvil был запущен через вредоносные вложения электронной почты MS Word. [153] [154] [155]

Rifdoor был запущен из вредоносных документов Excel или Word, содержащих макросы. [156]

RTM основывается на том, что пользователи открывают вредоносные вложения электронной почты, распаковывают вложенный архив и дважды щелкают исполняемый файл внутри. [157]

RTM пыталась заставить жертв открывать вложения электронной почты для выполнения вредоносного кода. [158]

Команда Sandworm обманом заставила ничего не подозревающих получателей нажать на фишинговые вложения и активировать вредоносные макросы, встроенные в файлы. [159] [160]

Sharpshooter отправил вредоносные файлы DOC и PDF целевым объектам, чтобы пользователь мог их открыть. [161]

Sidewinder заманивает цели нажимать на вредоносные файлы, чтобы выполнить их в целевой среде. [162] [163] [164] [165]

Блокировать попытки заставить пользователей запускать вредоносные вложения, доставленные через фишинговые электронные письма. [166] [167] [168]

SQLRat полагается на то, что пользователи щелкают встроенное изображение для выполнения сценариев. [169]

StrongPity был запущен через скомпрометированные установочные файлы для законного программного обеспечения, включая приложения для сжатия, программное обеспечение для обеспечения безопасности, браузеры, приложения для восстановления файлов и другие инструменты и утилиты. [141] [142]

Система SYSCON была запущена путем соблазнения жертв открывать вредоносные вложения электронной почты. [170]

TA459 пытался заставить жертв открыть вредоносное вложение Microsoft Word, отправленное с помощью целевого фишинга. [171]

TA505 использовал приманки, чтобы заставить пользователей активировать содержимое вредоносных вложений и запускать вредоносные файлы, содержащиеся в архивах. Например, TA505 делает их вредоносные программы похожими на законные документы Microsoft Word, файлы .pdf и/или .lnk. [172] [173] [174] [175] [176] [177] [178] [179] [180]

TA551 предлагает пользователям включить макросы в фишинговых вложениях для установки вредоносных программ. [181]

Компания Taidoor полагалась на то, что жертва нажмет на вредоносное вложение электронной почты. [182]

The White Company использовала документы-приманки для фишинга, которые обманом заставляли пользователей открывать их и заражать их компьютеры. [183] ​​

Команда Tonto полагалась на взаимодействие с пользователем, чтобы открыть свои фишинговые вложения. [184]

Transparent Tribe использовала документы электронной почты с оружием для взлома целевых систем. [185] [186] [187] [188] [189]

TrickBot пытался заставить пользователей запускать вредоносные документы для доставки своей полезной нагрузки. [190] [191]

Tropic Trooper заманивает жертв запускать вредоносное ПО с помощью вредоносных вложений электронной почты. [192]

Документ Word, предоставляющий TYPEFRAME, предлагает пользователю включить выполнение макроса. [193]

Валак был запущен через документы Microsoft Word, содержащие вредоносные макросы. [194] [195] [196]

Whitefly использовала вредоносные файлы .exe или .dll, замаскированные под документы или изображения. [197]

Windshift использует вложения электронной почты, чтобы заставить жертв выполнять вредоносный код. [198]

Wizard Spider заманивает жертв запускать вредоносное ПО с помощью целевых фишинговых вложений, содержащих макросы для загрузки Emotet, Bokbot, TrickBot или Bazar. [199] [200]

Смягчение

В Windows 10 можно включить различные правила Attack Surface Reduction (ASR), чтобы предотвратить выполнение потенциально вредоносных исполняемых файлов (например, файлов, которые были загружены и запущены приложениями Office/интерпретаторами сценариев/почтовыми клиентами или которые не соответствуют конкретным критериям распространенности, возрасту или списку доверенных лиц). Примечание. Для некоторых правил необходимо включить облачную защиту. [201]

Контроль приложений может предотвратить запуск исполняемых файлов, маскирующихся под другие файлы.

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

Обнаружение

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

Антивирус потенциально может обнаруживать вредоносные документы и файлы, которые загружаются и выполняются на компьютере пользователя. Обнаружение конечных точек или определение сети потенциально могут обнаруживать вредоносные события после открытия файла (например, документ Microsoft Word или PDF-файл, обращающийся к Интернету или порождающий powershell.exe).

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

Следующая процедура описывает, как запустить сценарий.

Чтобы запустить скрипт

  1. Скопируйте код и сохраните его в файле с расширением .vbs, например имя файла.vbs. Убедитесь, что ваш текстовый редактор не добавляет к файлу расширение .txt.
  2. Откройте окно командной строки и перейдите в каталог, в котором вы сохранили файл.
  3. Введите cscript filename.vbs в командной строке.
  4. Если вы не можете получить доступ к журналу событий, проверьте, работаете ли вы из командной строки с повышенными правами. Некоторые журналы событий, например журнал событий безопасности, могут быть защищены средствами контроля доступа пользователей (UAC).

По умолчанию cscript отображает выходные данные сценария в окне командной строки. Поскольку сценарии WMI могут создавать большие объемы вывода, может потребоваться перенаправить вывод в файл. Введите cscript filename.vbs > outfile.txt в командной строке, чтобы перенаправить вывод сценария filename.vbs в outfile.txt.

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

Используйте класс Win32_Process и верните все процессы с именем Cscript.exe или Wscript.exe. Чтобы определить, какие сценарии выполняются в этих процессах, проверьте значение свойства CommandLine.

Используйте класс и свойства Win32_Process, такие как KernelModeTime, WorkingSetSize, PageFileUsage и PageFaults.

Linux определяет тип файла с помощью кода в заголовке файла. Этот процесс не зависит от расширений файлов, чтобы узнать, какое программное обеспечение использовать для открытия файла.

(Это то, что я помню из своего образования. Пожалуйста, поправьте меня, если я ошибаюсь!)

Недавно немного поработал с системами Ubuntu: я вижу много файлов в системах с такими расширениями, как .sh , .txt , .o , .c .

Теперь я задаюсь вопросом: эти расширения предназначены только для того, чтобы помочь людям понять, какой файл они просматривают? Или они предназначены и для операционной системы?

В Windows есть, в Linux/Unix в основном нет. Основным исключением являются программы сжатия — gzip, bzip2, xz — и так далее. Эти программы используют суффиксы для отделения сжатой версии файла от несжатой, которую они заменяют. Программы сжатия часто жалуются на неправильный суффикс, даже если файл на самом деле является сжатым файлом того типа, который он должен обрабатывать.

Я думаю, что часть проблемы с этим вопросом заключается в том, что "операционная система" не является четко определенным понятием. Что является частью операционной системы и что является приложением поверх нее?Не многие части ОС (о какой бы ОС мы ни говорили) заботятся о типе файла — они просто делают то, что им говорят. Таким образом, различия в том, как они узнают, не имеют значения; они не делают ни того, ни другого. С другой стороны, приложения вполне могут выполнять одну или обе функции.

7 ответов 7

Здесь нет стопроцентно черного или белого ответа.

Обычно Linux не использует имена файлов (и расширения файлов, т. е. часть имени файла после последней точки), а вместо этого определяет тип файла, проверяя первые несколько байтов его содержимого. и сравнить его со списком известных магических чисел.

Поэтому обычно операционная система полагается на содержимое файла, а не на его имя, чтобы определить тип файла, но заявление о том, что расширения файлов никогда не нужны в Linux, — это только половина правды.

Конечно, приложения могут осуществлять проверку файлов по своему усмотрению, включая проверку имени файла и расширения. Примером может служить Eye of Gnome (eog, стандартный просмотрщик изображений), который определяет формат изображения по расширению файла и выдает ошибку, если оно не соответствует содержимому. Можно обсудить, баг это или фича.

Однако даже некоторые части операционной системы используют расширения имен файлов, например. при анализе исходных файлов вашего программного обеспечения в /etc/apt/sources.list.d/ - анализируются только файлы с расширением *.list, все остальные игнорируются. Возможно, здесь оно в основном используется не для определения типа файла, а для включения/отключения разбора некоторых файлов, но это все же расширение файла, которое влияет на то, как система обрабатывает файл.

И, конечно же, пользователь-человек больше всего выигрывает от расширений файлов, поскольку это делает тип файла очевидным, а также позволяет использовать несколько файлов с одним и тем же базовым именем и разными расширениями, такими как site.html , site.php , site.js , site. .css и т. д. Недостатком, конечно, является то, что расширение файла и фактический тип/содержимое файла не обязательно должны совпадать.

Кроме того, это необходимо для межплатформенной совместимости, например. Windows не будет знать, что делать с файлом readme, а только с файлом readme.txt.

@IMSoP Я не знаю точной реализации eog и не знаю, почему их вообще волнует имя файла. Это баг на мой взгляд. И конечно, если файл называется "bmp", но формат его содержимого не совпадает, то, конечно, тоже будет ошибка. Конечно, каждое приложение решает, как проверять файлы, но в целом приложения Linux не должны полагаться на имя. Кстати, вы можете использовать команду file для проверки типов файлов по их содержимому.

Предложение, которое я оспариваю, звучит так: "Linux определяет тип файла, проверяя первые несколько байтов". Какое определение «Linux» вы используете в этом предложении? Существование файловой утилиты на самом деле ничего не доказывает; это полезный инструмент, который может существовать в любой ОС. Какая фундаментальная часть ОС делает запуск файла более «правильным», чем подстановка имени файла?

Linux определяет тип файла по коду в заголовке файла. Это не зависит от расширения файла, чтобы знать, с какой программой открывать файл.

Это то, что я помню из своего образования. Пожалуйста, поправьте меня, если я ошибаюсь!

Эти расширения предназначены только для людей?

Когда вы взаимодействуете с другими операционными системами, которые зависят от того, какие расширения существуют, лучше использовать их.

В Windows программное обеспечение для открытия прикреплено к расширениям.

Открыть текстовый файл с именем "file" в Windows сложнее, чем открыть тот же файл с именем "file.txt" (вам нужно будет каждый раз переключать диалоговое окно открытия файла с *.txt на *.*). То же самое касается текстовых файлов, разделенных TAB и точкой с запятой. То же самое касается импорта и экспорта сообщений электронной почты (расширение .mbox).

В частности, когда вы кодируете программное обеспечение. Открытие файла с именем «software1», который является файлом HTML, и «software2», который является файлом JavaScript, становится сложнее по сравнению с «software.html» и «software.js».

Самой известной проблемой с расширениями файлов была LOVE-LETTER-FOR-YOU.TXT.vbs в Windows. Это базовый визуальный сценарий, отображаемый в проводнике в виде текстового файла.

В Ubuntu, когда вы запускаете файл из Nautilus, вы получаете предупреждение о том, что он собирается делать. Выполнение скрипта из Nautilus, где он хочет запустить какое-то программное обеспечение, где он должен открыть gEdit, является очевидной проблемой, и мы получаем предупреждение об этом.

В командной строке, когда вы что-то выполняете, вы можете визуально увидеть, что такое расширение. Если бы он заканчивался на .vbs, я бы начал что-то подозревать (не то, чтобы .vbs исполнялся в Linux. По крайней мере, не без дополнительных усилий ;)).

Я совершенно не понимаю, что вы хотели сказать в своем последнем предложении. Во-первых, проблема заключается в сокрытии расширения, а не в его наличии, во-вторых, эксплойт будет работать так же в Linux - вы называете двоичный файл readme.txt и делаете его исполняемым.Если пользователь выполнил его, он не открывает редактор, а запускает код. В этом отношении делать расширения важными (но не скрывать их) более безопасно и их легче объяснить неопытным пользователям. Есть и другие отличия (в первую очередь отсутствие выполнения файлов из текущего каталога), но они не имеют ничего общего с расширениями.

@techraf На самом деле файловый менеджер, вероятно, попытается открыть файл readme.txt в текстовом редакторе. Я только что попробовал с дельфином в KDE, создав сценарий оболочки, добавив разрешение на выполнение, сохранив его как .txt и нажав на него, он откроется в Kate. Если я переименую его в .sh, то щелчок по нему запустит его.

linux: поскольку make построен на правилах, зависящих от расширения файла, не делает ли это (без каламбура) расширения предназначенными не только для людей?

Это монументально неправильный ответ. Некоторые части Linux используют магические числа для определения типов файлов. Запуск файлов в командной строке. Но другие огромные части системы используют расширения файлов, чтобы знать, на что смотреть, будь то динамический компоновщик (который хочет файлы .so), modprobe, системы сборки, плагины, библиотеки для python, ruby ​​и т. д. Многие файлы не t имеют магические числа, файл основан на эвристике, а не определен.

"Linux определяет тип файла по коду в заголовке файла" "правильно" WTF? Какой "код в заголовке файла"? Такого кода нет, и в Linux нет такого универсального «заголовка файла».

Я хотел бы подойти к этому вопросу иначе, чем другие ответы, и оспорить мнение о том, что «Linux» или «Windows» имеют к этому какое-то отношение (потерпите меня).

Концепцию расширения файла можно просто выразить как «соглашение для определения типа файла на основе части его имени». Другими распространенными соглашениями для определения типа файла являются сравнение его содержимого с базой данных известных подписей (подход «магического числа») и сохранение его в качестве дополнительного атрибута в файловой системе (подход, используемый в оригинальной MacOS) .

Поскольку каждый файл в системе Windows или Linux имеет как имя, так и содержимое, процессы, которые хотят знать тип файла, могут использовать подходы «расширение» или «магическое число» по своему усмотрению. Подход с метаданными обычно недоступен, поскольку в большинстве файловых систем нет стандартного места для этого атрибута.

Эти традиции влияют на дизайн пользовательского интерфейса программ, написанных для каждой системы, но существует множество исключений, поскольку у каждого подхода есть свои плюсы и минусы в разных ситуациях. Причины использования расширений файлов вместо изучения содержимого включают:

  • проверка содержимого файла обходится довольно дорого по сравнению с проверкой имен файлов; так, например, "найти все файлы с именем *.conf" будет намного быстрее, чем "найти все файлы, первая строка которых соответствует этой сигнатуре"
  • содержимое файла может быть неоднозначным; многие форматы файлов на самом деле являются просто текстовыми файлами, обработанными особым образом, многие другие представляют собой ZIP-файлы со специальной структурой, и определить точные подписи для них может быть сложно
  • файл действительно может относиться к нескольким типам; HTML-файл также может быть допустимым XML, ZIP-файл и объединенный GIF-файл остаются действительными для обоих форматов.
  • сопоставление магического числа может привести к ложным срабатываниям; формат файла без заголовка может начинаться с байта "GIF89a" и быть ошибочно идентифицирован как изображение GIF
  • переименование файла может быть удобным способом пометить его как "отключенный"; например изменить «foo.conf» на «foo.conf~», чтобы указать резервную копию, проще, чем редактировать файл, чтобы закомментировать все его директивы, и удобнее, чем перемещать его из автоматически загружаемого каталога; аналогичным образом, переименование файла .php в .txt укажет Apache использовать исходный текст как обычный текст, а не передавать его механизму PHP

Примеры программ Linux, которые по умолчанию используют имена файлов (но могут иметь и другие режимы):

В этом документе объясняется, как автоматизировать выполнение шагов в SAP с помощью записи и воспроизведения сценария.

Следуя этому документу, вы сможете создать свой собственный сценарий. Знание программирования не обязательно.

Сценарий можно использовать для автоматизации бизнес-транзакций, создания основных данных, настройки и т. д.

Некоторые комментарии о записи и воспроизведении сценариев SAP:

  • Это интерфейс, предоставляемый SAP GUI.
  • Это стандартный инструмент SAP, который можно включить или отключить.
  • Может упростить жизнь пользователям, автоматизируя повторяющиеся задачи.

1- Создайте скрипт (*.vbs)

Файл сценария можно создать автоматически путем записи шагов, выполняемых в SAP.

На следующих снимках экрана показано, как создать основной файл сценария за несколько минут или даже секунд:

SCRIP01.jpg

SCRIP02.jpg

Важно выбрать расширение файла .vbs:

SCRIP03.jpg

После того как вы нажмете Начать запись, вы увидите этот индикатор в нижней части экрана:

SCRIP04.jpg

Выполните транзакцию, которую вы хотите сохранить в скрипте. В зависимости от того, что вы пытаетесь автоматизировать, вам нужно будет ввести tcode SAP с /n. Если вы сделаете это, вы уйдете и снова получите доступ к t-коду в каждой итерации.

SCRIP05.jpg

Введите все поля, которые вы собираетесь автоматизировать:

SCRIP07.jpg

SCRIP08.jpg

После завершения одной итерации нажмите Остановить запись. Это завершит генерацию сценария, и файл будет сохранен по выбранному пути:

SCRIP09.jpg

2- Усовершенствуйте сценарий (*.vbs), чтобы разрешить автоматизацию через Excel

Найдите и откройте в Блокноте файл скрипта, созданный на предыдущем шаге.

SCRIP10.jpg

Чтобы разрешить автоматизацию, необходимо сделать две вещи:

  • Добавьте два блока программного кода в vbs: нет необходимости понимать, как программировать скрипт. Код всегда один и тот же. Единственное, что может измениться, это количество столбцов, используемых в Excel. В этом примере мы будем использовать 5 столбцов.

SCRIP11.jpg

Это код каждого блока кода. Если вам нужно добавить столбцы в Excel, вам нужно будет добавить предложение красным цветом:

Блок кода: Блок А

Затемнение objExcel
Затемнение objSheet, intRow, i
Set objExcel = GetObject("Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet

COL 6 = Trim(CStr(objSheet.Cells(i, 6).Value)) ‘Столбец 6

Блок кода: Блок B

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

SCRIP12.jpg

Это окончательный код Скрипта (красным цветом добавлен текст):

Затемнение objExcel
Затемнение objSheet, intRow, i
Set objExcel = GetObject("Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet

session.findById("wnd[0]/tbar[0]/okcd").text = "/nmd11"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtRM61P-PASCH").text = COL1
session.findById("wnd[0]/usr/ctxtRM61P-PASCH").caretPosition = 2
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtPLAF-MATNR").text = COL2
session.findById("wnd[ 0]/usr/ctxtPLAF-PLWRK").text = COL3
session.findById("wnd

-GSMNG").text = COL4
session.findById("wnd

F-PSTTR").text = COL5
session.findById("wnd

F-PSTTR").caretPosition = 10
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[0]/btn [11]"). нажмите

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

\PlOrCreationLog.txt")
следующее
сообщение "Процесс завершен"

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

3- Сохраните файл Excel

Введите все данные, которые будут использоваться в автоматизации. Скрипт всегда будет начинать чтение со второй строки. Используйте первую строку для заголовка:

Важно: для выполнения скрипта должен быть открыт только один файл Excel

SCRIP13.jpg

4- Выполнение скрипта

Помните предыдущее сообщение: для выполнения скрипта должен быть открыт только один файл Excel

Не закрывайте файл Excel. Откройте набор инструментов для записи и воспроизведения сценариев, выберите путь и файл и нажмите «Воспроизвести…»

Вы увидите, как это работает!

SCRIP14.jpg

5- Включение записи и воспроизведения SapScript

Запись и воспроизведение сценариев SAP отключены по умолчанию.

Это можно включить с помощью параметра профиля. Примечание 480149 описывает требование для включения этой функции:

Параметр sapgui/user_scripting снова импортируется. Если для этого параметра
установлено значение TRUE, функции сценариев можно использовать с графическим интерфейсом
версии 6.20 на внешнем интерфейсе.

Значение параметра по умолчанию
равно FALSE, поэтому создание сценариев для системы невозможно.

Обратите внимание,
что вы должны вводить значения в верхнем регистре;

Есть 2 варианта
установки параметра: В транзакции rz11 и в профиле сервера. Если
параметр установлен только в rz11, изменение будет потеряно при перезапуске
сервера.

По возможности
динамическая установка параметра выполняется с помощью транзакции rz11. Укажите
имя параметра sapgui/user_scripting и выберите «Отображать».
При условии, что
текущее значение установлено на ЛОЖЬ, нажмите кнопку «Изменить значение» на
панели инструментов. Появится окно, в котором вы можете ввести новое значение
TRUE. Когда вы сохраните изменение, окно закроется, а текущее значение
параметра изменится на TRUE. Это изменение вступает в силу только после того, как
вы снова войдете в систему.

Если параметр не найден, необходимо
импортировать соответствующий пакет поддержки в соответствии со списком ниже.

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

Если вы не
импортировали пакет поддержки, вы можете включить скриптинг, если установите
параметр в файле профиля сервера приложений со следующей
строкой:
/>sapgui/user_scripting = TRUE
Для этой процедуры требуется только
указанный уровень исправления ядра, однако необходимо перезапустить
сервер приложений.

5- Дополнительные функции записи и воспроизведения Sap Script

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

Назначенные теги

SCRIP01.jpg

SCRIP02.jpg

SCRIP03.jpg

SCRIP04.jpg

SCRIP05.jpg

SCRIP07.jpg

SCRIP08.jpg

SCRIP09.jpg

SCRIP10.jpg

SCRIP11.jpg

SCRIP12.jpg

SCRIP13.jpg

SCRIP14.jpg

с помощью записи и воспроизведения сценария, не могли бы вы сказать мне, позволяет ли имя поля в сценарии (из представлений) идентифицировать имя поля, хранящегося в таблицах SAP?

В противном случае, знаете ли вы простой способ его получить?

Это довольно круто. Обнаружено при поиске другого требования.

Знаете ли вы, как долго эта функция доступна в SAP и в какой версии она доступна?

Он доступен в версии 6.2 и более поздних.

Здравствуйте, это отличные инструкции, но я столкнулся с ужасным "недопустимым символом", и оказалось, что при копировании и вставке из Word или веб-страницы некоторые апострофы и т. д. меняются.

Мне пришлось обновить REM, ДОБАВЛЕННЫЙ EXCEL ****************************************, чтобы добавить ' в начале, а также пришлось обновить и экземпляры ” как в

Задайте для objExcel = GetObject("Excel.Application") правильный символ "

Разницы трудно увидеть. К счастью, когда я щелкаю правой кнопкой мыши документ блокнота, появляется опция «Открыть с помощью» хоста сценариев на базе Microsoft Windows, и когда я ее выбрал, мне была предоставлена ​​строка и расположение символов неверных данных.

Привет всем. Нашли ли мы решение ошибки:

"Компонент ActiveX не может создать объект: 'GetObject' -

Это разочаровывает, так как у меня есть очень маленький скрипт, но я не могу запустить его из-за этой ошибки. Я даже изменил кавычки/апострофы, как это недавно узнала Дебра Миллер. Скрипт выглядит следующим образом:

Затемнение objExcel
Затемнение objSheet, intRow, i
Set objExcel = GetObject(,"Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet

COL6 = Trim(CStr(objSheet.Cells(i, 6).Value)) 'Столбец6

session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "zsdpas"
session. findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxt[1]").text = "COL1"
session.findById("wnd [0]/usr/ctxt[1]").setFocus
session.findById("wnd[0]/usr/ctxt[1]").caretPosition = 7
session.findById("wnd [0]/tbar[1]/btn[8]").нажмите
session.findById("wnd[0]/tbar[1]/btn[31]").нажмите
session. findById("wnd[0]/usr/sub/1/sub/1/2/tabsTAB_CONTROL/tabpREC/ssub/1/2/1/2/tblSAPLSO04REC_CONTROL/ctxt[0,0]").text = "Xxxxx. xxxx@xxxxxx.com"
session.findById("wnd[0]/usr/sub/1/sub/1/2/tabsTAB_CONTROL/tabpREC/ssub/1/2/1/2/tblSAPLSO04REC_CONTROL/ctxt[ 0,0]").setFocus
session.findById("wnd[0]/usr/sub/1/sub/1/2/tabsTAB_CONTROL/tabpREC/ssub/1/2/1/2/tblSAPLSO04REC_CONTROL/ ctxt[0,0]").caretPosition = 23
session.findById("wnd[0]/tbar[1]/btn[20]").press
session.findById("wnd[ 0]/tbar[0]/btn[3]").нажмите
session.findById("wnd[0]/tbar[0]/ btn[3]").нажмите

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

aux=col1 & " " & col2 & " " & col3 & " " & col4 & " " & col5 & " " & col6
CreateObject("WScript.Shell").run("cmd /c @echo %date% %time% " & aux & " >> C:\SCRIPT\PlOrCreationLog.txt")
следующий
msgbox "Процесс завершен"

REM ФИНАЛИЗАЦИЯ КОНТРОЛЬ ПРОВЕРКА ************************

Предоставление этой возможности очень помогло бы мне в моей повседневной работе! Заранее всем спасибо за поддержку и время!

Возможно, я немного опоздал, но сегодня у меня была такая же проблема. Это было потому, что у меня не был открыт файл Excel. Как только я открыл Excel, все заработало нормально.

При выполнении скрипта я получаю следующую ошибку: "Элемент управления не найден по идентификатору"

Я вставил скрипт ниже. Не могли бы вы помочь.


VBScript — это облегченная версия популярного Microsoft Visual Basic для сценариев, разработанная, как следует из названия, Microsoft. Он используется для разработки динамических веб-страниц. Он намного легче по сравнению с языком программирования Visual Basic, но работает как язык сценариев, такой как JavaScript. Чтобы запустить VBScript на стороне клиента, клиент должен использовать Internet Explorer, поскольку другие браузеры по-прежнему не поддерживаются VBScript.

Как создать программу VBScript?

Как и многие другие простые языки сценариев, VBScript можно написать в простом текстовом редакторе, таком как блокнот и другие подобные программы (например, notepad++, Wordpad и т. д.). Обратитесь к следующим шагам, чтобы получить лучшее представление о создании программы VBScript:

Шаг 1. Откройте текстовый редактор по вашему выбору (здесь используется блокнот).


Шаг 2. А пока вот простая программа VBScript, которая выводит на экран простое диалоговое окно сообщения. Код такой программы на VBScript:


Объяснение кода: вы можете поместить что угодно, если оно соответствует правилам объявления переменных в VBScript вместо «a», которое стоит в начале приведенного выше кода. По сути, мы можем взломать и понять приведенный выше код следующим образом:

Замените «0» в приведенном выше коде на любое из чисел, указанных чуть выше.
Чтобы получить более одного вышеупомянутого свойства в вашем диалоговом окне, вы можете просто написать, например: «0+16», вместо «0» в приведенном выше коде.
Для справки код:

выдаст следующий вывод:


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

Как сохранить программу VBScript?

Следуйте приведенным ниже шагам, чтобы сохранить программу VBScript:

Шаг 1. Нажмите Ctrl + Shift + S на клавиатуре или нажмите Файл>Сохранить как в окне блокнота. Откроется диалоговое окно "Сохранить как". спрашивая, где сохранить текущий документ блокнота.


Шаг 2: Теперь напишите любое имя файла по вашему выбору для этого документа блокнота, но убедитесь, что вы указали .vbs в качестве его расширения. Обязательно добавьте «.vbs» после написания имени файла в поле «Имя файла:».


Шаг 3. Теперь измените значение поля «Тип файла:» с «Текстовые документы (*.txt)» на «Все файлы (*.*)», щелкнув его в раскрывающемся меню. .


Шаг 4. Наконец, нажмите «Сохранить» после выбора подходящего места для сохранения файла.


Как запустить программу VBScript?

Теперь это очень просто сделать, просто дважды щелкните сохраненный файл .vbs из того места, где вы его сохранили, и вуаля! Он запустится и выдаст вам следующий вывод:

Читайте также:

Как я. Классы или методы WMI
. запустить приложение в скрытом окне? Вызов приложения из сценария, использующего классы Win32_Process и Win32_ProcessStartup.
VB
PowerShell
. определить, какие сценарии выполняются на локальном компьютере?