JP2021534498A - 機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 - Google Patents
機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 Download PDFInfo
- Publication number
- JP2021534498A JP2021534498A JP2021507874A JP2021507874A JP2021534498A JP 2021534498 A JP2021534498 A JP 2021534498A JP 2021507874 A JP2021507874 A JP 2021507874A JP 2021507874 A JP2021507874 A JP 2021507874A JP 2021534498 A JP2021534498 A JP 2021534498A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- classifier
- source code
- image
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/1916—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/413—Classification of content, e.g. text, photographs or tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Stored Programmes (AREA)
Abstract
Description
はなく、以下の特許請求の範囲を参照すべきである。
Claims (20)
- プログラムバイナリからソースコードを識別する分類器システムであって、
1つ以上のプロセッサ(110)、および
1つ以上のプロセッサと通信可能に結合され、1つ以上のプロセッサによって実行されるとき、電子的入力として、バイナリフォーマットで表されたコードのセグメント(170)の受信に応答して、1つ以上のプロセッサに、セグメントのバイナリフォーマットを視覚的に表現するために、セグメントをイメージ(180)に変換させるための命令を含むイメージモジュール(130)と、1つ以上のプロセッサによって実行されるとき、分類器を使用して、セグメントをソースコードにリバースエンジニアリングするために、1つ以上のプロセッサに、分類器(160)からの電子的出力として、少なくとも部分的にイメージに基づく、セグメントに対応するソースコードを特定するセグメントインジケータを生成させる命令を含む認識モジュール(140)と、を格納するメモリ(120)を備える分類器システム。 - イメージモジュールは、セグメントのビットを使用してビットマップ内の個別のピクセルの値を定義することにより、セグメントを使用してビットマップをコード化することによって、セグメントをイメージに変換する命令を含む、請求項1に記載の分類器システム。
- セグメントを定義するソースコードは、セグメントがマシンコードであるバイナリフォーマットで表されることによって難読化され、
セグメントインジケータは、コードクラスの信頼区間とともに、ソースコードのコードクラスを特定する、請求項1又は2に記載の分類器システム。 - 認識モジュールは、分類器内で具現化された、学習された相関関係により、セグメントと対応するソースコードを識別するため、セグメントをリバースエンジニアリングすべく、分類器を使用してセグメントインジケータを生成する命令を含む、請求項1乃至3のいずれか1項に記載の分類器システム。
- 認識モジュールは、ソースコードの知識なしでセグメントのソースコードを復元するための、バイナリフォーマットと関連するソースコードとの間の相関関係の内部理解を有する機械学習アルゴリズムである分類器を使用してイメージを処理する命令を含む、イメージを分析する命令を含み、
認識モジュールは、既知のソースコードに対応するイメージ内のパターンを識別することを通じて、ソースコードとバイナリフォーマットとの間の相関関係を認識するように、分類器をトレーニングする命令を含む、請求項1乃至4のいずれか1項に記載の分類器システム。 - 認識モジュールは、分類器によって生成される結果が、セグメントのソースコードを特定する、定義されたラベルと一致するかどうかに従って、分類器にフィードバックを与えることにより、イメージに表されるバイナリコードのセグメントと関連するソースコードを認識するように、分類器をトレーニングする命令をさらに含む、請求項1乃至5のいずれか1項に記載の分類器システム。
- 認識モジュールは、ソースコードのコードクラスを近似するように分類器をトレーニングする命令を含む、分類器をトレーニングするための命令を含む、請求項6に記載の分類器システム。
- 認識モジュールは、少なくとも、セグメントの機能全体を説明する関数レベルで、ソースコードを識別するように分類器をトレーニングする命令を含む、分類器をトレーニングするための命令を含む、請求項6に記載の分類器システム。
- 1つ以上のプロセッサ(110)によって実行されるとき、1つ以上のプロセッサに、
電子的入力として、バイナリフォーマットで表されるコードのセグメント(170)の受信に応答して、セグメントのバイナリフォーマットを視覚的に表すために、セグメントをイメージ(180)に変換させ、
分類器を使用してセグメントをソースコードにリバースエンジニアリングするために、分類器(160)からの電子的出力として、少なくとも部分的にイメージに基づく、セグメントに対応するソースコードを特定するセグメントインジケータ(190)を生成させる、プログラムバイナリからソースコードを識別するための命令を格納する非一時的コンピュータ可読媒体。 - セグメントをイメージに変換する命令は、セグメントのビットを使用してビットマップ内の個別のピクセルの値を定義することにより、セグメントを使用してビットマップをコード化する命令を含む、請求項9に記載の非一時的コンピュータ可読媒体。
- セグメントを定義するソースコードは、セグメントがマシンコードであるバイナリフォーマットで表されることによって難読化され、
セグメントインジケータは、コードクラスの信頼区間とともに、ソースコードのコードクラスを特定する、請求項1又は2に記載の非一時的コンピュータ可読媒体。 - セグメントインジケータを生成する命令は、分類器内で具現化された、学習された相関関係により、セグメントと対応するソースコードを識別することによりセグメントをリバースエンジニアリングするように、分類器を使用する命令を含む、請求項9乃至11のいずれか1項に記載の非一時的コンピュータ可読媒体。
- イメージを分析する命令は、ソースコードの知識なしでセグメントのソースコードを復元するための、バイナリフォーマットと関連するソースコードとの間の相関関係の内部理解を有する機械学習アルゴリズムである分類器を使用してイメージを処理する命令を含み、
分類器をトレーニングする命令は、既知のソースコードに対応するイメージ内のパターンを識別することを通じて、分類器に、バイナリフォーマットからソースコードを認識するための相関関係を発現させる、請求項9乃至12のいずれか1項に記載の非一時的コンピュータ可読媒体。 - プログラムバイナリからソースコードを識別する方法であって、
電子的入力として、バイナリフォーマットで表されるコードのセグメント(170)の受信に応答して、セグメントのバイナリフォーマットを視覚的に表すために、セグメントをイメージ(180)に変換すること、
分類器を使用してセグメントをソースコードにリバースエンジニアリングするために、
分類器(160)からの電子的出力として、少なくとも部分的にイメージに基づく、セグメントに対応するソースコードを特定するセグメントインジケータ(190)を生成すること、を含む方法。 - セグメントをイメージに変換することは、セグメントのビットを使用してビットマップ内の個別のピクセルの値を定義することにより、セグメントを使用してビットマップをコード化することを含む、請求項14に記載の方法。
- セグメントを定義するソースコードは、セグメントがマシンコードであるバイナリフォーマットで表されることによって難読化され、
セグメントインジケータは、セグメント識別子の信頼区間とともに、ソースコードのコードクラスを特定する、請求項14又は15に記載の方法。 - 分類器を使用してセグメントインジケータを生成することは、分類器内で具現化された、学習された相関関係により、セグメントと対応するソースコードを識別するため、セグメントをリバースエンジニアリングする、請求項14乃至16のいずれか1項に記載の方法。
- イメージを分析する命令は、ソースコードの知識なしでセグメントのソースコードを復元するため、バイナリフォーマットと関連するソースコードとの間の相関関係の内部理解を有する機械学習アルゴリズムである分類器を使用してイメージを処理することによってイメージを分析すること、をさらに備え、
分類器は、既知のソースコードに対応するイメージ内のパターンを識別することを通じて、ソースコードとバイナリフォーマットとの相関関係を認識する、請求項14乃至17のいずれか1項に記載の方法。 - 分類器によって生成される結果が、セグメントの元のソースコードを特定する、定義されたラベルと一致するかどうかに従って、分類器にフィードバックを与えることによって、イメージに視覚的に表されるバイナリコードのセグメントと関連する元のソースコードを識別するように、分類器をトレーニングすることをさらに含む、請求項14乃至18のいずれか1項に記載の方法。
- 分類器をトレーニングすることは、ソースコードのコードクラスを近似するように分類器をトレーニングすることを含み、
分類器をトレーニングすることは、少なくとも、セグメントの機能全体を説明する関数レベルで、ソースコードを識別するように分類器をトレーニングすることを含む、請求項19に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/162,768 | 2018-10-17 | ||
US16/162,768 US10761841B2 (en) | 2018-10-17 | 2018-10-17 | Systems and methods for identifying source code from binaries using machine learning |
PCT/JP2019/040564 WO2020080381A1 (en) | 2018-10-17 | 2019-10-16 | Systems and methods for identifying source code from binaries using machine learning |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021534498A true JP2021534498A (ja) | 2021-12-09 |
JP7164014B2 JP7164014B2 (ja) | 2022-11-01 |
Family
ID=68426772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021507874A Active JP7164014B2 (ja) | 2018-10-17 | 2019-10-16 | 機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10761841B2 (ja) |
JP (1) | JP7164014B2 (ja) |
WO (1) | WO2020080381A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021014628A1 (ja) * | 2019-07-24 | 2021-01-28 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11715043B2 (en) * | 2019-03-01 | 2023-08-01 | Apple Inc. | Semantics preservation for machine learning models deployed as dependent on other machine learning models |
US11113048B1 (en) * | 2020-02-26 | 2021-09-07 | Accenture Global Solutions Limited | Utilizing artificial intelligence and machine learning models to reverse engineer an application from application artifacts |
CN115934090B (zh) * | 2023-01-05 | 2023-05-23 | 山东省计算中心(国家超级计算济南中心) | 一种由二进制代码转换源代码的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183815A1 (en) * | 2016-10-17 | 2018-06-28 | Kerry Wayne Enfinger | System and method for detecting malware |
JP2018106463A (ja) * | 2016-12-27 | 2018-07-05 | 株式会社デンソーアイティーラボラトリ | 情報推定装置及び情報推定方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067073A (en) | 1988-08-02 | 1991-11-19 | International Business Machines Corporation | Embedded tracing method for identifying program executed paths |
US5021820A (en) | 1988-10-07 | 1991-06-04 | Eastman Kodak Company | Order entry process for magnetically encodable film with dedicated magnetic tracks |
JPH06222747A (ja) | 1992-10-08 | 1994-08-12 | Fujitsu Isotec Ltd | フォント圧縮装置及びフォント復元装置 |
JP3025827B2 (ja) | 1993-09-14 | 2000-03-27 | 松下電器産業株式会社 | 可変長コード化装置 |
US5515081A (en) | 1993-11-30 | 1996-05-07 | Borland International, Inc. | System and methods for improved storage and processing of BITMAP images |
US5579520A (en) | 1994-05-13 | 1996-11-26 | Borland International, Inc. | System and methods for optimizing compiled code according to code object participation in program activities |
US5838828A (en) | 1995-12-12 | 1998-11-17 | Massachusetts Institute Of Technology | Method and apparatus for motion estimation in a video signal |
JPH10177589A (ja) | 1996-12-18 | 1998-06-30 | Mitsubishi Electric Corp | パターン比較検証装置、パターン比較検証方法およびパターン比較検証プログラムを記録した媒体 |
US6154741A (en) | 1999-01-29 | 2000-11-28 | Feldman; Daniel J. | Entitlement management and access control system |
US6353483B1 (en) | 2000-01-10 | 2002-03-05 | Imagex, Inc. | Postscript to bitmap conversion of graphic image files |
JP2003532237A (ja) | 2000-05-01 | 2003-10-28 | マスターカード インターナシヨナル インコーポレーテツド | コボルアルゴリズムを用いたビットマップ構文解析方法 |
JP2007510213A (ja) | 2003-10-28 | 2007-04-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 小さな高速移動物体を追跡するための動きベクトル場の改良 |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US20060170944A1 (en) | 2005-01-31 | 2006-08-03 | Arps Ronald B | Method and system for rasterizing and encoding multi-region data |
CN101387983B (zh) | 2008-09-28 | 2011-02-23 | 北大方正集团有限公司 | 一种自动测试栅格图像处理器的方法及系统 |
US20100274755A1 (en) * | 2009-04-28 | 2010-10-28 | Stewart Richard Alan | Binary software binary image analysis |
US8681950B2 (en) | 2012-03-28 | 2014-03-25 | Interactive Intelligence, Inc. | System and method for fingerprinting datasets |
JP2014209150A (ja) | 2013-04-16 | 2014-11-06 | 株式会社デンソー | 地図データ記憶装置、地図データ処理装置、地図データ更新システム |
JP6636506B2 (ja) | 2014-09-02 | 2020-01-29 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 画像のフィンガプリント生成 |
US10193902B1 (en) * | 2015-11-02 | 2019-01-29 | Deep Instinct Ltd. | Methods and systems for malware detection |
US9910646B2 (en) | 2015-12-26 | 2018-03-06 | Intel Corporation | Technologies for native code invocation using binary analysis |
-
2018
- 2018-10-17 US US16/162,768 patent/US10761841B2/en active Active
-
2019
- 2019-10-16 WO PCT/JP2019/040564 patent/WO2020080381A1/en active Application Filing
- 2019-10-16 JP JP2021507874A patent/JP7164014B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180183815A1 (en) * | 2016-10-17 | 2018-06-28 | Kerry Wayne Enfinger | System and method for detecting malware |
JP2018106463A (ja) * | 2016-12-27 | 2018-07-05 | 株式会社デンソーアイティーラボラトリ | 情報推定装置及び情報推定方法 |
Non-Patent Citations (2)
Title |
---|
三村守 ほか: "「目grep」は機械学習で実現可能か?", コンピュータセキュリティシンポジウム2017 論文集, vol. 第2017巻 第2号, JPN6022014083, 16 October 2017 (2017-10-16), JP, pages 1209 - 1216, ISSN: 0004749280 * |
矢倉大夢 ほか: "CNNと注意機構による画像化されたマルウェアの解析手法", コンピュータセキュリティシンポジウム2017 論文集, vol. 第2017巻 第2号, JPN6022014082, 16 October 2017 (2017-10-16), JP, pages 1381 - 1388, ISSN: 0004749281 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021014628A1 (ja) * | 2019-07-24 | 2021-01-28 |
Also Published As
Publication number | Publication date |
---|---|
WO2020080381A1 (en) | 2020-04-23 |
JP7164014B2 (ja) | 2022-11-01 |
US10761841B2 (en) | 2020-09-01 |
US20200125360A1 (en) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7164014B2 (ja) | 機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 | |
JP6952679B2 (ja) | マルウェア検出 | |
JP2020508531A (ja) | 画像品質の評価方法及び画像品質の評価システム | |
JP7229308B2 (ja) | 時系列データに対する普遍的敵対的攻撃から防御するための方法およびシステム | |
US20190164057A1 (en) | Mapping and quantification of influence of neural network features for explainable artificial intelligence | |
KR102011788B1 (ko) | 계층적 시각 특징을 이용한 시각 질의 응답 장치 및 방법 | |
KR102657335B1 (ko) | 자율 주행에서의 시맨틱 적대적 생성 기반 기능 테스트 방법 | |
KR20220052838A (ko) | 개인 정보 보호를 위하여 원본 데이터를 변조하는 변조 네트워크를 학습하는 방법 및 테스팅하는 방법, 그리고, 이를 이용한 학습 장치 및 테스팅 장치 | |
CN111680753A (zh) | 一种数据标注方法、装置、电子设备及存储介质 | |
CN112001488A (zh) | 训练生成型对抗性网络 | |
US11954202B2 (en) | Deep learning based detection of malicious shell scripts | |
CN112508041A (zh) | 基于分类结果标签的用于喷雾控制的神经网络的训练方法 | |
KR20230171966A (ko) | 이미지 프로세싱 방법 및 장치 및 컴퓨터 판독 가능 저장 매체 | |
CN113408558A (zh) | 用于模型验证的方法、装置、设备和介质 | |
CN111291695B (zh) | 人员违章行为识别模型训练方法、识别方法及计算机设备 | |
Su et al. | Clustering and recognition of spatiotemporal features through interpretable embedding of sequence to sequence recurrent neural networks | |
CN117132763A (zh) | 电力图像异常检测方法、装置、计算机设备和存储介质 | |
CN115205586A (zh) | 基于知识蒸馏的多自监督任务融合方法、装置及存储介质 | |
KR102464359B1 (ko) | 합성 도메인에서 실제 도메인으로 적응하기 위한 이미지 변환 장치 및 방법 | |
CN116569210A (zh) | 归一化oct图像数据 | |
KR20230096901A (ko) | 자율 주행 차량의 학습을 위한 데이터 증식 방법 및 그를 위한 장치 | |
KR102413588B1 (ko) | 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램 | |
KR102580131B1 (ko) | 순환 생성 적대 네트워크 조건부 생성 적대 네트워크 | |
GB2585487A (en) | Identifying at least one object within an image | |
KR102608304B1 (ko) | 컴퓨터 비전의 지능확장을 위한 딥 러닝 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220602 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221003 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7164014 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |