This HTML5 document contains 399 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dbpedia-dahttp://da.dbpedia.org/resource/
dbthttp://dbpedia.org/resource/Template:
n33http://bn.dbpedia.org/resource/
wikipedia-enhttp://en.wikipedia.org/wiki/
n15http://dbpedia.org/resource/Test/
dbpedia-lmohttp://lmo.dbpedia.org/resource/
dbrhttp://dbpedia.org/resource/
dbpedia-frhttp://fr.dbpedia.org/resource/
n44http://dbpedia.org/resource/Input/
n12https://web.archive.org/web/20170321014657/https:/www.linusakesson.net/programming/gcr-decoding/
dctermshttp://purl.org/dc/terms/
n20http://flint.cs.yale.edu/flint/publications/
rdfshttp://www.w3.org/2000/01/rdf-schema#
dbpedia-cshttp://cs.dbpedia.org/resource/
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
n25http://dbpedia.org/resource/Z/
dbphttp://dbpedia.org/property/
xsdhhttp://www.w3.org/2001/XMLSchema#
dbpedia-ukhttp://uk.dbpedia.org/resource/
dbohttp://dbpedia.org/ontology/
dbpedia-huhttp://hu.dbpedia.org/resource/
dbpedia-jahttp://ja.dbpedia.org/resource/
dbchttp://dbpedia.org/resource/Category:
dbpedia-dehttp://de.dbpedia.org/resource/
n40https://web.archive.org/web/20100717072236/http:/public.carnet.hr/~jbrecak/
dbpedia-ruhttp://ru.dbpedia.org/resource/
yagohttp://dbpedia.org/class/yago/
n22http://asm.sourceforge.net/articles/
wikidatahttp://www.wikidata.org/entity/
goldhttp://purl.org/linguistics/gold/
n34http://dbpedia.org/resource/Channel_I/
yago-reshttp://yago-knowledge.org/resource/
n13https://global.dbpedia.org/id/
n31https://www.linusakesson.net/programming/gcr-decoding/
n35http://dbpedia.org/resource/IBM_System/
dbpedia-ithttp://it.dbpedia.org/resource/
provhttp://www.w3.org/ns/prov#
foafhttp://xmlns.com/foaf/0.1/
n5http://dbpedia.org/resource/IBM/
dbpedia-zhhttp://zh.dbpedia.org/resource/
dbpedia-kohttp://ko.dbpedia.org/resource/
dbpedia-fahttp://fa.dbpedia.org/resource/
dbpedia-eshttp://es.dbpedia.org/resource/
freebasehttp://rdf.freebase.com/ns/
owlhttp://www.w3.org/2002/07/owl#

Statements

Subject Item
dbr:Program_optimization
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:MIX
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Metamorphic_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Memory_address
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Memory_ordering
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Memory_tester
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:MexScript
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Befunge
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Register_renaming
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Von_Neumann_programming_languages
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:EICAR_test_file
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Incremental_compiler
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Instruction_pipelining
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Interpreter_(computing)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Protected_mode
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:X86_virtualization
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Constant_(computer_programming)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Esoteric_programming_language
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:NAR_1
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:One-instruction_set_computer
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Quaject
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Function_(computer_programming)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Modified_Harvard_architecture
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:The_Story_of_Mel
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Synthesis_(kernel)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Synthesis_kernel
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Synthesis_microkernel
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Array_(data_structure)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Alter
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Links_(web_browser)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Lisp_(programming_language)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:MS-DOS
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Simile_(computer_virus)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Computer_virus
rdfs:seeAlso
dbr:Self-modifying_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Zilog_Z80
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Emulator
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:PEEK_and_POKE
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Parallax_Propeller
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Prefetch_input_queue
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Superposition_principle
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:TRAC_(programming_language)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:COBOL
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Data_General_Business_Basic
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Code_as_data
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Code_generation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Just-in-time_compilation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:X86_assembly_language
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Addressing_mode
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Alexia_Massalin
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Dynamic_recompilation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:EDSAC
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Alpha_Waves
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Executable_compression
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:PCASTL
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Fast_path
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Hard_coding
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:History_of_computer_science
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Leet_(programming_language)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Macintosh_Quadra
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Quine_(computing)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Record_(computer_science)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:International_Obfuscated_C_Code_Contest
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Dynamic_self-modification
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Dynamic_self-modifying_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Dynamically_self-modifying_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:AARD_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Code_segment
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Homoiconicity
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Reflective_programming
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Automatic_bug_fixing
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Buffer_overflow
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Softcoding
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Software_cracking
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:IBM_1130
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Index_register
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Metaprogramming
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Object_code_optimizer
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Random-access_stored-program_machine
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Reentrancy_(computing)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Self-authoring_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Self-modifying_code
rdf:type
yago:Accomplishment100035189 yago:GrammaticalRelation113796779 dbo:Film yago:WikicatComputerSecurityExploits yago:LinguisticRelation113797142 yago:Event100029378 yago:Abstraction100002137 yago:PsychologicalFeature100023100 yago:YagoPermanentlyLocatedEntity yago:Feat100036762 yago:Act100030358 yago:Relation100031921 yago:Action100037396 yago:WikicatProgrammingParadigms yago:Inflection113803782 yago:Paradigm113804375
rdfs:label
Código mutante Самомодифицирующийся код Selbstmodifizierender Code 自己書き換えコード Self-modifying code Самопереробний код Codice automodificante 自修改代码 자체 수정 코드 Code automodifiable Samomodifikující se kód
rdfs:comment
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 自修改代码(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版 ,單晶片程序升级。 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-modifying code)는 실행 중에 자신의 명령어를 바꾸는 코드를 말한다. 주로 (instruction path length)를 줄이고, 성능을 향상시키거나 비슷한 반복되는 코드를 줄임으로써 유지보수를 단순화 시켜준다. 자체 수정 코드는 주로 테스트될 필요가 있는 조건의 수를 줄이는데 사용되는 조건부 프로그램 분기와 "플래그 설정" 방식의 대체재이다. 이 방식은 주로 추가적인 입출력 사이클의 오버헤드 요구 없이 조건부로 테스트/디버깅 코드를 유발시키기 위해 사용된다. 이 수정은 다음의 경우에 사용된다. * 오직 초기화 기간에만 - 입력 파라미터에 기반한다. 프로그램의 시작 포인터 변경은 자체 수정 코드의 간접적인 방식과 동등하지만, 하나 이상의 대체 명령어 경로를 요구함으로 인해 프로그램의 크기를 증가시킨다. * 실행 기간 동안 - 실행 기간 동안 미치게 되는 특정한 프로그램 선언에 기반한다. 다른 경우로, 새로운 명령어를 이미 존재하는 명령어에 덮어 씌움으로써, 수정은 기계어 명령어에 직접적으로 수행된다. (예를 들면, 비교와 분기를 또는 NOP으로 대체한다.) 自己書き換えコード(じこかきかえコード、英: self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLにはALTERという命令が存在していた。コンパイラで実装するのは難しいが、CLIPPERとではその試みが行われている。バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。 Самопереробний код (англ. Self-modifying code) — програмний прийом, при якому програма створює або змінює частину свого програмного коду під час виконання. Такий код зазвичай застосовують у програмах, написаних під процесор з фон-нейманівською організацією пам'яті. За часом проведення модифікації метод поділяється на: * Модифікація при ініціалізації проводиться один раз, перед запуском змінюваного коду * Модифікація на льоту (on-the-fly) — зміна стану програми під час виконання Самомодифицирующийся код (СМК) — программный приём, при котором приложение создаёт или изменяет часть своего программного кода во время выполнения. Такой код обычно применяют в программах, написанных под процессор с фон-неймановской организацией памяти. По времени проведения модификации метод делится на: * Модификация при инициализации — проводится один раз перед запуском изменяемого кода * Модификация на лету (on-the-fly) — изменение состояния программы во время исполнения 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ě. 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. 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. 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.
dcterms:subject
dbc:Programming_paradigms
dbo:wikiPageID
217647
dbo:wikiPageRevisionID
1124859341
dbo:wikiPageWikiLink
dbr:Alexia_Massalin dbr:Compiler_bootstrapping dbr:IBM_PC dbr:Persistent_data_structure dbr:Compiler_optimization n5:360 dbr:Clipper_(programming_language) dbr:Polymorphic_engine dbr:Machine_language dbr:Machine_learning dbr:IBMBIO.COM dbr:Programming_language dbr:ARM64 dbr:Flag_(computing) dbr:Monkey_patch dbr:Microcomputer dbr:Access_method dbr:AARD_code dbr:IBM_PC_compatible dbr:Pseudocode dbr:IBM_1130 dbr:Jumper_(computing) dbr:Control_table dbr:Conditional_(programming) dbr:Object_(computer_science) dbr:FAT12 dbr:Floppy_disk dbr:Volume_boot_record dbr:Object-oriented_programming dbr:Jürgen_Schmidhuber dbr:Perl dbr:C_(programming_language) dbr:Codelet dbr:Memory_protection dbr:Dynamic_dead_code_elimination dbr:Genetic_programming dbr:Evolutionary_algorithm dbr:Paul_Haeberli dbr:FAT32 dbr:Operating_system dbr:Computer_virus dbr:Exploit_(computer_security) dbr:Meta-level dbr:Software_cracking dbr:Multi-boot dbr:Backward_compatibility dbr:Unix dbr:FAT16 dbr:Buffer_overflow dbr:Memory dbr:Fast_path dbr:Microsoft dbr:Burn-in dbr:Type_polymorphism dbr:SNOBOL dbr:Printed_circuit_board n15:debugging dbr:Self-relocating dbr:RISC dbr:Reward_function dbr:Harvard_architecture dbr:Burroughs_large_systems dbr:Computational_overhead dbr:Instruction_path_length dbr:Fitness_function dbr:Algorithmic_efficiency dbr:Opcode dbr:Binary_file dbr:W%5EX dbr:Neuroevolution dbr:Lisp_macros dbr:Parameter dbr:Common_subexpression_elimination dbr:Metaprogramming dbr:Reverse_engineering dbr:Algorithm dbr:Machine_code dbr:Optimization_(computer_science) dbr:Booting dbr:Overlapping_instructions dbr:CONFIG.SYS dbr:Control_flow dbr:Doctor_of_Philosophy dbr:Structured_programming n25:Architecture dbr:Bootloader dbr:Executable_compression dbr:Computer_configuration dbr:SYS_(DOS_command) dbr:CHOICE_(DOS_command) dbr:Reflection_(computer_science) dbr:X86-64 dbr:Run_time_(program_lifecycle_phase) dbr:Execution_(computers) dbr:Opcodes dbr:Python_(programming_language) dbr:Inline_function dbr:Batch_file dbr:MS-DOS dbr:PC_DOS dbr:Xor dbr:Zilog_Z80 dbr:Apple_II dbr:Quine_(computing) dbr:Function_pointer dbr:SWITCH_(CONFIG.SYS_directive) dbr:Side_effect_(computer_science) dbr:Error_function dbr:Self-replication dbr:Assembler_(computer_programming) dbr:Chain_load dbr:Instruction_overlapping dbr:Instruction_pipeline dbr:ARM_architecture_family dbr:PCASTL dbr:Instruction_pointer dbr:Dynamic_storage dbr:Instruction_(computer_science) dbr:Computer_performance dbr:Computer_science dbr:IBM_SSEC dbr:Novell_DOS_7 dbr:Object_code dbr:Fold_(function) dbr:Kernel_(computer_science) dbr:Linux_kernel dbr:Eval dbr:Instruction_set dbr:Conditional_branch dbr:Homoiconicity dbr:Microcontroller dbr:Intel_8080 dbr:SPITBOL_compiler dbr:Just-in-time_compilation dbr:Interpreter_(computing) dbr:SPARC dbr:IA-32 dbr:Intel_80386 dbr:Partition_table dbr:Quaject dbr:MIX dbr:General_purpose_register dbr:NOP_(code) dbr:I386 dbr:RAM_test dbr:Closure_(computer_science) dbr:Constant_folding dbr:Logical_block_addressing dbr:Debugger dbr:Overlapping_code dbr:Patchable_microcode dbr:One_instruction_set_computer dbr:Extensible_programming dbr:Subroutine dbr:Assembly_language n34:O dbr:Unconditional_branch n35:360_architecture dbr:Backdoor_(computing) dbr:Disassembler dbr:Hand_coding dbr:Self-modifying_computer_virus dbr:DR-DOS dbr:MIPS_architecture dbr:CPU_cache dbc:Programming_paradigms dbr:Self-hosting_(compilers) dbr:DR-DOS_7.02 dbr:Pointer_(computer_programming) dbr:Prefetch_input_queue dbr:Edge_case dbr:Dynamic_library dbr:Flash_memory dbr:DR-DOS_7.07 dbr:Master_boot_record dbr:COBOL dbr:Donald_Knuth dbr:Shellcode dbr:BIOS_Parameter_Block dbr:Polymorphic_code dbr:Source_code n44:output
dbo:wikiPageExternalLink
n12:index.php n20:smc.html n22:smc.html n31:index.php n40:sm.html
owl:sameAs
freebase:m.01fw8r dbpedia-fr:Code_automodifiable n13:23puS dbpedia-da:Selvmodificerende_kode dbpedia-zh:自修改代码 dbpedia-de:Selbstmodifizierender_Code dbpedia-ru:Самомодифицирующийся_код dbpedia-es:Código_mutante dbpedia-hu:Önmódosító_kód yago-res:Self-modifying_code dbpedia-it:Codice_automodificante dbpedia-uk:Самопереробний_код wikidata:Q2165944 dbpedia-cs:Samomodifikující_se_kód n33:স্ব-পরিবর্তনকারী_কোড dbpedia-fa:کد_خودتغییردهنده dbpedia-ko:자체_수정_코드 dbpedia-ja:自己書き換えコード dbpedia-lmo:Codes_che_'l_muda_deperlù
dbp:wikiPageUsesTemplate
dbt:Var dbt:Use_American_English dbt:Anchor dbt:Use_dmy_dates dbt:Use_list-defined_references dbt:More_citations_needed dbt:Reflist dbt:R dbt:Short_description dbt:Citation_needed dbt:Cite_web
dbp:cs1Dates
y
dbp:date
January 2022
dbp:group
"nb"
dbo:abstract
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. 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 Самомодифицирующийся код (СМК) — программный приём, при котором приложение создаёт или изменяет часть своего программного кода во время выполнения. Такой код обычно применяют в программах, написанных под процессор с фон-неймановской организацией памяти. По времени проведения модификации метод делится на: * Модификация при инициализации — проводится один раз перед запуском изменяемого кода * Модификация на лету (on-the-fly) — изменение состояния программы во время исполнения В обоих случаях изменение проходит непосредственно в машинном коде, когда новые инструкции перезаписывают старые (напр. условный переход , , , и т.п. заменяются на безусловный переход или NOP). В наборе инструкций IBM/360 и Z/Architecture имеется инструкция EXECUTE (EX), которая перезаписывает целевую инструкцию (записанную во втором байте команды EX) самыми младшими 8 битами регистра 1. На указанных архитектурах с её помощью реализуется стандартный, законный метод временного изменения инструкций. 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. Самопереробний код (англ. Self-modifying code) — програмний прийом, при якому програма створює або змінює частину свого програмного коду під час виконання. Такий код зазвичай застосовують у програмах, написаних під процесор з фон-нейманівською організацією пам'яті. За часом проведення модифікації метод поділяється на: * Модифікація при ініціалізації проводиться один раз, перед запуском змінюваного коду * Модифікація на льоту (on-the-fly) — зміна стану програми під час виконання В обох випадках зміна проходить безпосередньо в машинному коді, коли нові інструкції замінюють старі (напр. умовний перехід , , , і т. ін. замінюються на безумовний перехід або NOP). У наборі інструкцій IBM/360 і Z/Architecture є інструкція EXECUTE (EX), яка перезаписує цільову інструкцію (записану у другому байті команди EX) наймолодшими 8 бітами регістра 1. На зазначених архітектурах з її допомогою реалізується стандартний, законний метод тимчасової зміни інструкцій. 自修改代码(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版 ,單晶片程序升级。 자체 수정 코드 (self-modifying code)는 실행 중에 자신의 명령어를 바꾸는 코드를 말한다. 주로 (instruction path length)를 줄이고, 성능을 향상시키거나 비슷한 반복되는 코드를 줄임으로써 유지보수를 단순화 시켜준다. 자체 수정 코드는 주로 테스트될 필요가 있는 조건의 수를 줄이는데 사용되는 조건부 프로그램 분기와 "플래그 설정" 방식의 대체재이다. 이 방식은 주로 추가적인 입출력 사이클의 오버헤드 요구 없이 조건부로 테스트/디버깅 코드를 유발시키기 위해 사용된다. 이 수정은 다음의 경우에 사용된다. * 오직 초기화 기간에만 - 입력 파라미터에 기반한다. 프로그램의 시작 포인터 변경은 자체 수정 코드의 간접적인 방식과 동등하지만, 하나 이상의 대체 명령어 경로를 요구함으로 인해 프로그램의 크기를 증가시킨다. * 실행 기간 동안 - 실행 기간 동안 미치게 되는 특정한 프로그램 선언에 기반한다. 다른 경우로, 새로운 명령어를 이미 존재하는 명령어에 덮어 씌움으로써, 수정은 기계어 명령어에 직접적으로 수행된다. (예를 들면, 비교와 분기를 또는 NOP으로 대체한다.) 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. 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ě. 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. 自己書き換えコード(じこかきかえコード、英: self-modifying code)とは、目的を問わず実行時に自分自身の命令を書き換えるコードを指す。 自己書き換えコードはアセンブリ言語を使用すると簡単に記述できる(CPUのキャッシュを考慮する必要がある)。また、SNOBOL4やLISPのようなインタプリタ型の高級言語でもサポートされている。また、COBOLにはALTERという命令が存在していた。コンパイラで実装するのは難しいが、CLIPPERとではその試みが行われている。バッチスクリプトも自己書き換えコードを頻繁に使用する。 再構成可能コンピューティングは、言ってみれば「自己書き換えハードウェア」である。再構成可能コンピューティングはソフトウェアとハードウェアの境界を曖昧にする概念である。
gold:hypernym
dbr:Code
prov:wasDerivedFrom
wikipedia-en:Self-modifying_code?oldid=1124859341&ns=0
dbo:wikiPageLength
41619
foaf:isPrimaryTopicOf
wikipedia-en:Self-modifying_code
Subject Item
dbr:Self-reference
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Yabasic
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:SMC
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageDisambiguates
dbr:Self-modifying_code
Subject Item
dbr:Scope_(computer_science)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Von_Neumann_architecture
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Indirect_self-modification
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Indirectly_self-modifying_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Shellcode
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:IA-32_Execution_Layer
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:IBM_SSEC
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:ISAM
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Little_man_computer
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Oligomorphic_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Monkey_patch
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Multi-stage_programming
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Programma_101
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Polymorphic_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Self-relocation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:X86_memory_models
dbo:wikiPageWikiLink
dbr:Self-modifying_code
Subject Item
dbr:Self-modification_(computing)
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Self-modifying_program
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Self-referential_machine_learning
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Run-time_code_generation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Runtime_code_generation
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
dbr:Self_modifying_code
dbo:wikiPageWikiLink
dbr:Self-modifying_code
dbo:wikiPageRedirects
dbr:Self-modifying_code
Subject Item
wikipedia-en:Self-modifying_code
foaf:primaryTopic
dbr:Self-modifying_code