JP7164014B2 - 機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 - Google Patents
機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 Download PDFInfo
- Publication number
- JP7164014B2 JP7164014B2 JP2021507874A JP2021507874A JP7164014B2 JP 7164014 B2 JP7164014 B2 JP 7164014B2 JP 2021507874 A JP2021507874 A JP 2021507874A JP 2021507874 A JP2021507874 A JP 2021507874A JP 7164014 B2 JP7164014 B2 JP 7164014B2
- Authority
- JP
- Japan
- Prior art keywords
- classifier
- segment
- 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.)
- Active
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)
Description
はなく、以下の特許請求の範囲を参照すべきである。
Claims (18)
- プログラムバイナリからソースコードを識別する分類器システムであって、
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に記載の分類器システム。
- 1つ以上のプロセッサ(110)によって実行されるとき、1つ以上のプロセッサに、
電子的入力として、バイナリフォーマットで表されるコードのセグメント(170)の受信に応答して、セグメントのバイナリフォーマットを視覚的に表すために、セグメントをイメージ(180)に変換させ、
分類器を使用してセグメントをソースコードにリバースエンジニアリングするために、分類器(160)からの電子的出力として、少なくとも部分的にイメージに基づく、関数、入力および出力パラメータ、関数内の特定のステートメントの識別子を含むセグメントインジケータ(190)を生成させる、プログラムバイナリからソースコードを識別するための命令を格納する非一時的コンピュータ可読記憶媒体。 - セグメントをイメージに変換する命令は、セグメントのビットを使用してビットマップ内の個別のピクセルの値を定義することにより、セグメントを使用してビットマップをコード化する命令を含む、請求項8に記載の非一時的コンピュータ可読記憶媒体。
- セグメントを定義するソースコードは、セグメントがマシンコードであるバイナリフォーマットで表されることによって難読化され、
セグメントインジケータは、コードクラスの信頼区間とともに、ソースコードのコードクラスを特定する、請求項8又は9に記載の非一時的コンピュータ可読記憶媒体。 - セグメントインジケータを生成する命令は、分類器内で具現化された、学習された相関関係により、セグメントと対応するソースコードを識別することによりセグメントをリバースエンジニアリングするように、分類器を使用する命令を含む、請求項8乃至10のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。
- イメージを分析する命令は、ソースコードの知識なしでセグメントのソースコードを復元するための、バイナリフォーマットと関連するソースコードとの間の相関関係の内部理解を有する機械学習アルゴリズムである分類器を使用してイメージを処理する命令を含み、
分類器をトレーニングする命令は、既知のソースコードに対応するイメージ内のパターンを識別することを通じて、分類器に、バイナリフォーマットからソースコードを認識するための相関関係を発現させる、請求項8乃至11のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。 - プログラムバイナリからソースコードを識別する方法であって、
電子的入力として、バイナリフォーマットで表されるコードのセグメント(170)の受信に応答して、セグメントのバイナリフォーマットを視覚的に表すために、セグメントをイメージ(180)に変換すること、
分類器を使用してセグメントをソースコードにリバースエンジニアリングするために、分類器(160)からの電子的出力として、少なくとも部分的にイメージに基づく、関数、入力および出力パラメータ、関数内の特定のステートメントの識別子を含むセグメントインジケータ(190)を生成すること、を含む方法。 - セグメントをイメージに変換することは、セグメントのビットを使用してビットマップ内の個別のピクセルの値を定義することにより、セグメントを使用してビットマップをコード化することを含む、請求項13に記載の方法。
- セグメントを定義するソースコードは、セグメントがマシンコードであるバイナリフォーマットで表されることによって難読化され、
セグメントインジケータは、セグメント識別子の信頼区間とともに、ソースコードのコードクラスを特定する、請求項13又は14に記載の方法。 - 分類器を使用してセグメントインジケータを生成することは、分類器内で具現化された、学習された相関関係により、セグメントと対応するソースコードを識別するため、セグメントをリバースエンジニアリングする、請求項13乃至15のいずれか1項に記載の方法。
- イメージを分析する命令は、ソースコードの知識なしでセグメントのソースコードを復元するため、バイナリフォーマットと関連するソースコードとの間の相関関係の内部理解を有する機械学習アルゴリズムである分類器を使用してイメージを処理することによってイメージを分析すること、をさらに備え、
分類器は、既知のソースコードに対応するイメージ内のパターンを識別することを通じて、ソースコードとバイナリフォーマットとの相関関係を認識する、請求項13乃至16のいずれか1項に記載の方法。 - 分類器によって生成される結果が、セグメントの元のソースコードを特定する、定義されたラベルと一致するかどうかに従って、分類器にフィードバックを与えることによって、イメージに視覚的に表されるバイナリコードのセグメントと関連する元のソースコードを識別するように、分類器をトレーニングすることをさらに含む、請求項13乃至17のいずれか1項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/162,768 US10761841B2 (en) | 2018-10-17 | 2018-10-17 | Systems and methods for identifying source code from binaries using machine learning |
US16/162,768 | 2018-10-17 | ||
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 JP2021534498A (ja) | 2021-12-09 |
JP7164014B2 true 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) |
Families Citing this family (4)
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 |
US12010524B2 (en) * | 2019-07-24 | 2024-06-11 | Nippon Telegraph And Telephone Corporation | Band sharing communication system, line control method, line control device, and line control program |
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 |
EP1287464A1 (en) | 2000-05-01 | 2003-03-05 | Mastercard International, Inc. | A method for bit-map parsing using a cobol algorithm |
EP1683362A1 (en) | 2003-10-28 | 2006-07-26 | Koninklijke Philips Electronics N.V. | Motion vector field refinement to track small fast moving objects |
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 | 株式会社デンソー | 地図データ記憶装置、地図データ処理装置、地図データ更新システム |
WO2016035020A2 (en) | 2014-09-02 | 2016-03-10 | Koninklijke Philips N.V. | Image fingerprinting |
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 JP JP2021507874A patent/JP7164014B2/ja active Active
- 2019-10-16 WO PCT/JP2019/040564 patent/WO2020080381A1/en active Application Filing
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 論文集,日本,2017年10月16日,第2017巻 第2号,p. 1209-1216 |
矢倉大夢 ほか,CNNと注意機構による画像化されたマルウェアの解析手法,コンピュータセキュリティシンポジウム2017 論文集,日本,2017年10月16日,第2017巻 第2号,p. 1381-1388 |
Also Published As
Publication number | Publication date |
---|---|
US10761841B2 (en) | 2020-09-01 |
US20200125360A1 (en) | 2020-04-23 |
JP2021534498A (ja) | 2021-12-09 |
WO2020080381A1 (en) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7164014B2 (ja) | 機械学習を使用してバイナリからソースコードを識別するためのシステム及び方法 | |
CN110852983B (zh) | 用于检测半导体装置中的缺陷的方法 | |
Goodfellow et al. | Making machine learning robust against adversarial inputs | |
US10318848B2 (en) | Methods for object localization and image classification | |
EP3323075B1 (en) | Malware detection | |
JP7229308B2 (ja) | 時系列データに対する普遍的敵対的攻撃から防御するための方法およびシステム | |
US20120093396A1 (en) | Digital image analysis utilizing multiple human labels | |
US10832149B2 (en) | Automatic segmentation of data derived from learned features of a predictive statistical model | |
KR102011788B1 (ko) | 계층적 시각 특징을 이용한 시각 질의 응답 장치 및 방법 | |
US11176417B2 (en) | Method and system for producing digital image features | |
KR102657335B1 (ko) | 자율 주행에서의 시맨틱 적대적 생성 기반 기능 테스트 방법 | |
JP7106391B2 (ja) | 画像判定方法、画像判定装置および画像判定プログラム | |
CN112001488A (zh) | 训练生成型对抗性网络 | |
KR20210029110A (ko) | 딥러닝 기반 소수 샷 이미지 분류 장치 및 방법 | |
Su et al. | Clustering and recognition of spatiotemporal features through interpretable embedding of sequence to sequence recurrent neural networks | |
Singh et al. | CNN based approach for traffic sign recognition system | |
Hacker et al. | Insufficiency-driven DNN error detection in the context of SOTIF on traffic sign recognition use case | |
KR102120453B1 (ko) | 영상 특징의 미분 및 지도 학습을 이용하여 비디오의 장면 상황 정보를 생성하는 방법 및 장치 | |
Hashemi et al. | Runtime monitoring for out-of-distribution detection in object detection neural networks | |
KR20200055836A (ko) | 데이터 분류 방법 및 장치, 분류기의 학습 방법 및 장치 | |
KR102580131B1 (ko) | 순환 생성 적대 네트워크 조건부 생성 적대 네트워크 | |
CN115766090A (zh) | 一种多特征融合神经网络网络安全检测方法 | |
US20230005122A1 (en) | Image forgery detection via pixel-metadata consistency analysis | |
Song et al. | Loop closure detection of visual SLAM based on variational autoencoder | |
US20230034782A1 (en) | Learning-based clean data selection |
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 |