問題タブ [self-modifying]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python-IDLEを使用してPython2.5.6で機能しないコードスニペット
私は大学のプロジェクトに自己修正コードを使用しています。
ここにあります:
残念ながら、それは機能しません。返されたエラー:
私はどんな解決策にも感謝するでしょう。
programming-languages - 自己変更コードのプログラミング言語?
- 私は最近、自己修正プログラムを書くことを考えています。それは強力で楽しいかもしれないと思います。そのため、現在、プログラム自体のコードを簡単に変更できる言語を探しています。
- C# (回避策として) と実行時にコードをコンパイルして実行する機能について読みましたが、それはあまりにも苦痛です。
- 組み立ても考えています。実行中のコードを変更する方が簡単ですが、それほど強力ではありません (非常に生)。
実行時のコード変更をサポートする強力な言語または機能を提案できますか?
例
これが、実行時にコードを変更するという意味です。
命令のリストを作成している可能性があります。
c - 自己ヒープの読み取り/書き込み
自身のヒープ領域を読み取ることができましたか? ソフトウェアはメモリ内で自己修正できますか?
件名を表示するコードをいくつか書きます。
私は自分のコードをメモリで読んでいますか? どのように(可能であれば)それを書き、実行時に命令を変更するのですか?
c++ - 関数をコピーして呼び出す
関数をコピーして呼び出したいのですが、バッファを呼び出すときに以下のコードが失敗します。何を変更する必要がありますか?(Linux、x86)
編集:実用的な解決策:
ruby - String#split! の実装方法
独自のオブジェクトのクラスを変更できるようなメソッドが必要になることがあります。、、、、、、などがあります。それらはすべて文字列を変更しようとしていますがString#delete!
、結果のクラスはとにかくまだです。そして、に変換できるメソッドが必要です。これを行ういくつかの方法:#downcase!
#encode!
#gsub!
#strip!
#slice!
String
String
Array
出来ますか?クールな日本のカンフーか醜い自転車かもしれません — 何か解決策を見たいです.
javascript - 自己変更html-JavaScriptファイル
JavaScriptを使用したhtmlファイルが欲しいのですが、その(ファイル)はそのコンテキストを変更できます。もっと詳しく言えば、そういうことだと思います。ブラウザで開くhtmlファイルがあります。テキストを入力して送信ボタンを押すテキスト領域があります。その結果、フォームのコンテキストがhtmlファイルのどこかに保存されました。それを行うための最も簡単で安定した方法は何ですか?
c - Cプログラムは実行可能ファイルを変更できますか?
少し時間がかかりすぎて、自己修正プログラムを書けないかと思い始めました。そのために、Cで「HelloWorld」を作成し、16進エディターを使用して、コンパイルされた実行可能ファイル内の「HelloWorld」文字列の場所を見つけました。このプログラムを変更して、それ自体を開き、「HelloWorld」文字列を上書きすることはできますか?
これは機能しません。これを2つの別々のプログラム(「HelloWorld」とそれを変更するもの)に分割でき、正常に機能するため、それ自体を開くのを妨げる何かがあると思います。
編集:私の理解では、プログラムを実行すると、RAMに完全にロードされます。したがって、ハードドライブ上の実行可能ファイルは、すべての目的と目的のためにコピーです。なぜそれ自体を変更することが問題になるのでしょうか?
回避策はありますか?
ありがとう
linux - Linuxでは自己修正コードは常にセグメンテーション違反になります
自己変更コードに関する記事を見つけていくつかの例を試してみましたが、常にセグメンテーション違反が発生します。私が理解できる限り、メモリ権限に違反があります。コードセグメントは(r)ead / e(x)ecuteであるため、書き込みを試みるとこの障害が発生します。実行時またはそれ以前にメモリ権限を変更してプログラムをテストする方法はありますか?私はLinuxを使用しており、例はGASアセンブリで記述されています。
したがって、osgxによって提案された変更後、ここに動作するコードがあります(実際には、アセンブル&リンク&実行するとクラッシュしますが、gdbを使用して監視すると、コードが変更されます!)
android - Android のネイティブ自己変更コード
Android で自己変更型のネイティブ コードを作成し、エミュレータで実行しようとしています。私のサンプルは、android-ndk の HelloJNI サンプルに基づいています。次のようになります。
問題は、このコードがクラッシュしていることです。なにが問題ですか?
c - トレースフックの自己変更コード?
非常にパフォーマンスに敏感なドライバー コードにトレース/ログ フックを挿入するための、オーバーヘッドが最も少ない方法を探しています。このログ記録は常にコンパイルする必要がありますが、ほとんどの場合何もしません (しかし何も高速に行いません)。
グローバルなオン/オフ ワードを使用してif(enabled){log()}
. ただし、可能であれば、フックの 1 つをヒットするたびにその単語をロードするコストを回避したいと考えています。これには自己変更コードを使用できる可能性があると思います。つまり、トレース関数を呼び出す場所はどこでも、フックを無効にしたい場合はジャンプを NOP で上書きし、必要な場合はジャンプを置き換えます。それらを有効にします。
簡単なグーグルは、これに関する先行技術を発見しません - 誰かがそれをしましたか? 私が予見していない主要な障害はありますか?
(Linux、x86_64)