DLLをデバッグする?MT4およびMT5において - ページ 16

 

皆さん、もしかしたらこの質問は適切ではないかもしれませんが、私もバージョン5のライブラリに問題があります。

バージョン4ではすべてが機能し、動作しましたが、バージョン5ではそれが嫌なのです。

誰か助けてくれるかもしれません。

DLLから関数を呼び出して、テキストを返していますが、バージョン4では普通にテキストが表示され、バージョン5ではCRAZYBLESになっています。

DLLはDELPHI(pchar型fname)で書いています。

コードでは、変数stringを代入しています。

何が間違っているのか、アドバイスをお願いします。

 
stongbar:

皆さん、もしかしたらこの質問は適切ではないかもしれませんが、私もバージョン5のライブラリに問題があります。

バージョン4ではすべてが機能し、動作しましたが、バージョン5ではそれが嫌なのです。

誰か助けてくれるかもしれません。

DLLから関数を呼び 出すとテキストが返ってきますが、4のバージョンでは普通にテキストが見えますが、5のバージョンではBACKGROUNDになっています。

DELPHIでDLLを書いています(pchar型fname)。

コードでは、変数に文字列を代入しています。

何が間違っているのか、教えてください。

エンコードに問題があるのでしょう。オープンファイルのフラグをチェックします。

open_flags

[in] комбинация флагов, определяющая режим работы с файлом. Флаги определены следующим образом: 
FILE_READ файл открывается для чтения 
FILE_WRITE файл открывается для записи 
FILE_BIN двоичный режим чтения-записи (без преобразования из строки и в строку) 
FILE_CSV файл типа csv (все записанные элементы преобразуются к строкам соответствующего типа, unicode или ansi, и разделяются разделителем) 
FILE_TXT простой текстовый файл (тот же csv, однако разделитель не принимается во внимание) 
FILE_ANSI строки типа ANSI (однобайтовые символы) 
FILE_UNICODE строки типа UNICODE (двухбайтовые символы) 
FILE_SHARE_READ совместный доступ по чтению со стороны нескольких программ 
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ 
FILE_COMMON расположение файла в общей папке всех клиентских терминалов

 
PCharをPWideChar(これは役立つはずです)またはPAnsiChar(可能性は低い)に置き換えてみてください。また、コードの微調整が必要な場合があります
 
notused:
PCharをPWideCharに置き換えてみてください(これで解決するはずです)
前任者を全面的に支持する
 
Academic:

デバッグの問題は、かなり簡単に解決できます。

だいたいこんな感じ。

サーバープログラムを作成する。

Delphiの場合、次のようになります。

フォームにTcpServerコンポーネントを配置します。

オープン時の設定(localHost、LocalPort、active属性をtrueに設定)を指定する。

このコンポーネントは、ソケット経由のデータ受信に応答するハンドラを持っています。

このハンドラの中に、ClientSocketがあります。

text_from_klient := ClientSocket.Receiveln

テキストを手に入れたら、思う存分デバッグしてください。

今テキストの渡し方について(テキスト以外も可能ですが、必要なら見つけます)

EAでDLLを呼び出し、このDLLが特定のソケットにパラメータを渡します。

この場合、TcpClientコンポーネントをDLLに入れ、設定(remoteHost, remotePort, and you call connect )します。

SendLn機能で送信し、Receiveln機能で受信する。

そのため、デバッグのためにサーバーを立ち上げておく必要がありますが、それは大きな問題ではありません。

ソケットに情報を送るためのDLLを書き、サーバープログラムを 書くだけでいいのです。

あなたがしなければならないことは、すでに書かれた(あるいは新しく書かれた)DLLを呼び出す30行のサーバープログラムを書き、インジケータを少しいじることだけです。

が、指標については、テンプレートを作成することができます。

P.S. DLLをデバッグすることはできませんが、ブートできないDLLからデータを別の

プログラムであり、自由にデバッグすることができます :)

 

mql5:

言語レベルで悪意のあるEX5を作成することは不可能になった。
それは、とてもとても大胆な発言ですね。:)どうなんだろう...。悪意のあるEX5を作る」というのはどういう意味ですか?
 
ir0407:
それは、とてもとても大胆な発言ですね。:)
すでに書かれていることで、そんなにダメージがあるのか?;)
 

この場合、悪質性は別の角度から検討する必要があります。 もし、別途、オーソライズされたトピックがあれば、議論することができます。

 
Interesting:

それはラマがプロテクトをした場合ですが、実際には(有能なプロテクトのやり方では)10倍、100倍のコスト(時間や労力)がかかっています。

2週間後、今すぐ...

Web上では、すでに、証明書を端末に代える方法、ネットワークプロトコルの構成、サーバーとの情報交換(端末なし)の方法などの記事が山ほど出ています。

APIに関する情報はいたるところにあり(少なくとも「取引用」ではなく「情報分析用」)、システムのexeやdllに何が保存されているかは誰もが知っているはずだ(そして肝心なのはそれをどう扱うか)。

そして結論から言うと、私たちは皆、昔から自分の端末で取引をしていて、MQやDCが可哀想...ということです。

笑わせないでください。

ニュースのリストをサーバーから受け取り、それを端末に送るという単純な作業です。使い方が分からないので、MT4の解決策を探してみます(このようなケースの経験がある方は、「ニュースクライアント」を作成してください)。

開発者は、DLLのデバッグを行わないことを直接表明しており、その理由も明らかにしています。少なくとも、コード暗号化システムを意図的に悪化させることを求めるのは論理的ではなく、それは直ちにex5用のデコンパイラを作ろうとすることにつながります(これはまさに、述べられていることです)。

しかし、ex4をハックする方法はここでは通用しません。なぜなら、言語が全く異なり、そのオブジェクトスタッフィングもex4を「ハック」するテンプレートにそう簡単に曲げられるものではないからです。

追記

確かに、ハッキングシステムについては、プロがやっている方が話が早いですね。確かに、(私の勘違いかもしれませんが)私たちの中にこの分野の実力者はいないので、相談に乗ってもらえそうにないですね......。
証明書を改ざんする方法について、インターネット上のどこにそんなに情報があるのだろう。
理由: