what programs are likely affected by a macro virus
Macro and security


will not really affect this kind of virus, anti-virus analyzing the content will be more efficient. Also, there is something to notice: the modification process is relatively slow and is noticeable by the user. In order to protect from these macros viruses, a scanner has to detect all elements of the chain and remove them properly. The anti-virus has to detect all macros of the virus but also any remnants of them. In the example of "Colors", the anti-virus must not detect that
2791876
Computer virus


after it is done executing). Many common applications, such as Microsoft Outlook and Microsoft Word, allow macro programs to be embedded in documents or emails, so that the programs may be run automatically when the document is opened. A "macro virus" (or "document virus") is a virus that is written in a macro language, and embedded into these documents so that when users open the file, the virus code is executed, and can infect the user's computer. This is one of the reasons
850740
Macro virus


In computing terminology, a macro virus is a virus that is written in a macro language: a programming language which is embedded inside a software application (e.g., word processors and spreadsheet applications). Some applications, such as Microsoft Office, Excel, PowerPoint allow macro programs to be embedded in documents such that the macros are run automatically when the document is opened, and this provides a distinct mechanism by which malicious computer instructions can spread. This is one reason it can be dangerous to open unexpected attachments in e-mails
790395
Macro and security


at the same time. An example of macro language allowing type-safe macros. MacroML is an expressive, typed language that supports generative macros. Macros are translated into the target language, MetaML and it gives a well-type program without runtime errors. There will always be faults in the world of viruses. Fortunately, a lot of macro viruses can be countered with good anti-virus. This section presents characteristics that anti-virus should have to protect from macro-viruses. First, specific anti-virus products
2791875
Macro virus


. Many antivirus programs can detect macro viruses, however the macro virus' behavior can still be difficult to detect. A macro is a series of commands and actions that helps automating some tasks - usually a quite short and simple program. However they are created, they need to be executed by some system which interprets the stored commands. Some macro systems are self-contained programs, but others are built into complex applications (for example word processors) to allow users to repeat sequences of commands easily, or to allow developers
790396
Macro and security


, the user can choose what to do with it : ignore it, quarantine it or destroy it, but the last option is the most dangerous. The anti-virus can activate some destructives macro viruses which destroy some data when they are deleted by the anti virus. So, both of the virus scanners and the users are responsible of the security and the integrity of the documents/computer. Furthermore, even if the anti-virus aren't optimal in the virus detection, most of the macro viruses are detected and
2791872
Macro and security


other. So, it results a new virus which can't be recognize by the anti-viruses software. But, the result is totally random : the macro virus can be more infectious or less infectious, it depends to what part of the virus has been changed. However, when the 'mating' is unintentional, the macro virus in result has more chances to be less infectious. Indeed, in order to replicate itself, it has to know the commands in the source code, but, if it's changed
2791861
File format


() would be overridden with an icon commonly used to represent JPEG images, making the program look like an image. Extensions can also be spoofed: some Microsoft Word macro viruses create a Word file in template format and save it with a extension. Since Word generally ignores extensions and looks at the format of the file, these would open as templates, execute, and spread the virus. These issues require users with extensions hidden to be vigilant and never let the operating system choose with what program to open a file not
21235049
Macro (computer science)


been patching and updating their programs. In addition, current anti-virus programs immediately counteract such attacks. A parameterized macro is a macro that is able to insert given objects into its expansion. This gives the macro some of the power of a function. As a simple example, in the C programming language, this is a typical macro that is "not" a parameterized macro: This causes the string "PI" to be replaced with "3.14159" wherever it occurs. It will always be replaced by this string
390709
Macro virus


is opened, the virus can infect the system. When triggered, it will begin to embed itself in other documents and templates. It may corrupt other parts of the system, depending on what resources a macro in this application can access. When the infected documents are shared with other users and systems, the virus spreads. Macro viruses have been used as a method of installing software on a system without the user's consent, as they can be used to download and install software from the internet through the use of automated
790398
Macro and security


anti-virus scanners." In WordBasic (first name of the language Visual Basic), polymorphic viruses are difficult to do. Indeed, the macro's polymorphism relies of the encryption of the document. However, the hackers have no control of the encryption key. Furthermore, the encryption isn't really efficient : the encrypted macros are just in the document, so the encryption key too and when a polymorphic macro replicates itself, the key doesn't change (the replication affects only the macro not the encryption). In
2791857
Macro virus


to tailor the application to local needs. A macro virus can be spread through e-mail attachments, removable media, networks and the Internet, and is notoriously difficult to detect. A common way for a macro virus to infect a computer is by replacing normal macros with a virus. The macro virus replaces regular commands with the same name and runs when the command is selected. These malicious macros may start automatically when a document is opened or closed, without the user's knowledge. Once a file containing a macro virus
790397
Macro and security


of shortcut keys can be associated with a system command (like Ctrl+B to set up the bold font) and the user can change them, replacing them by customs macros. So a hacker can modify and create such macros that the user will activate by using the shortcut key. Such macros can also be activated by a macro button, like a button "Click here for further information" which seems common and safely. A type of macro virus that cut and paste the text of a document in the macro. The macro
2791855
Macro and security


Microsoft's ScanProt (macro virus protection tool) contains remnants of the virus but the problem is that ScanProt does contain parts of the virus. There is another problem, if a virus B is created by modifying some macros of a virus A which consists in a set of macros, then the virus B could be detected as a remnant of A but the anti-virus would only identify (and remove) the non-modified macros. After that, in some cases, the replication of the virus (which does not
2791877
Macro and security


, the macro virus "Colors" was detected but the command "AutoOpen" in it was the command of the macro virus "Concept". Moreover, when "Concept" duplicate itself, it is unencrypted, but the command in the virus "Colors" was encrypted (Colors encrypt its commands). So, the replicate of the macro virus "Concept" result of the hybridation of this macro virus (which infected the user's system first) and "Colors". The "hybrid" could replicate itself only
2791863
Macro and security


contain original macros of A now) could be successful. In fact, the anti-virus would have created a new virus. Anti-virus have to be updated very easily and fast to counter these viruses. A lot of informations is added every day and the performance of the anti-virus must not drop while updates. The problem here is that there is not an easily identifiable set of macros, the anti-virus have to parse the body of the macro and identify and cut parts added by the macro viruses
2791878
Macro and security


on the same idea of polymorphic macros, a macro can perform modifications to all macros present in the document. Considering this, there is just a few modifications to make to the macro in order to convert it in a macro virus mutator. So it is quite easy to create macro virus generators, so it is possible to create quickly several thousands of the known viruses. Most macros viruses are stand-alone; they don’t depend on other macros (for the infectious part of the virus not for the replication for some
2791866
Macro and security


can infect other macros. This kind of macro virus poses real problems to the virus-specific anti-virus; in fact, they change the content of other viruses, so the accurate detection isn't possible. There are different types of anti-virus (or scanner), one of them is the heuristic analysis anti-virus which interpretes or emulates macros. Indeed, to examine all of the branches of macros require a NP-complete complexity (using backtracking), so in this case, the analysis of one
2791868
Macro virus


key-presses. However, this is uncommon as it is usually not fruitful for the virus coder since the installed software is usually noticed and uninstalled by the user. Since a macro virus depends on the application rather than the operating system, it can infect a computer running any operating system to which the targeted application has been ported. In particular, since Microsoft Word is available on Macintosh computers, word macro viruses can attack some Macs in addition to Windows platforms. An example of a macro virus is the Melissa virus which
790399
Macro and security


of scanners). Moreover, this type of anti-virus is really weak against morphing viruses (cf.section above), if a macro virus change its content (so, its signature), it can no more be detected by the virus-specific scanners even if it's the same virus which do the same actions. Its signature doesn't match the one declare in the virus scanner. Additional to the responsibility of the anti-virus, there is a responsibility of the users : if a potential macro virus is detected
2791871
Macro (computer science)


; it was later ported to dialects of Lisp. Another programmers' text editor, Vim (a descendant of vi), also has full implementation of macros. It can record into a register (macro) what a person types on the keyboard and it can be replayed or edited just like VBA macros for Microsoft Office. Vim also has a scripting language called Vimscript to create macros. Visual Basic for Applications (VBA) is a programming language included in Microsoft Office from Office 97 through Office 2019 (although it was available
390707
Macro and security


if "AutoOpen" wasn't executed, indeed this command comes from "Concept", but the body of the hybrid is "Colors", so that create some conflicts. This example shows the potential of mating macro viruses : if a couple of mating macro viruses is created, it will make more difficult to detect both of the macro virus (in hypothesis, there is only two which mate) by the virus-specificscanners and may reinforce the virility of the viruses. Fortunately, this type of macro virus is very
2791864
Macro and security


could be invoked with the Auto-open macro so the text would be re-created when the document (empty) is opened. The user will not notice that the document is empty. The macro could also convert only some parts of the text in order to be less noticeable. Removing macros from the document, manually or by using an anti-virus program would lead to a loss of the content of the document. "Polymorphic viruses change their code in fundamental ways with each replication in order to avoid detection by
2791856
Macro and security


the progression in the virus detection improve but with the creation of new macro viruses. Text-substitutions macros can be separated of the compiler (like in C) but they will not be securised. Or they can be integrated in the compiler but this will limit their utilisation. Marco is a solution allowing macros with both advantage and so, improving the productivity of the programmer, in particular for multi-languages applications. Indeed, it is independent from the language, the only requirement is that the compiler of the target language
2791873
Macro and security


with a random scheme, the macro can't replicate itself. Nevertheless, it is possible to do such macros intentionally (it is different from polymorphic macros viruses which have to use another macro to change their contents) in order to increase the infectivity of the two viruses. In the example of the article, the macro virus "Colors" infected a document, but another infected the user's system before : the macro virus "Concept". Both of these viruses use the command "AutoOpen", so, at first
2791862
Melissa (computer virus)


The Melissa virus was a mass-mailing macro virus. As it was not a standalone program, it was not a worm. It targeted Microsoft Word and Outlook-based systems, and created considerable network traffic. Around March 26, 1999, the Melissa virus was released by David L. Smith of Aberdeen Township, New Jersey. The virus itself was credited to "Kwyjibo", who was shown to be the macrovirus writers "VicodinES" and "ALT-F11" by comparing Microsoft Word documents with the same globally unique
9761028
Macro and security


, errors can easily appear (in addition, instructions like '++x' in imbricated instructions are not very recommended either). These flaws are completely different from the previous ones : the main problem in VBA-type macros is the viruses. Macro viruses are relatively recent, the first one named Concept, has been created in June 1995. The main reason of that is that "the high-level languages used to write macro code are powerful and easy to use, considerably increasing the pool of potential virus writers
2791852
Macro and security


document (which contains macros) would take too much time. Interpreting or emulating a macro would lead to either false positives errors or macro viruses not detected. Another type of anti-virus, the integrety checker anti-virus, in some cases, doesn't work : it only checks all documents with extensions DOT or DOC (indeed, some anti-virus producers suggest to their users), but Word documents can reside in others extensions than those two and the content of the document tends to change often. So,
2791869
Generic programming


previously filled by function-like preprocessor macros (a legacy of the C programming language). For example, here is a possible max() macro: Macros are expanded by preprocessor, before compilation proper; templates are expanded at compile time. Macros are always expanded inline; templates can also be expanded as inline functions when the compiler deems it appropriate. Thus both function-like macros and function templates have no run-time overhead. However, templates are generally considered an improvement over macros for these purposes. Templates are
15523673
Macro and security


like the heuristic analysis, this can lead to false positives errors, due to the fact that this type of anti-virus checks the whole document. The last type of anti-virus seen will be the virus-specific scanner. It searches the signature of viruses, so, the type of anti-virus is weakest than the previous ones. Indeed, the viruses which are detected by virus-specific scanners are just the ones knew by the producers of the software (so, more updates are needed than others types
2791870
Macro (computer science)


from a "small" sequence of characters.) Macros often allow positional or keyword parameters that dictate what the conditional assembler program generates and have been used to create entire programs or program suites according to such variables as operating system, platform or other factors. The term derives from "macro instruction", and such expansions were originally used in generating assembly language code. Keyboard macros and mouse macros allow short sequences of keystrokes and mouse actions to transform into other, usually more time-consuming, sequences of keystrokes and mouse actions
390702
Perl 6


C preprocessor. However, high-level languages such as Lisp pre-dated C in their use of macros that were far more powerful. It is this Lisp-like macro concept that Perl 6 will take advantage of. The power of this sort of macro stems from the fact that it operates on the program as a high-level data structure, rather than as simple text, and has the full capabilities of the programming language at its disposal. A Perl 6 macro definition will look like a subroutine or method definition
12502437
MACRO-10


MACRO-10 is an assembly language with extensive macro facilities for DEC's PDP-10-based Mainframe computer systems, the DECsystem-10 and the DECSYSTEM-20. MACRO-10 is implemented as a two-pass assembler. A simple "Hello, world!" program in MACRO-10 assembler, to run under TOPS-10, adapted from a specimen in a large collection of "Hello World" programs in various languages: If this program is saved in the file HELLO.MAC, it can be assembled, linked and run like this (the TOPS-10 system prompt is the . at the start
7515632
Literate programming


, it correctly resembles the complicated nature of software delicately pieced together from simple materials. Literate programming is writing out the program logic in a human language with included (separated by a primitive markup) code snippets and macros. Macros in a literate source file are simply title-like or explanatory phrases in a human language that describe human abstractions created while solving the programming problem, and hiding chunks of code or lower-level macros. These macros are similar to the algorithms in pseudocode typically used in teaching computer science. These arbitrary
18486688
Macro and security


viruses), but some macros viruses do. They are called parasitic macros. When they are launched, they check other macros (viruses or not), and append their contents to them. In this way, all of the macros became viruses. But, this type of macro can’t be spread as quickly as stand-alone macros. Indeed, it depends on other macros, so, without them, the virus can’t be spread. So, parasitic macros often are hybrid: they are stand alone and they
2791867
Microsoft Excel


and operate like macros generated using the macro recorder, but are more flexible and efficient. From its first version Excel supported end user programming of macros (automation of repetitive tasks) and user defined functions (extension of Excel's built-in function library). In early versions of Excel these programs were written in a macro language whose statements had formula syntax and resided in the cells of special purpose macro sheets (stored with file extension .XLM in Windows.) XLM was the default macro language for Excel through Excel 4.0.
48879
Lisp (programming language)


uses both dynamic and lexical scoping. A fundamental distinction between Lisp and other languages is that in Lisp, the textual representation of a program is simply a human-readable description of the same internal data structures (linked lists, symbols, number, characters, etc.) as would be used by the underlying Lisp system. Lisp uses this to implement a very powerful macro system. Like other macro languages such as C, a macro returns code that can then be compiled. However, unlike C macros, the macros are
18233784
Visual Studio Extensibility


macro programming is to record macros and view recording results. Although macros are useful for task automation, they are not the right tools to create totally new functionality. When using macros, anyone can see the source code of them. Macros use a VB-like script language; C#-like syntax cannot be used. Add-ins are much more powerful to develop Visual Studio extensions, since they can access the Visual Studio object model and add new user interface elements to the IDE just like tool windows, option pages, menu
5098535
Assembly language


single line macros. Assembler macro instructions, like macros in PL/I and some other languages, can be lengthy "programs" by themselves, executed by interpretation by the assembler during assembly. Since macros can have 'short' names but expand to several or indeed many lines of code, they can be used to make assembly language programs appear to be far shorter, requiring fewer lines of source code, as with higher level languages. They can also be used to add higher levels of structure to assembly programs, optionally
1341516
IBM Basic Assembly Language and successors


which can then be invoked in other programs, usually with parameters, like the preprocessor facilities in C and related languages. Macros can include conditional assembler instructions, such as codice_7 (an ‘if’ construct), used to generate different code according to the chosen parameters. That makes the macro facility of this assembler very powerful. While multiline macros in C are an exception, macro definitions in assembler can easily be hundreds of lines. Most programs will require services from the operating system, and the OS provides standard macros for
5022039
Macro and security


a lot of knowledge of the language WordBasic (it needs the advanced functionalities) and more time than a "classic" macro virus. Even if the hacker make a polymorphic macro, the polymorphism needs to be done, so, the document needs to be update and the update can be visible for a user. During the replication, a macro can create do-nothing macros. But this idea can be combined with polymorphic macros, so macros are not necessarily do-nothing, each macro invokes the next one so they
2791859
Macro and security


addition to these difficulties, a macro can't modify itself, but another macro can. WordBasic is really a powerful language, it allows some operations to the macros : So, in order to implement macros viruses which can change its contents, the hackers have to do another macro which fulfill the task to modify the content of the virus. However, this type of macros viruses isn't really widespread. Indeed, the hackers choose to do macros viruses because it's easy and quick to implement. Make a polymorphic macro need
2791858
Badbunny


Badbunny, also known as SB/BadBunny-A (Sophos) and StarOffice/BadBunny (McAfee), is a multi-platform computer worm written in several scripting languages and distributed as an OpenOffice.org document containing a macro written in StarBasic. Discovered on May 21, 2007, the worm spreads itself by dropping malicious script files that affect the behavior of popular IRC programs mIRC and X-Chat, causing it to send the worm to other users. If the macro is opened from the affected document, it displays the following
21711801
Julia (programming language)


can be made that needs no Julia source code built with "ApplicationBuilder.jl" and "PackageCompiler.jl". Julia's syntactic macros (used for metaprogramming), like Lisp macros, are more powerful and different from text-substitution macros used in the preprocessor of some other languages such as C, because they work at the level of abstract syntax trees (ASTs). Julia's macro system is hygienic, but also supports deliberate capture when desired (like for anaphoric macros) using the codice_2 construct. The Julia official distribution includes an
5868692
Microsoft Visio


default. Visio 2013 drops support for writing VDX files in favor of the new VSDX and VSDM file formats, and uses them by default. Created based on Open Packaging Conventions (OPC) standard (ISO 29500, Part 2), a VSDX or VSDM file consists of a group of XML files archived inside a Zip file. VSDX and VSDM files differ only in that VSDM files may contain macros. Since these files are susceptible to macro virus infection, the program enforces strict security on them. While VSD files use LZW
3516096
Gateway AnyKey


the slowest rate and F8 being the fastest - then press "Repeat Rate" again. The AnyKey keyboard is extensively programmable. This takes two forms: Remapping, and macro programming. The only keys on the AnyKey that cannot be programmed in at least some way are those used to control the programming itself – Program Macro, Suspend Macro, Repeat Rate, and Remap. "Any other key on the keyboard" including letters, numbers, arrow keys, and even special keys like modifiers such as Shift, Alt,
20758903
Inclusive Democracy


to be taken democratically, whereas the latter requires the individual to take important decisions affecting his/her own life (what work to do, what to consume, etc.). Both the macro–economic decisions and the individual citizens' decisions are envisaged as being implemented through a combination of democratic planning and an artificial market. But, while in the 'macro' decisions the emphasis will be on planning, the opposite will be true as regards the individual decisions, where the emphasis will be on the artificial market.
5744604
Heuristic analysis


by executing the programming commands of a questionable program or script within a specialized virtual machine, thereby allowing the anti-virus program to internally simulate what would happen if the suspicious file were to be executed while keeping the suspicious code isolated from the real-world machine. It then analyzes the commands as they are performed, monitoring for common viral activities such as replication, file overwrites, and attempts to hide the existence of the suspicious file. If one or more virus-like actions are detected, the suspicious file is flagged
18932793
Program optimization


, which may move some computations to compile time. In many functional programming languages macros are implemented using parse-time substitution of parse trees/abstract syntax trees, which it is claimed makes them safer to use. Since in many cases interpretation is used, that is one way to ensure that such computations are only performed at parse-time, and sometimes the only way. Lisp originated this style of macro, and such macros are often called "Lisp-like macros." A similar effect can be achieved by using
6163812
GRASS (programming language)


aware the feature exists. SINCURVE=[PROMPT "WHAT IS THE OFFSET?" This text creates a new macro called codice_16 that can be called simply by typing codice_16 into the command prompt, or from other macros or programs. SINCURVE uses two local variables, x and angle, as well as a global variable, OFFSET. The codice_18/codice_19 is a modification of the original BASIC codice_19 which will not ask for the input if the user types it into the command line when calling the macro. In this case, typing codice_16 will
14341230
Computer virus


also available for Mac OS, most could also spread to Macintosh computers. Although most of these viruses did not have the ability to send infected email messages, those viruses which did take advantage of the Microsoft Outlook Component Object Model (COM) interface. Some old versions of Microsoft Word allow macros to replicate themselves with additional blank lines. If two macro viruses simultaneously infect a document, the combination of the two, if also self-replicating, can appear as a "mating" of the two and would likely be detected
850781
Macro and security


sequence of actions in a program) so that the productivity of the user is increased. However, many problems exist, they will be tackled subsequently. There are a few dangers in text substitution macros, like C macros. The C preprocessor is a powerful tool that can bring clarity to the code or on the contrary, obscure it. First, because there isn't any form of macros error checking (as there is for C or assembly language), it is possible to make macros which will not work.Indeed
2791842
Racket (programming language)


language, via the codice_1 notation, this effectively means that virtually any aspect of the language can be programmed and controlled. The module-level extensibility features are combined with a Scheme-like hygienic macro system, which provides more features than Lisp's s-expression manipulation system, Scheme 84's hygienic extend-syntax macros, or R5RS's syntax-rules. Indeed, it is fair to say that the macro system is a carefully tuned application programming interface (API) for compiler extensions. Using this compiler API, programmers
16546991
Deformed wing virus


2h and 24 hours after the training. Performance in non-associative learning paradigms, like habituation and sensitization, was not affected by the virus. Another virus, the Kakugo virus, has an RNA sequence that is 98% similar to DWV. It is considered a subtype of the DWV species. It is found only in the mushroom bodies of aggressive, guard honeybees. Bees that are significantly affected by DWV also have measurable titers of the virus in their heads while bees that are symptomless only produce titers in their abdomens or
18921671
Ada (computer virus)


Ada is a computer virus that can affect any of the DOS operating systems. Ada was first discovered in 1991. Ada virus was first discovered in Argentina in October, 1991. Ada is a memory resident (stays in the memory of the computer it infects after the program it infected executes) virus that infects files. The Ada virus mainly targets .COM files, specifically COMMAND.COM. Infected programs will have 2,600 bytes additional data inserted at the beginning of the file, and the file itself will contain the text strings: Computers infected
14473945
ILOVEYOU


five variations of ILOVEYOU to spread across the internet, each one doing different kinds of damage. Most of the variations had to do with what file extensions were affected by the virus. Others simply modified the email subject in order to make it targeted towards a specific audience, like variant "Catolina" in Italian, or variant "BabyPic" for adults. Some others only modified the credits to the author, which were originally included in the standard version of the virus, removing them completely or referencing false authors. Some mail
18725053
Antivirus software


Creeper virus. The Creeper virus was followed by several other viruses. The first known that appeared "in the wild" was "Elk Cloner", in 1981, which infected Apple II computers. In 1983, the term ""computer virus"" was coined by Fred Cohen in one of the first ever published academic papers on computer viruses. Cohen used the term ""computer virus"" to describe a program that: ""affect other computer programs by modifying them in such a way as to include a
20664189
Make (software)


the special targets ".IGNORE" and ".SILENT". Microsoft's NMAKE has predefined rules that can be omitted from these makefiles, e.g. "c.obj $(CC)$(CFLAGS)". A makefile can contain definitions of macros. Macros are usually referred to as "variables" when they hold simple string definitions, like "CC=clang". Macros in makefiles may be overridden in the command-line arguments passed to the Make utility. Environment variables are also available as macros. Macros allow users to specify the programs invoked and
10145773
Macro (computer science)


particular, uniform syntax makes it easier to determine the invocations of macros. Lisp macros transform the program structure itself, with the full language available to express such transformations. While syntactic macros are often found in Lisp-like languages, they are also available in other languages such as Prolog, Dylan, Scala, Nemerle, Rust, Elixir, Nim, Haxe, and Julia. They are also available as third-party extensions to JavaScript, C# and Python.. Before Lisp had macros, it had so-called FEXPRs
390717
Gateway AnyKey


that have been remapped do not reset themselves while macros are suspended. Pressing Suspend Macro again relights the Program light and restores the macros to all programmed keys. The programmability of the AnyKey results in complex rules being forged pertaining to its behavior. If a macro includes the press of a key that has another macro programmed to it, the second macro will be ignored and the original function of the key will be programmed into the new macro. If a macro includes a key that has been remapped, the macro will be programmed
20758913
Commo


Commo is a telecommunications program which was written and maintained from 1989 to 1998 by Fred P. Brucker. It was a macro-driven package and could be customized by the user. The program, written in optimized assembly language and distributed as shareware, was small and fast. The macro language used by Commo was simple, with assembly language-like statements surrounded by curly braces. It offered the ability to control most aspects of the terminal. For instance, the following macro would reconfigure the Alt-X key to display a
15218414
Macro (computer science)


syntax from the actual assembly language. Macro systems—such as the C preprocessor described earlier—that work at the level of lexical tokens cannot preserve the lexical structure reliably. Syntactic macro systems work instead at the level of abstract syntax trees, and preserve the lexical structure of the original program. The most widely used implementations of syntactic macro systems are found in Lisp-like languages. These languages are especially suited for this style of macro due to their uniform, parenthesized syntax (known as S-expressions). In
390716
Tomato mosaic virus


Tomato mosaic virus (ToMV) is a plant pathogenic virus. It is found worldwide and affects tomatoes and many other plants. The foliage of affected tomato plants shows mottling, with alternating yellowish and darker green areas, the latter often appearing thicker and raised giving a blister-like appearance. The leaves tend to be fern-like in appearance with pointed tips and younger leaves may be twisted. The fruit may be distorted, yellow blotches and necrotic spots may occur on both ripe and green fruit and there may be internal browning
9131312
Scribe (markup language)


margins) and declared macros like MakeSection shown above; macros had limited programmatic features. From that single concatenated source, Scribe computed chapter numbers, page numbers, and cross-references. These processes replicate features in later markup languages like HTML. Placing styles in a separate file gave some advantages like Cascading Style Sheets, and programmed macros presaged the document manipulation aspects of JavaScript. The FinalWord word processor from Mark of the Unicorn, which became Borland's Sprint, featured a markup language which resembled a simplified version of Scribe's.
14311274
Actifed (computer virus)


Actifed is a G2-generated encrypted computer virus which infects .COM and .EXE files but "not" codice_1. The virus is loaded into memory by executing an infected program and then affects the computer's run-time operation and corrupts program files. G2 is a computer virus creation tool written by Dark Angel of the Phalcon/Skism organization. This organization also wrote the "Phalcon-Skism Mass Produced Code Generator" [PS-MPC] which was used in the creation of Abraxas and numerous other viruses. G2 generates compact, easily
12287484
Gateway AnyKey


press to clear the keyboard state. The Program light normally remains solidly on or off depending on whether the keyboard is set to use macros, which can be toggled by pressing the Suspend Macro key. The state of the Program light does not reflect whether there are any macros programmed into the keyboard, merely whether the keyboard is in macro mode. Pressing the Suspend Macro key will cause the Program light to go out and will cause all keys programmed with macros to behave with their usual functions instead of their programmed macros. Keys
20758912
Locky


, one bitcoin varies in value between $9,000 and $10,000 via a bitcoin exchange). Since the criminals possess the private key and the remote servers are controlled by them, the victims are motivated to pay to decrypt their files. The most commonly reported mechanism of infection involves receiving an email with a Microsoft Word document attachment that contains the code. The document is gibberish, and prompts the user to enable macros to view the document. Enabling macros and opening the document launch the Locky virus. Once the virus is launched
2834940
Macro and security


rare (more than the polymorphic macro viruses, there may not exist one), indeed, create two (or more) which can interact with each other and not reduce the virlity (rather reinforce it) is complicated. One of the worst scenarios in the world of viruses would be a tool allowing to create a new virus by modifying an existing one. For executable files, it is hard to create this kind of tool. But it is very simple for macro viruses since sources of macros are always available. Based
2791865
Gateway AnyKey


the key twice." Pressing a programmed key will “play back” all the keypresses that were programmed into it at the current repeat rate of the keyboard. On versions that require Ctrl + "Program Macro" at start the programming session, you still use "Program Macro" to end programming session. If the last 2 keystrokes are ctrl + "Program Macro" the ctrl stroke becomes part of the macro. When this macro is run "ctrl" key is stuck on preventing other macros running until another ctrl key
20758911
Macro and security


exploit to take down the control of the document and the computer where the Word document is opened. Such type of viruses use automatic and semi-automatic macros, they can be launched by any action or some events without the user’s knowledge or consent. For example, a Word document have the following macros: AutoExec, AutoNew, AutoClose, AutoOpen, AutoExit, so it's easy for a hacker to replace these basic functionalities by a macro virus which have the same name as the original functionality. Also, a combination
2791854
Gateway AnyKey


cursor movement, remapped keys, and "even other keys programmed with macros". The Program light flashes as long as the keyboard is accepting programming input. It pauses momentarily when the key to be assigned the macro is pressed to indicate that the keypress was picked up. Pressing Program Macro for a second time ends the programming session and saves the macro to the target key. Pressing it again before entering any programming input cancels the operation. "A key can be cleared of its macro by pressing Program Macro and then pressing
20758910
CICS


a file were made by a macro call to the "File Control Program" of CICS might look like this: This gave rise to the later terminology "Macro-level CICS." When high-level language support was added, the macros were retained and the code was converted by a pre-compiler that expanded the macros to their COBOL or PL/I CALL statement equivalents. Thus preparing a HLL application was effectively a "two-stage" compile output from the preprocessor fed into the HLL compiler as input.
13048491
Program optimization


template metaprogramming in C++. In both cases, work is moved to compile-time. The difference between C macros on one side, and Lisp-like macros and C++ template metaprogramming on the other side, is that the latter tools allow performing arbitrary computations at compile-time/parse-time, while expansion of C macros does not perform any computation, and relies on the optimizer ability to perform it. Additionally, C macros do not directly support recursion or iteration, so are not Turing complete. As with any
6163813
Microsoft Word


was originally WordBasic, but changed to Visual Basic for Applications as of Word 97. This extensive functionality can also be used to run and propagate viruses in documents. The tendency for people to exchange Word documents via email, USB flash drives, and floppy disks made this an especially attractive vector in 1999. A prominent example was the Melissa virus, but countless others have existed. These macro viruses were the only known cross-platform threats between Windows and Macintosh computers and they were the only infection vectors to affect any macOS system
49093
Political violence


four actives depend on the state's ability to use and monopolize violence. In other words, politically and non-politically motivated violence is necessary in state-building and building fiscal capacity. There are a growing number of social science studies that examine how political violence affects individuals and households. It is important to keep in mind that what happens at the individual and household level can affect what happens at the macro level. For example, political violence effects an individual's income, health, and education attainment, but these individual
19516179
List of programming languages by type


been embedded into applications. These are sometimes called "macro languages", although in a somewhat different sense to textual-substitution macros like m4. Metaprogramming is the writing of programs that write or manipulate other programs (or themselves) as their data or that do part of the work that is otherwise done at run time during compile time. In many cases, this allows programmers to get more done in the same amount of time as they would take to write all the code manually. Multiparadigm languages support more than one programming
14217824
Computer virus


horse programs, and viruses were written to infect popularly traded software. Shareware and bootleg software were equally common vectors for viruses on BBSs. Viruses can increase their chances of spreading to other computers by infecting files on a network file system or a file system that is accessed by other computers. Macro viruses have become common since the mid-1990s. Most of these viruses are written in the scripting languages for Microsoft programs such as Microsoft Word and Microsoft Excel and spread throughout Microsoft Office by infecting documents and spreadsheets. Since Word and Excel were
850780
Black wildebeest


) is a tick-borne rickettsial disease that affects the black wildebeest, and as the blue wildebeest is fatally affected by rinderpest and foot-and-mouth disease, it is also likely to be susceptible to these. Malignant catarrhal fever is a fatal disease of domestic cattle caused by a gammaherpesvirus. Like the blue wildebeest, the black wildebeest seems to act as a reservoir for the virus and all animals are carriers, being persistently infected, but showing no symptoms. The virus is transmitted from mother to calf during the gestation
7834855
List of programming languages by type


's assembly language, is also defined by the developer, in most cases. Some commonly used machine code instruction sets are: Macro languages transform one source code file into another. A "macro" is essentially a short piece of text that expands into a longer one (not to be confused with hygienic macros), possibly with parameter substitution. They are often used to preprocess source code. Preprocessors can also supply facilities like file inclusion. Macro languages may be restricted to acting on specially labeled code regions (pre-fixed
14217822
Gateway AnyKey


controller as well as an EEPROM chip that can store user-defined macros. Any key on the keyboard can be programmed to contain a macro of arbitrary length or can be programmed to act like any other key on the keyboard (remapped). This is done on the hardware level inside the keyboard's controller itself. No driver software is required to use the AnyKey's programming functionality, as the keyboard's own controller dictates which keypress codes are sent to the attached computer. A utility for MS-DOS exists to quickly
20758894
HP-12C


HP-12C's programming mode is very intuitive and works like a macro operation on a computer. Basically, the keys one would press in the calculating mode to arrive at a solution are entered in the programming mode along with logical operators (if, and, etc.) if applicable to the solution. After the programming is complete, the macro will run in the computation mode to save the user steps and improve accuracy. There are 99 lines of programmable memory on the HP-12C. There were at least eight hardware revisions of the HP-12C
6331432
Legacy Virus


died of the Legacy Virus in "Uncanny X-Men" #303 (August 1993), he left the X-Men and joined Magneto's Acolytes. The virus raged on for some time in the mutant population, until Mystique, in an effort to make the world safe for mutants, modified the virus to affect only humans. When Moira found out about this strain of the virus, she finally grasped what the key to the cure was. Unfortunately, she was mortally wounded by Mystique during the Brotherhood of Mutants
3387834
C preprocessor


expansion of function-like macros with arguments is subtle. Object-like macros were conventionally used as part of good programming practice to create symbolic names for constants, e.g., instead of hard-coding numbers throughout the code. An alternative in both C and C++, especially in situations in which a pointer to the number is required, is to apply the codice_26 qualifier to a global variable. This causes the value to be stored in memory, instead of being substituted by the preprocessor. An example of a function-like
8051948
Passiflora edulis


affecting the leaf, this virus influences fruit shape and size. Affected fruits become stone-like and much smaller than normal, with many fruits becoming scabbed and cracked. The virus is spread by sap-sucking insects such as aphids and mites. Woodiness can also spread through vegetation propagation such as infected scions or contaminated tools. There is no chemical control for this virus once the plant is infected, but the use of clean planting material can reduce its dissemination. One of the most serious viruses pertaining to vegetation is the Cucumber
19039691
List of diseases of the honey bee


and die. It is thought to be associated with "Nosema". Cloudy wing virus is a little-studied, small, icosahedral virus commonly found in honey bees, especially in collapsing colonies infested by "Varroa destructor", providing circumstantial evidence that the mite may act as a vector. A picornavirus-like virus causes sacbrood disease. Affected larvae change from pearly white to gray and finally black. Death occurs when the larvae are upright, just before pupation. Consequently, affected larvae are usually found in capped cells.
5462189
Heuristic analysis


as a potential virus, and the user alerted. Another common method of heuristic analysis is for the anti-virus program to decompile the suspicious program, then analyze the machine code contained within. The source code of the suspicious file is compared to the source code of known viruses and virus-like activities. If a certain percentage of the source code matches with the code of known viruses or virus-like activities, the file is flagged, and the user alerted. Heuristic analysis is capable of detecting many previously unknown viruses
18932794
WSFN (programming language)


includes calls to I within it. This is a key aspect of the WSFN concept; the language is highly recursive in nature, which makes programming self-similar patterns like fractals easy to accomplish in a few lines of code. A key concept of Extended WSFN is that the keyboard is always active, even while macros are running. This allows keyboard input to interrupt running programs. Using this technique, one can make macros for moving the turtle in certain ways, assign them to letters on the keyboard, and then perform
10673263
Computer virus


A computer virus is a type of malicious software that, when executed, replicates itself by modifying other computer programs and inserting its own code. When this replication succeeds, the affected areas are then said to be "infected" with a computer virus. Virus writers use social engineering deceptions and exploit detailed knowledge of security vulnerabilities to initially infect systems and to spread the virus. The vast majority of viruses target systems running Microsoft Windows, employing a variety of mechanisms to infect new hosts, and often using complex anti-detection/
850716
Helenium virus Y


Helenium virus Y (HVY) is a plant pathogenic virus, one of two viruses that affect commercially grown "Helenium amarum" hybrids. It was first discovered and isolated in 1978. It is a potyvirus, also known as the Helium virus Y, and is often abbreviated as HelVY or HVY. It shows some relationship with viruses like the lettuce mosaic virus, bean yellow mosaic virus, and potato virus Y. Based on morphology, HVY belongs to the subdivision II of the potyvirus group. HVY belongs to the potyvirus genus.
16904940
Community-based program design


tool of program design that can be employed is the logic model. Logic models are a graphical depiction of the logical relationships between the resources, activities, outputs and outcomes of a program. The underlying purpose of constructing a logic model is to assess how a program's activities will affect its outcomes. This model was first used as a tool to identify performance, but it has been adapted to program planning over time. For community-based programs that seek to address macro-issues, the social action model may be utilized
16063811
Cassava brown streak virus disease


stunting growth. Typically the affected plants do not possess all of these characteristics, but those that are severely affected may. Farmers may be unaware of their infected cassava crops until they are harvested and see the tuber lesions because leaves are asymptomatic. The cassava mosaic virus (CMV) is another cassava virus that exhibits foliar symptoms similar to CBSD, but they are more obvious. UCBSV has milder symptoms than CBSV, and lower pathogenicity. After a period of ambiguity among researchers, the consensus is that the most likely candidate of CBSD
14786301
Racket (programming language)


's core language includes macros, modules, lexical closures, tail calls, delimited continuations, parameters (fluid variables), software contracts, green and OS threads, and more. The language also comes with primitives, such as eventspaces and custodians, which control resource management and enables the language to act like an operating system for loading and managing other programs. Further extensions to the language are created with the powerful macro system, which together with the module system and custom parsers can control all aspects of a language. Unlike programming
16546986
Nemerle


modifying program code during compiling. Macros can be used in the form of a method call or as a new language construct. Many constructs within the language are implemented using macros (if, for, foreach, while, using etc.). "if" macro example: Nemerle can be integrated into the integrated development environment (IDE) Visual Studio 2008. It also has a fully free IDE based on Visual Studio 2008 Shell (like Visual Studio Express Editions) and SharpDevelop (link to plugin source code). Nemerle
11111496
Exit status


or failure by returning an integer, or returning the macros codice_1 and codice_2. On Unix-like systems these are equal to 0 and 1 respectively. A C program may also use the codice_3 function specifying the integer status or exit macro as the first parameter. The return value from codice_4 is passed to the codice_5 function, which for values zero, codice_1 or codice_2 may translate it to “an implementation defined form” of successful termination or unsuccessful termination. Apart from zero and the macros codice_1 and codice_2, the C standard
8256354
M4 (computer language)


m4 is a general-purpose macro processor included in all UNIX-like operating systems, and is a component of the POSIX standard. The language was designed by Brian Kernighan and Dennis Ritchie for the original versions of UNIX. It is an extension of an earlier macro processor m3, written by Ritchie for the AP-3 minicomputer. The macro preprocessor operates as a text-replacement tool. It is employed to re-use text templates, typically in computer programming applications, but also in text editing and text-processing applications.
869324
Reaper (novel)


autopsy to learn that the virus attacks the brain and tells it to calcify all the cells. What terrifies him the most is the fact that the virus has only affected the people with the beta test run on the Telecon system. This starts the conspiracy that the killer is a computer virus that produces a subliminal light pattern that causes the brain to react. After getting photos of the Washington infection, they go to Telecon to speak to Marcus Teal about the virus and learn a good bit about fiber optics. He denies their
11095186
Macro recorder


A macro recorder is a piece of software that records user actions for playback at a later time. The main advantage of using a macro recorder is that it allows a user to easily perform complex operations much faster and with less effort without requiring custom computer programming or scripting. Most word processors, text editors and other office programs come with built-in macro recorder tools which automate the user's actions. Not all software comes with a built-in macro recorder. A standalone macro-recorder program allows a user to "
1938391
General-purpose macro processor


A general-purpose macro processor or general purpose preprocessor is a macro processor that is not tied to or integrated with a particular language or piece of software. A macro processor is a program that copies a stream of text from one place to another, making a systematic set of replacements as it does so. Macro processors are often embedded in other programs, such as assemblers and compilers. Sometimes they are standalone programs that can be used to process any kind of text. Macro processors have been used for language expansion (defining
20060126
Dynamic programming language


many dynamic languages, and typically involves analysis of the types and metadata of generic or polymorphic data. It can, however, also include full evaluation and modification of a program's code as data, such as the features that Lisp provides in analyzing S-expressions. A limited number of dynamic programming languages provide features which combine code introspection (the ability to examine classes, functions, and keywords to know what they are, what they do and what they know) and eval in a feature called macros. Most programmers today
8627776
Entomological warfare


As recently as 2002 U.S. entomological anti-drug efforts at Fort Detrick were focused on finding an insect vector for a virus that affects the opium poppy. Clemson University's Regulatory and Public Service Program listed "diseases vectored by insects" among bioterrorism scenarios considered "most likely". Because invasive species are already a problem worldwide one University of Nebraska entomologist considered it likely that the source of any sudden appearance of a new agricultural pest would be difficult, if not impossible, to determine. Lockwood considers insects a more effective means of
20314421