Self-modifying code
http://dbpedia.org/resource/Self-modifying_code an entity of type: WikicatComputerSecurityExploits
Samomodifikující se kód (anglicky Self-modifying code) je v informatice takový zdrojový kód, který při svém mění vlastní instrukce. Obvykle je to kvůli zkrácení výkonného kódu programu, zvýšení výpočetního výkonu, případně kvůli usnadnění údržby zdrojového kódu (který by jinak byl příliš dlouhý). Termín je používán pro kód, který sám sebe mění záměrně, nikoliv v důsledku počítačového útoku na přetečení zásobníku a podobně.
rdf:langString
En informática, el término código mutante o código ambiguo se emplea para referirse a un código cuya integridad es modificada por sí mismo durante su ejecución, generalmente este código trata de un malware por el hecho de que si como algoritmo (cuando es ejecutado) se automodifica como información (donde está almacenado) fácilmente puede engañar a un programa del tipo antivirus o similar. Aunque de todas maneras, ciertos programas Antivirus son capaces de detectar este tipo de modificaciones.
* Datos: Q2165944
rdf:langString
Un code automodifiable est, en programmation informatique, un programme qui peut se modifier lui-même, c’est-à-dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui-même.
rdf:langString
자체 수정 코드 (self-modifying code)는 실행 중에 자신의 명령어를 바꾸는 코드를 말한다. 주로 (instruction path length)를 줄이고, 성능을 향상시키거나 비슷한 반복되는 코드를 줄임으로써 유지보수를 단순화 시켜준다. 자체 수정 코드는 주로 테스트될 필요가 있는 조건의 수를 줄이는데 사용되는 조건부 프로그램 분기와 "플래그 설정" 방식의 대체재이다. 이 방식은 주로 추가적인 입출력 사이클의 오버헤드 요구 없이 조건부로 테스트/디버깅 코드를 유발시키기 위해 사용된다. 이 수정은 다음의 경우에 사용된다.
* 오직 초기화 기간에만 - 입력 파라미터에 기반한다. 프로그램의 시작 포인터 변경은 자체 수정 코드의 간접적인 방식과 동등하지만, 하나 이상의 대체 명령어 경로를 요구함으로 인해 프로그램의 크기를 증가시킨다.
* 실행 기간 동안 - 실행 기간 동안 미치게 되는 특정한 프로그램 선언에 기반한다. 다른 경우로, 새로운 명령어를 이미 존재하는 명령어에 덮어 씌움으로써, 수정은 기계어 명령어에 직접적으로 수행된다. (예를 들면, 비교와 분기를 또는 NOP으로 대체한다.)
rdf:langString
自己書き換えコード(じこかきかえコード、英: self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLにはALTERという命令が存在していた。コンパイラで実装するのは難しいが、CLIPPERとではその試みが行われている。バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。
rdf:langString
自修改代码(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版 ,單晶片程序升级。
rdf:langString
Mit der Bezeichnung Selbstmodifizierender Code (englisch Self Modifying Code) wird ein Abschnitt eines Computerprogramms bezeichnet, das zur Lösung der Programmaufgabe Teile des eigenen Programmcodes während der Ausführung gezielt verändert. Unter der Bezeichnung „freier Rechenplan“ hatte schon Konrad Zuse selbstmodifizierenden Code als Möglichkeit in die von ihm entworfene Programmiersprache Plankalkül aufgenommen.
rdf:langString
In computer science, self-modifying code (SMC) is code that alters its own instructions while it is executing – usually to reduce the instruction path length and improve performance or simply to reduce otherwise repetitively similar code, thus simplifying maintenance. The term is usually only applied to code where the self-modification is intentional, not in situations where code accidentally modifies itself due to an error such as a buffer overflow. Self-modifying code can involve overwriting existing instructions or generating new code at run time and transferring control to that code.
rdf:langString
La programmazione di codice automodificante (in inglese: self-modifying code) è una particolare tecnica di programmazione volta a realizzare programmi in grado di modificare il proprio codice durante l'esecuzione. Normalmente il codice automodificante viene scritto nel linguaggio nativo del processore su cui deve girare (assembly), tuttavia è possibile, con opportuni accorgimenti, scrivere codice automodificante con linguaggio di alto livello.
rdf:langString
Самомодифицирующийся код (СМК) — программный приём, при котором приложение создаёт или изменяет часть своего программного кода во время выполнения. Такой код обычно применяют в программах, написанных под процессор с фон-неймановской организацией памяти. По времени проведения модификации метод делится на:
* Модификация при инициализации — проводится один раз перед запуском изменяемого кода
* Модификация на лету (on-the-fly) — изменение состояния программы во время исполнения
rdf:langString
Самопереробний код (англ. Self-modifying code) — програмний прийом, при якому програма створює або змінює частину свого програмного коду під час виконання. Такий код зазвичай застосовують у програмах, написаних під процесор з фон-нейманівською організацією пам'яті. За часом проведення модифікації метод поділяється на:
* Модифікація при ініціалізації проводиться один раз, перед запуском змінюваного коду
* Модифікація на льоту (on-the-fly) — зміна стану програми під час виконання
rdf:langString
rdf:langString
Samomodifikující se kód
rdf:langString
Selbstmodifizierender Code
rdf:langString
Código mutante
rdf:langString
Code automodifiable
rdf:langString
Codice automodificante
rdf:langString
자체 수정 코드
rdf:langString
自己書き換えコード
rdf:langString
Self-modifying code
rdf:langString
Самомодифицирующийся код
rdf:langString
Самопереробний код
rdf:langString
自修改代码
xsd:integer
217647
xsd:integer
1124859341
rdf:langString
y
rdf:langString
January 2022
rdf:langString
"nb"
rdf:langString
Samomodifikující se kód (anglicky Self-modifying code) je v informatice takový zdrojový kód, který při svém mění vlastní instrukce. Obvykle je to kvůli zkrácení výkonného kódu programu, zvýšení výpočetního výkonu, případně kvůli usnadnění údržby zdrojového kódu (který by jinak byl příliš dlouhý). Termín je používán pro kód, který sám sebe mění záměrně, nikoliv v důsledku počítačového útoku na přetečení zásobníku a podobně.
rdf:langString
Mit der Bezeichnung Selbstmodifizierender Code (englisch Self Modifying Code) wird ein Abschnitt eines Computerprogramms bezeichnet, das zur Lösung der Programmaufgabe Teile des eigenen Programmcodes während der Ausführung gezielt verändert. Unter der Bezeichnung „freier Rechenplan“ hatte schon Konrad Zuse selbstmodifizierenden Code als Möglichkeit in die von ihm entworfene Programmiersprache Plankalkül aufgenommen. Das Programm muss dabei in der Lage sein, im Maschinencode bestimmte Befehle durch sinnvolle andere Maschinenbefehle zu ersetzen. Bei höheren Programmiersprachen (z. B. APL) manipuliert das Programm meist den Quellcode als Zeichenkette (text string). Selbstmodifizierender Code kann unter anderem da verwendet werden, wo es möglich ist, mehrere, nur an wenigen Stellen unterschiedliche Programmteile zu einem einzigen zusammenzufassen. Der selbstmodifizierende Code eines Programms hat meist nichts mit Lernen oder der Verbesserung eines Programmes zu tun. Selbstmodifizierende Programme, die die Hochsprache des Programms modifizieren, sind in der Zukunft möglicherweise hilfreich, die Maschinenintelligenz zu steigern.
rdf:langString
En informática, el término código mutante o código ambiguo se emplea para referirse a un código cuya integridad es modificada por sí mismo durante su ejecución, generalmente este código trata de un malware por el hecho de que si como algoritmo (cuando es ejecutado) se automodifica como información (donde está almacenado) fácilmente puede engañar a un programa del tipo antivirus o similar. Aunque de todas maneras, ciertos programas Antivirus son capaces de detectar este tipo de modificaciones.
* Datos: Q2165944
rdf:langString
Un code automodifiable est, en programmation informatique, un programme qui peut se modifier lui-même, c’est-à-dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui-même.
rdf:langString
In computer science, self-modifying code (SMC) is code that alters its own instructions while it is executing – usually to reduce the instruction path length and improve performance or simply to reduce otherwise repetitively similar code, thus simplifying maintenance. The term is usually only applied to code where the self-modification is intentional, not in situations where code accidentally modifies itself due to an error such as a buffer overflow. Self-modifying code can involve overwriting existing instructions or generating new code at run time and transferring control to that code. Self-modification can be used as an alternative to the method of "flag setting" and conditional program branching, used primarily to reduce the number of times a condition needs to be tested. The method is frequently used for conditionally invoking test/debugging code without requiring additional computational overhead for every input/output cycle. The modifications may be performed:
* only during initialization – based on input parameters (when the process is more commonly described as software 'configuration' and is somewhat analogous, in hardware terms, to setting jumpers for printed circuit boards). Alteration of program entry pointers is an equivalent indirect method of self-modification, but requiring the co-existence of one or more alternative instruction paths, increasing the program size.
* throughout execution ("on the fly") – based on particular program states that have been reached during the execution In either case, the modifications may be performed directly to the machine code instructions themselves, by overlaying new instructions over the existing ones (for example: altering a compare and branch to an unconditional branch or alternatively a 'NOP'). In the IBM System/360 architecture, and its successors up to z/Architecture, an EXECUTE (EX) instruction logically overlays the second byte of its target instruction with the low-order 8 bits of register 1. This provides the effect of self-modification although the actual instruction in storage is not altered.
rdf:langString
자체 수정 코드 (self-modifying code)는 실행 중에 자신의 명령어를 바꾸는 코드를 말한다. 주로 (instruction path length)를 줄이고, 성능을 향상시키거나 비슷한 반복되는 코드를 줄임으로써 유지보수를 단순화 시켜준다. 자체 수정 코드는 주로 테스트될 필요가 있는 조건의 수를 줄이는데 사용되는 조건부 프로그램 분기와 "플래그 설정" 방식의 대체재이다. 이 방식은 주로 추가적인 입출력 사이클의 오버헤드 요구 없이 조건부로 테스트/디버깅 코드를 유발시키기 위해 사용된다. 이 수정은 다음의 경우에 사용된다.
* 오직 초기화 기간에만 - 입력 파라미터에 기반한다. 프로그램의 시작 포인터 변경은 자체 수정 코드의 간접적인 방식과 동등하지만, 하나 이상의 대체 명령어 경로를 요구함으로 인해 프로그램의 크기를 증가시킨다.
* 실행 기간 동안 - 실행 기간 동안 미치게 되는 특정한 프로그램 선언에 기반한다. 다른 경우로, 새로운 명령어를 이미 존재하는 명령어에 덮어 씌움으로써, 수정은 기계어 명령어에 직접적으로 수행된다. (예를 들면, 비교와 분기를 또는 NOP으로 대체한다.)
rdf:langString
La programmazione di codice automodificante (in inglese: self-modifying code) è una particolare tecnica di programmazione volta a realizzare programmi in grado di modificare il proprio codice durante l'esecuzione. Per la complessità dell'analisi relativa a tali algoritmi, è una tecnica sconsigliata per quasi tutte le applicazioni: allo stato attuale solo i virus, i programmi di intelligenza artificiale ed alcuni algoritmi di protezione del software fanno uso di codice automodificante. I virus lo fanno per cercare di sfuggire all'analisi dei programmi antivirus, mentre in intelligenza artificiale serve per simulare (o per alcuni imitare) l'apprendimento. Infine gli algoritmi di protezione del software usano il codice automodificante per rendere difficoltosa la realizzazione di "crack" in grado di eliminare la protezione sul software stesso. Normalmente il codice automodificante viene scritto nel linguaggio nativo del processore su cui deve girare (assembly), tuttavia è possibile, con opportuni accorgimenti, scrivere codice automodificante con linguaggio di alto livello. In origine i programmi automodificanti erano realizzati per ottenere il massimo delle prestazioni dalle macchine, ma con i moderni microprocessori ciò non è più vero, anzi spesso ottengono il risultato opposto: un moderno processore può venire rallentato dal codice automodificante. Attualmente l'utilizzo della tecnica del codice automodificante viene sconsigliata da tutti i produttori di microprocessori poiché rende notevolmente più complessa la realizzazione degli stessi microprocessori. I microprocessori moderni suddividono le istruzioni e i dati in due aree separate di memoria. Il codice automodificante non è dotato di questa netta suddivisione dato che utilizza i dati per adattare il proprio codice e questo rende la sua gestione in un processore moderno molto difficile. Intel e AMD attualmente supportano l'esecuzione di codice automodificante sui loro prodotti della linea x86. Questo supporto è mantenuto per questioni di compatibilità con le precedenti applicazioni.
rdf:langString
自己書き換えコード(じこかきかえコード、英: self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLにはALTERという命令が存在していた。コンパイラで実装するのは難しいが、CLIPPERとではその試みが行われている。バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。
rdf:langString
Самомодифицирующийся код (СМК) — программный приём, при котором приложение создаёт или изменяет часть своего программного кода во время выполнения. Такой код обычно применяют в программах, написанных под процессор с фон-неймановской организацией памяти. По времени проведения модификации метод делится на:
* Модификация при инициализации — проводится один раз перед запуском изменяемого кода
* Модификация на лету (on-the-fly) — изменение состояния программы во время исполнения В обоих случаях изменение проходит непосредственно в машинном коде, когда новые инструкции перезаписывают старые (напр. условный переход , , , и т.п. заменяются на безусловный переход или NOP). В наборе инструкций IBM/360 и Z/Architecture имеется инструкция EXECUTE (EX), которая перезаписывает целевую инструкцию (записанную во втором байте команды EX) самыми младшими 8 битами регистра 1. На указанных архитектурах с её помощью реализуется стандартный, законный метод временного изменения инструкций.
rdf:langString
Самопереробний код (англ. Self-modifying code) — програмний прийом, при якому програма створює або змінює частину свого програмного коду під час виконання. Такий код зазвичай застосовують у програмах, написаних під процесор з фон-нейманівською організацією пам'яті. За часом проведення модифікації метод поділяється на:
* Модифікація при ініціалізації проводиться один раз, перед запуском змінюваного коду
* Модифікація на льоту (on-the-fly) — зміна стану програми під час виконання В обох випадках зміна проходить безпосередньо в машинному коді, коли нові інструкції замінюють старі (напр. умовний перехід , , , і т. ін. замінюються на безумовний перехід або NOP). У наборі інструкцій IBM/360 і Z/Architecture є інструкція EXECUTE (EX), яка перезаписує цільову інструкцію (записану у другому байті команди EX) наймолодшими 8 бітами регістра 1. На зазначених архітектурах з її допомогою реалізується стандартний, законний метод тимчасової зміни інструкцій.
rdf:langString
自修改代码(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版 ,單晶片程序升级。
xsd:nonNegativeInteger
41619