問題タブ [cracking]
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.
security - 私のウェブサイトがハッキングされました..どうすればいいですか?
今日、父から電話があり、彼の Web サイトにアクセスしている人々が 168 のウイルスを自分のコンピューターにダウンロードしようとしているとのことでした。彼はまったく技術的ではなく、WYSIWYG エディターですべてを構築しました。
彼のサイトを開いてソースを表示したところ、ソースの一番下の HTML 終了タグの直前に Javascript インクルードの行がありました。彼らはこのファイルを含めました(他の多くのファイルの中でも):http ://www.98hs.ru/js.js <--そのURLにアクセスする前にJAVASCRIPTをオフにしてください。
ということで、とりあえずコメントアウト。彼の FTP パスワードは 6 文字の長さの平凡な辞書の単語であることが判明したため、それがハッキングされた方法であると考えられます。彼のパスワードを 8 桁以上の単語以外の文字列に変更しました (彼はハントアンドペック タイパーであるため、パスフレーズを求めませんでした)。
98hs.ru で whois を調べたところ、チリのサーバーからホストされていることがわかりました。実際にメールアドレスも関連付けられていますが、この人物が犯人ではないかと疑っています。おそらく、ハッキングされた他のサイトだけです...
この種のことをこれまで扱ったことがないので、この時点で何をすべきかわかりません。誰にも提案はありますか?
彼は、webhost4life.com を通じてプレーンジェーンのセキュリティで保護されていない ftp を使用していました。彼らのサイトで sftpを実行する方法さえ見当たりません。彼のユーザー名とパスワードが傍受されたと思いますか?
コミュニティとの関連性を高めるために、Web サイトをハッキングから保護するための手順やベスト プラクティスは何ですか?
記録のために、ここに「魔法のように」彼のファイルに追加されたコード行があります (彼のコンピューターのファイルにはありません - 何もしないことを絶対に確認するためにコメントアウトしたままにしています)このページでは、ジェフはこれを防ぐと確信していますが):
reverse-engineering - シリアルジェネレーター/クラックはどのように開発されますか?
つまり、多くのシェアウェア プログラムで合法的な使用の制約を打ち破る/だますアルゴリズムを誰かがどうやって開発できるのか、私はいつも疑問に思っていました。
好奇心のためだけに。
obfuscation - 小規模ベンダー向けのソフトウェア保護
これは、ある時点で私たち全員が考慮しなければならない問題です。
何年にもわたって多くのアプローチを経て、私は一般的にこの声明に同意する傾向があります。「数百人以上が使用する保護されたソフトウェアについては、ひびの入ったバージョンを見つけることができます。これまでのところ、すべての保護スキームが改ざんされる可能性があります。」 あなたの雇用主は著作権侵害対策ソフトウェアの使用を強制していますか?
さらに、私がこの主題について投稿するたびに、誰かが私に思い出させます。「まず第一に、どのような種類の保護を採用する場合でも、真に専用のクラッカーは、最終的にはすべての保護障壁を通り抜けます。」 単一の開発者のためのお金のc#コード保護のための最高の価値は何ですか
したがって、これら2つの広く真の免責事項に耐えることなく、「保護」について話しましょう。
熟練したクラッカーの時間と注意を払う可能性が低い小さなアプリの場合、保護は価値のある演習だと今でも感じています。
何をしても、クラッカーがアプリケーションにパッチを適用してIFステートメント(jmp)の結果を切り替えることができれば、世界中のすべてのパスワードとドングルが役に立たないことは明らかです。
したがって、私のアプローチは、次のような製品を使用して仮想化でコードを難読化すること でした。http ://www.oreans.com/codevirtualizer.php この製品に非常に満足しています。私の知る限り、それは打ち負かされました。PEcompactを使用して実行可能ファイルを圧縮することもできます。他の誰かがそれを使用した経験がありますか?
EXEcryptor http://www.strongbit.com/news.aspに問題があっただけ で、サイトでさえ使用するのが頭痛の種です。コンパイルされたアプリは、WMI呼び出しを行うとクラッシュします。
このアプローチにより、コードの小さなセクションを難読化で囲み、セキュリティチェックなどを保護できます。
アプリケーションはサーバーからのデータを定期的に必要とするため、ユーザーがオフラインで長期間使用しても意味がないため、オンライン認証アプローチを使用します。定義上、アプリはひびが入っていても、その時点では価値がありません。
したがって、単純な暗号化されたハンドシェイクは十分に優れています。難読化保護の範囲内で時々チェックします。ユーザーがアプリを別のマシンにインストールすると、起動時に新しいIDがアップロードされ、サーバーは古いIDを無効にして、新しい認証を返します。
また、コンパイルされたアプリのハッシュを使用し、起動時に1ビットが変更されているかどうかを確認してから、アプリ内からアプリをファイルとして(読み取りLOCKを使用して)開いて、起動後に変更されないようにします。
すべての静的文字列は.exeファイルに明確に表示されるため、エラーメッセージなどを使用して一般的なものにしようとしています。「認証に失敗しました」という文字列はどこにもありません。
メモリダンプから保護するために、単純なテキスト難読化手法(すべての文字のXORなど)を使用します。これにより、メモリ内のプレーンテキストデータを変数などと区別するのが難しくなります。
そしてもちろん、本当に機密性の高いデータにはAESがあります。テキストのカウンターモードが好きです。これにより、シーケンスが繰り返されず、空白のシーケンスのような基になるデータが表示されます。
しかし、これらすべての手法で、キーまたは初期化ベクトルをメモリからダンプできる場合、またはIFステートメントをバイパスできる場合は、すべてが無駄になります。
私は条件文ではなくswitch文を使う傾向があります。次に、実際に目的のタスクを実行する関数ではなく、基本的に行き止まりの2番目の関数を作成します。
もう1つのアイデアは、変数を追加してポインターをコーディングすることです。変数は承認の結果です(通常はゼロ)。これは、ある時点で必然的にGPFにつながります。私はこれを最後の手段として使用するのは、いくつかの下位レベルの認証が失敗した後です。そうしないと、実際のユーザーがこれに遭遇する可能性があります。次に、ソフトウェアの評判が低下します。
どのようなテクニックを使用していますか?
(これは、何かを実装することのメリットを議論するスレッドではありません。何かをすることに決めた人のために設計されています)
reverse-engineering - リバース エンジニアリングから保護するためにコード バーチャライザーまたは vmprotect を使用したことがありますか?
私たちのコードを完全に保護する方法がないことはわかっています。また、ユーザーが私たちのアプリをクラックしたい場合、そのユーザーは私たちのアプリを購入するユーザーではないこともわかっています。また、クラッキング防止技術を恐れるよりも、アプリを改善する方が良いことも知っています。また、私たちのアプリを保護できる商用ツールがないことも知っています....それも知っています....
Ok。十分。私はすべてを聞いた。少し保護を追加しても害はないと思います。
では.... oreans や vmprotect のコード バーチャライザーを使用したことがありますか? 一部のウイルス対策ソフトでウイルスとして検出される場合があると聞きました。
購入する前に知っておくべき経験。いくつかの仮想マシンを作成し、コードを少し難読化して、登録ルーチンの弱点を見つけにくくしていることはわかっています。
知っておくべき警告はありますか?
ありがとう。アドバイスをいただければ幸いです。
ジャグ
c# - 自分のアプリケーションをハッキングする
私は Web 開発者であり、セキュリティを非常に意識しており、Web アプリケーションを可能な限り安全にしようとしています。
C# で自分の Windows アプリケーションを書き始めたにもかかわらず、自分の C# アプリケーションのセキュリティをテストすることになると、私は本当に初心者にすぎません。
独自の Windows アプリケーションをハックして安全なコードを作成する方法について、誰かが良いチュートリアル/readme を持っているかどうか疑問に思っています。
cracking - ハッキング/クラッキングデントロジー
最近、主にあなたの国で活動し、市場で非常に強力ないくつかの Web サイトでいくつかの重大な脆弱性を発見したとしましょう。私が話している脆弱性は、スーパー管理者権限で管理インターフェイスを閲覧できるようにするのと同じくらい悪い.
あなたは今何をしますか?私は次のようなことを考えています:
- 問題を会社に報告します。
- それらのアプリケーションにセキュリティ ホールがあることを公に発表しますが、実際のエクスプロイトは開示しません。
- 会社に問題を解決する時間を与えてください。(いくら?)
- 問題が修正された後、または修正のための猶予期間が過ぎた後 (どちらか早い方)、脆弱性を完全に開示してください。
皆さんはどう思いますか?これについて読むべき資料や共有する経験はありますか?
.net - デバッガーで実行する場合のプログラムフローの変更
デバッガーがメモリ内で実行されていることを検出する方法はありますか?
そして、ここにフォームロードの擬似コードがあります。
編集:元のタイトルは「メモリ内デバッガの検出」でした
python - スクリプト言語でのユーザー認証と不正な変更に対処するにはどうすればよいですか?
Python/wxPythonを使用して一元化されたデスクトップアプリケーションを構築しています。要件の1つは、LDAPを使用して実装しようとしているユーザー認証です(これは必須ではありませんが)。
システムのユーザーは予算を立てる機械および電気エンジニアであり、最大の問題は産業スパイです。リークは一般的に非公式な方法で下から発生するという一般的な問題であり、これは問題を引き起こす可能性があります。このシステムは、すべてのユーザーが必要なすべての情報にのみアクセスできるように設定されているため、プロジェクト全体の金銭情報を持っているのはトップの人だけです。
問題は、認証システムを実装するために考えることができるすべての方法で、Pythonのオープン性により、システムから適切な情報をバイパス/取得する方法を少なくとも1つ考えさせることです。これは、「コンパイル」py2exe
が難読化に最も近いためです。 Windows上のコードの。
私は実際にコードを隠そうとしているのではなく、認証ルーチンをそれ自体で安全にし、コードへのアクセスがアプリケーションへのアクセス機能を意味しないようにします。私が追加したかったことの1つは、アクセスルーチンへのある種のコード署名でした。これにより、ユーザーは変更されたクライアントアプリを実行していないことを確認できます。
これを回避するために私が考えた方法の1つはC
、認証用のモジュールを作成することですが、そうする必要はありません。
もちろん、この質問は現在変化しており、「Pythonで実行される安全な認証システムを構築する方法について、誰かが私を正しい方向に向けることができますか?このようなものはすでに存在しますか?」だけでなく、「スクリプトをどのように強化しますか?」 (Python)不正な変更に対して?」
python - MD5 ハッシュを復号化する
重複の可能性:
md5 ハッシュを復号化することは可能ですか?
キーを指定して、暗号化されたMD5文字列を解読する方法はありますか?
objective-c - クラッカーの悪夢であること!
MacでObjective-Cを使用して、コードを解読しにくくしようとしています。
私がしなければならないことの1つは、アプリケーションにひびが入っていないかどうかを確認することです。
私はObjective-CとXcodeを初めて使用します。アプリケーションをテストするために想像する方法は何でも、簡単にパッチを適用できる基本的なテストで終わります。
例:バイナリの特定の部分に特定の値が存在するかどうかをテストしようとしているとします。その操作は次のようになります。
「この値はxですか?」いいえの場合、それはひびが入っています。
これは非常に簡単に解読できます。ハッカーは簡単にテストにパッチを当てて、常に真にすることができます。
簡単にパッチを適用できるテストとして表示されるのではなく、何かをテストできるものを想像しようとしています。
私は100%の著作権侵害を止めることはできないことを知っていますが、少なくともクラッカーの大部分を思いとどまらせるために、物事をより困難にしようとしています。
このようなことをせずに行うことができ、バイナリを見ている人にとって物事を困難にする方法のアイデアはありますか?
助けてくれてありがとう。