engineering)とは、出荷された製品や既存のソフトウェアを入手して分解や解析などを行い、プログラムの仕様やソースコードを導き出すことをいいます。上記図は、リバースエンジニアリングの例です。既存のソフトウェアを入手して、逆コンパイル(ソースコードに戻す)、そして、ソースコードからプログラムの仕様を導き出しています。あるソフトウェアを再利用することで、新規開発や旧システムの保守などの手助けとなります。ポイントリバースエンジニアリングとは、ソフトウェアからソースコードに戻すこと。リバースエンジニアリングの問題点リバースエンジニアリングの問題点としては、出荷された製品や既存のソフトウェアのソースコードが解析できることで、技術や製品仕様が流出するという問題があります。リバースエンジニアリングされたことを想定し、リバースエンジニアリングされたソースコードを分析・解析することで自社ソフトウェアに脆弱性がないかを確認することができ、適切なセキュリティ対策を取る事もできます。出荷された製品や既存のソフトウェアからソースコードを入手する手法であるリバースエンジニアリングですが、元となるソフトウェア権利者に許可なく、新規ソフトウェアの開発・販売を行うと、知的財産権(特許権や著作権)の侵害にあたる可能性があるため注意が必要です。2019年1月の法改正でサイバーセキュリティ確保などを目的としたリバースエンジニアリングについては、合法となっています。リバースエンジニアリングへの対策リバースエンジニアリングへの対策には次のような手法があります。データを難読化するリバースエンジニアリングへの対策の一つが「難読化」です。難読化とは「意味のないプログラムコードを挿入する」「曖昧で理解しにくいアルゴリズムにする」なとの方法があり、人間から見たデータの可読性を低下させることが目的です。データを暗号化する「データの難読化」よりも高い効果を期待できるのが「データの暗号化」です。ソースコードのファイル自体を暗号化し、解読用の鍵がないと読めないようにするものです。プログラムが実行される際には一時的に復号され、それ以外のときは暗号化によって守られる形です。コメントをキャンセルメールアドレスが公開されることはありません。ポーティング(英:porting)とは、特定の環境(プラットフォーム)で動作するように作られたソフトウェアを、他の環境(プラットフォーム)で動くように作り変えることです。ソフトウェアは特定のプログラミング言語やOSなど、何らかの基盤となる動作環境に依存していることが多く、基本、別の環境では動作しません。そのため、旧環境で動作しているソフトウェアを、新しい環境でも同じように動作させるためには、新しい環境で動作するように調整したり、コードレベルで作り直したりする必要があります。Reality(アグメンティッド・リアリティー)の略で、日本語では「拡張現実」という意味の言葉です。拡張現実とは、現実世界に仮想世界を重ね合わせて表示する技術のことです。具体的にはスマートフォンなどのカメラで写している映像に、現実には存在しないデジタル情報(CGでつくられた3D映像やキャラクターなどのデジタルコンテンツやデータなど)を重ね合わせ、そのデジタル情報が実在しているように見せる技術です。Reality(バーチャル・リアリティ)の略で、日本語では「仮想現実」という意味の言葉です。具体的には、VRゴーグルなどのVRデバイスを装着することで、360度広がるデジタル上の仮想空間に没入したような感覚を得られる技術です。近年ではこれをさらに発展させて、映像の中を自由に移動したり、ものを動かしたりといった没入感の高い体験が可能になっています。バックエンドとは、サーバーサイドの処理のことです。一般的なWebのシステムはクライアントサーバシステムを採用しており、クライアントとサーバに分れています。クライアントサーバシステムでは、クライアントとサーバで役割分担をしています。サーバはシステムで利用するデータを管理し、クライアントに対して機能や情報を提供します。サーバが提供している情報をクライアントが利用する形態です。フロントエンドとは、利用するユーザーが直接目に触れる部分のことで、Webアプリケーション開発などでクライアントサイドの処理をフロントエンドといいます。一般的なWebのシステムはクライアントサーバシステムを採用しており、クライアントとサーバにわかれています。利用者はクライアント側にある画面を操作し、サーバ側にあるWebサーバにリクエスト(要求)を送信します。デグレードとは、劣化という意味の言葉であり、新しいバージョンのソフトウェアが以前のバージョンより品質が悪くなることをいいます。ソフトウェアに対して機能追加やバグ修正を行ったことで修正前より性能が悪化し、これまで利用できていた機能が使えなくなったり、以前修正したはずの不具合やバグが再発したりすることです。デグレードは、略して「デグレ」と呼ばれることも多いです。デグレードが発生する主な原因はテスト不足です。