コンパイル前のソースコードの保護 - ページ 7

 
pako:
返事がない。
このスレッドはハッキングに関するものではなく、開発者のための特別な保護に関するもので、動的な暗号化アルゴリズムのテストに関わるものであることに注意してください。
 
Vladimir Pastushak:

残念ながら、あなたのエンコーダーは何の利点もありません。最大の利点は、mt4とmt5ターミナルの開発者によってすでに与えられています。

+1

ウラジミール・パストゥシャク

本当に強いものを見てみたいとは思いますが。

除く

 
Pavel Izosimov:
このスレッドはハッキングに関するものではなく、開発者のための特別な保護と動的暗号化アルゴリズムのテストに関するものであることに注意してください。
何もないところから
 
Pavel Izosimov:
このスレッドはハッキングについてではなく、開発者のための追加保護と動的暗号化アルゴリズムのテストについてであることに注意してください。
残念ながら、難読化されたコードの結果から、以下のような仕掛けを使っても、よくわからないのです。

1)関数本体が 複数に分割されている(これには実行フローの解析が必要)。
// для примера

void func()
  {
   // часть #1
   // декларация переменных 

   // часть #2
   // инициализация цикла

   // часть #3
   // тело цикла

   // часть #4
   // инкременты цикла

   // часть #5
   // выход из функции
  }
2) グローバル配列ExecutePathが宣言され、いくつかの値で初期化されます。
3) 関数本体は、ExecutePath配列からのスイッチによるループに置き換えられます。
4)結果
ExecutePath[]={ PART_3,PART_2,PART_1,PART_4, PART_N };

void func()
  {
   for(int i=0;;i++)
     {
      switch(ExecutePath[i])
        {
         case PART_3:
            // выполняем часть 1 нашей функции

         ...
  
         case PART_N:
            // выполняем часть N нашей функции


          case PART_RET:
            // выполняем часть с кодом выхода из нашей функции
        }
     }
  }

5) ブロックに加え,オリジナル関数がスイッチ内のコードでブロックを生成し,その実行は決して到達しない。
 
Ilyas:
残念ながら、難読化されたコードの結果からは、以下のようなトリックを使用しているかどうかはわかりません。

1)関数本体が 複数に分割されている(これには実行フローの解析が必要)。
2) グローバル配列ExecutePathが宣言され、いくつかの値で初期化されます。
3) 関数本体は、ExecutePath配列からのスイッチによるループに置き換えられます。
4)結果
5) ブロックに加え,オリジナル関数がスイッチ内のコードでブロックを生成し,その実行は決して到達しない。
私自身、そしてこのプロジェクトの実装に携わった開発チームのリーダーも、このテーマに対する実践的なアプローチに心から感謝しています!(笑)。

ご指摘の便利な仕掛けは、他の仕掛けと合わせて、次のレベルのプロテクションの改造計画にあります。

あなたがよく理解するように我々は使用されるアルゴリズムの完全なリストを開示することはできませんが、最初の難読化されたコードの結果は、それが使用されているかは明らかではないという事実、それは助けることはできませんが、してください:)。
 
Pavel Izosimov:

イゴール、ごきげんよう。

このトピックの冒頭で、必要なすべての情報、ファイルの例、一次資料への直接リンクがMQL管理者のRenatに提供されました。

ご紹介したリソースには、まだ割れたばかりの製品がたくさんあるので、好奇心旺盛な皆さんには、同僚の悲哀をお伝えするつもりはありません。

私たちは同僚を尊重し、彼らの製品の違法な流通に貢献することはありません

また、メタトレーダー・ターミナルの開発者にも敬意を表します。彼らは自分たちのコードを保護し、要求に応じて必要なすべての情報を提供するために多くの努力をしていると信じています。

このスレッドはハックに関するものではなく、逆に開発者のための特別な保護に関するものであり、動的暗号化アルゴリズムのテストも含まれていることに注意してください。

ただ、製品を守るためには、クラッカーが使う手法を知っておく必要があります。どこかで見つけた方法を教えてほしいということではなく、すでに公開されているものだけを教えてほしいのです。空き巣は人前で行動したんだろ?つまり、これらの情報はすでにネット上にあり、機密の流布に貢献することはないのです。しかも、難読化ではすでにクラッカーの手法を考慮に入れていますね。

その結果、リンクを共有すれば、ここで話していることすべてに重みが出てきます。

特にハッカーではなく、開発者として興味があります。他人のソフトウェアをハッキングする道は、破壊的な道なので、私は絶対に取りません。それは、発展とは逆の方向につながるものです。

 
Игорь Герасько:

製品を守るためには、クラッカーが使う手法を知る必要があります。どこかで見つけた方法を教えてくれとは言いませんが、すでに公開されているものだけでいいんです。空き巣は人前で行動したんだろ?つまり、この情報はすでにネット上にあり、あなたは機密の流布に貢献することはないのです。しかも、難読化ではすでにクラッカーの手法を考慮に入れていますね。

その結果、もしあなたがリンクを共有すれば、ここで話していることすべてに重みが出てくるでしょう。

イゴール、気を悪くしないでほしいのですが、私たちは重さを必要としていません。

誰が何を望もうとも、説得することなく、ただ決められた仕事を遂行する。

知的な人々は、このような解決策を批判することは、後でそれに対処しなければならない人々、つまり「バリケード」の反対側にいる人々、すなわち「エイリアン」クラッキングの専門家の利益になることを理解しています。

私たちとしては、彼らのものでないものを壊すのは、できるだけ「嫌だ」と思わせるようにがんばります :)

 
Pavel Izosimov:

イゴール、気を悪くしないでほしいのですが、重さは必要ありません。私たちは自分たちの実用のためにやっているのであって、多くの開発 者の役に立つと確信しています。

誰が何を望もうとも、説得することなく、ただ目の前の仕事を遂行するのです。

知的な人々は、このような解決策を批判することは、後でそれに対処しなければならない人々、つまり「バリケード」の反対側にいる人々、すなわち「エイリアン」ハッキングの専門家の利益になることを理解しているのです。

私たちとしては、彼らのものでないものを壊すのは、できるだけ「嫌だ」と思わせるようにがんばります :)

何を使って?マーケットプレイスで公開されている開発者ですが、どのように役立つのでしょうか?
 
Игорь Герасько:

他人のソフトウェアをハッキングする道は、破壊的な道なので、私は絶対に取りません。それは、発展とは逆の方向につながる。

ネバーセイネバー
 
Vladimir Pastushak:
何を使って?私は市場で公開する開発者ですが、どのように役に立つのでしょうか?

マーケットプレイスでの公開も行っていますが、すべてをマーケットプレイス経由で公開することが常に適切であるとは言い切れません。

例えば、開発した製品をウェブ上で公開テストしたり、試用版を配布したり、最終製品を公開する前に、協力してくれたユーザーの特定アカウントをライセンスするなどの取り組みを行っています。

あるいは、例えば、ある特定のユーザー層に向けて製品を作る。

これらは、市場に公表することが適切でない場合ばかりではありません。