web-dev-qa-db-ja.com

リバースエンジニアリングを学ぶことは不可能だと思います

Msfvenomやmsfconsoleなど、Kaliのほとんどのツールの使用方法を知っているので、自分をスクリプトキディと安全に呼ぶことができます。 C#の基本を学びました。これはCのいくつかのことを理解するのに役立ちますが、それでも簡単に迷子になります。 mov xor add jmp cmpなどのアセンブリの基本を知っていますが、実際のコードの流れをたどることは難しく、アセンブリプログラムから疑似Cコードを作成することはできません。

私はスクリプトキディであるのをやめ、キャリアを積むためではなく、上手になりたいと思っています。それは、プログラミングツールの概念全体、エクスプロイトを見つけ、システムの穴を利用することが好きだからです。

この本「The Shellcoder's Handbook」を読み始め、最初の4〜5章を読みました。アイデアやコンセプトはわかったけど、実際に何が起こっているのかを理解するのはとても難しい。

私は本と同様のビデオに続いて毎日8時間勉強してきましたが、あまり改善を感じていません。

私の方法は間違っていますか?

私はただ悪い場所から始めているのですか?

Python/Cのすべてのコマンドと全体的な言語を学ぶのが良いのでしょうか、それとも、C#がかなり得意であると信じているので、このような本やビデオを勉強しながら学ぶべきでしょうか?

これらのことをほとんど理解することは正常ですか?たとえば、シェルスクリプトのしくみなどは理解できますが、それをコード化するために放っておけば自分で作ることはできません。

30

だから、「私はあなたが子供のことをほのめかしているわけではない」と前置させてください

私が子供にCISについて教えると、彼らが私が生計を立てていることを聞くと、最初の質問は

「どうやってハッキングするの?」

私が彼らに話すのと同じことをあなたに話します。ハッキングは、セキュリティに関連する一連のトピックにおける長年の経験の結果であるほど、学ぶことではありません。

多くの場合、ソフトウェアのバックグラウンドやネットワークのバックグラウンドに由来するセキュリティ分野に人々が侵入します。私は数年前に、defcon、derbycon、およびその他のセキュリティ関連のイベントに参加することで、セキュリティパスを開始しました。私が専門的にやりたいのなら、もっと深く掘り下げる必要があることを学びました。あなたをセキュリティの専門家にする魔法の知識はないことを知りました。ハードワークと物事を安全にするために何が必要かについて学ぶだけです。

多くのArduinoプロジェクトを構築し、最初から多数のWebサーバーを設定し、データベースから多数のWebサイトを構築し、OSCPを取得して(そして気を失って)後、ようやく自分をセキュリティソフトウェアエンジニアと呼ぶことに慣れてきました。 。私が当時働いていた会社には、エンジニアのためのセキュリティチャンピオンプログラムがありました。彼らは1人のチームメンバーに、チームのセキュリティエンジニアになるためのより高度なセキュリティトレーニングを提供しました。私はそれをしました、そしてそれを愛しました。

約1年半前に私は飛躍し、侵入検知ソフトウェアを構築する仕事を得て、それが大好きです。私の仕事のほとんどは標準的なコーディングですが、セキュリティに関する知識をさまざまな方法で定期的に適用しています。

私の長く苦しい点は、学習を続けることだと思います。さまざまなテクノロジーを学ぶことで、正しい方法でやっています。私のブログ https://www.DotNetRussell.com をチェックしてください。そうすれば、私が現在行っているプロジェクトに私を導いたことがわかります。

学び続けます。コメントで述べたように、セキュリティは難しいです。それがそのような需要がある理由です!人にやさしいというのは本当に珍しいことです。あなたがその分野の専門家であるとあなたが見る人々は、彼らがその難しい知識を何年も費やして過ごしたのでそこにいます。

50
Anthony Russell

リバースエンジニアリングは楽しいです。私は隔週でIDAを使用しているため、この分野の専門家ではありませんが、十分な頻度で使用しています。リバースエンジニアリングを理解したい場合は、最初にエンジニアリングする方法を知る必要があります。

あなたが専門的にそれを行うなら、あなたはWindowsの土地であなたの時間を費やしています。そのため、いくつかのWindowsの内部を学ぶには、C#とC for Windowsでいくつかのプロジェクトをコーディングします。

私が知っている最高のリバースエンジニアは、最初はソフトウェアエンジニアでした。

いくつかのプログラムを自分でビルドし、それらにRadare2とIDAを使用すると、学習を開始できます。

頑張って楽しんでね!

11
Joe M

本やビデオで時間を無駄にしないでください。逆にしたいプログラム(ハックしたいゲームのような)を入手し、静的/動的分析用のツールを入手し(チートエンジンは、Windowsを使用している場合は開始に最適です)、それらをいじくり回します...すべてをグーグルあなたがそれを見つけるとすぐにあなたはまだ知りません。最初は遅くて苦痛ですが、すぐにアセンブリコードを理解するだけで、2番目の性質になります。

2
Icaro10100