JP2015197902A - オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム - Google Patents
オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム Download PDFInfo
- Publication number
- JP2015197902A JP2015197902A JP2014077302A JP2014077302A JP2015197902A JP 2015197902 A JP2015197902 A JP 2015197902A JP 2014077302 A JP2014077302 A JP 2014077302A JP 2014077302 A JP2014077302 A JP 2014077302A JP 2015197902 A JP2015197902 A JP 2015197902A
- Authority
- JP
- Japan
- Prior art keywords
- code
- build
- preprocessing
- source code
- online
- 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
- 238000000034 method Methods 0.000 title claims description 66
- 238000007781 pre-processing Methods 0.000 claims abstract description 88
- 238000003860 storage Methods 0.000 claims abstract description 21
- 230000001629 suppression Effects 0.000 claims abstract description 12
- 238000010276 construction Methods 0.000 claims 1
- 230000003068 static effect Effects 0.000 abstract description 13
- 230000008569 process Effects 0.000 description 48
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 9
- 239000011800 void material Substances 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】ユーザ端末2と、ユーザ端末2からソースコードを受信してプリプロセッシングを実施するビルドサーバ4とを備えたオンラインビルドシステム1であって、ビルドサーバ4は、所定のコードのパターンと、前記ソースコード内のバグの可能性を発見する契機となる又はバグに対処するコード記述とが対応づけられた作り込み抑制情報が格納された記憶部と、前記作り込み抑制情報を参照して前記ソースコードを検索し、前記パターンを発見した場合に、前記コード記述を当該ソースコードに追加するプリプロセッシングを実行するプリプロセッシング実行部と、を備えることを特徴とする。
【選択図】図1
Description
各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。なお、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
図1に示す、オンラインビルドシステム1は、システムを利用する権利(アカウント)を特定の者に付与し、アカウントを有する者が所有するソースコード(拡張子:「.cpp」等)のビルドをオンラインで行うシステムである。
図2を参照して、ユーザ端末2の機能構成について説明する。ユーザ端末2は、オンラインビルドシステム1のユーザ(以下、単に「ユーザ」)が操作する装置である。ユーザ端末2では、ユーザによってソフトウェア開発が行われる。ユーザ端末2は、例えば、PC(Personal Computer)である。
図3を参照して、アカウント管理サーバ3の機能構成について説明する。アカウント管理サーバ3は、ユーザのアカウントの管理を行う装置である。
・パターン「2」は、生成物として「オブジェクトファイル」のみの受け取りを希望する場合に設定される。
・パターン「3」は、生成物として「実行可能形式ファイル」のみの受け取りを希望する場合に設定される。
・パターン「4」は、「プリプロセッシングされたソースコード」と「オブジェクトファイル」の二つの受け取りを希望する場合に設定される。
・パターン「5」は、「プリプロセッシングされたソースコード」と「実行可能形式ファイル」の二つの受け取りを希望する場合に設定される。
・パターン「6」は、「オブジェクトファイル」と「実行可能形式ファイル」の二つの受け取りを希望する場合に設定される。
・パターン「7」は、「プリプロセッシングされたソースコード」と「オブジェクトファイル」と「実行可能形式ファイル」の全ての受け取りを希望する場合に設定される。
図5を参照して、ビルドサーバ4の機能構成について説明する。ビルドサーバ4は、オンラインでソースコード(拡張子:「.cpp」等)を受信し、ソースコードのビルドを行う装置である。
以上で、オンラインビルドシステム1の構成についての説明を終了する。
オンラインビルドシステム1の動作について説明する。ここでは、まずアカウント登録処理について説明し、続いて、ビルド処理について説明する。オンラインビルドシステム1では、ビルド処理の実行に際して、アカウント登録処理の成功が事前に必要である。
図7を参照して、オンラインビルドシステム1を利用するユーザのアカウント登録処理について説明する。
最初に、ユーザ端末2のアカウント登録要求部21は、ビルドサーバ4に対してアカウント登録要求を送信する(ステップS11)。次に、ビルドサーバ4のアカウント登録要求部61は、アカウント管理サーバ3に対してアカウント登録要求を送信する(ステップS12)。次に、アカウント管理サーバ3のアカウント登録部41は、アカウント情報を作成し、アカウント情報をアカウント情報DB31に登録する(ステップS13)。次に、アカウント管理サーバ3のアカウント登録部41は、ビルドサーバ4に対してアカウント登録応答を送信する(ステップS14)。次に、ビルドサーバ4のアカウント登録要求部61は、ユーザ端末2に対してアカウント登録応答を送信する(ステップS15)。
図8を参照して、オンラインビルドシステム1のビルド処理について説明する。
最初に、ユーザ端末2のアカウント認証要求部22は、ビルドサーバ4に対してアカウント認証要求を送信する(ステップS21)。次に、ビルドサーバ4のアカウント認証要求部62は、アカウント管理サーバ3に対してアカウント認証要求を送信する(ステップS22)。次に、アカウント管理サーバ3のアカウント認証部42は、アカウント情報DB31を参照してアカウント情報を認証する(ステップS23)。次に、アカウント管理サーバ3のアカウント認証部42は、ビルドサーバ4に対してアカウント認証応答を送信する(ステップS24)。ビルドサーバ4は、ここで、アカウント情報を取得する。次に、ビルドサーバ4のアカウント認証要求部62は、ユーザ端末2に対してアカウント認証応答を送信する(ステップS25)。なお、ビルドサーバ4によるアカウント情報の取得は、ステップS24のタイミングに限定されるものではない。
図9を参照して、ステップS27におけるビルドサーバ4のプリプロセッシング実行部63のプリプロセッシング処理について説明する。なお、各ステップでのより詳細な処理については、実施例で説明する。
まず、プリプロセッシング実行部63は、プリプロセッシング情報DB51を参照して検索コード記述の検索(パターン検索)を行う(ステップS31)。続いて、プリプロセッシング実行部63は、ステップS31でソースコード内にパターンが有ったか否かを判定し(ステップS32)、ステップS32で“Yes”の場合に処理をステップS33に進め、ステップS32で“No”の場合に処理を終了する。
以上で、オンラインビルドシステム1の動作についての説明を終了する。
実施例1ではソースコードに「DELETE_ARRAY(スカラー配列へのDELETEの使用)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図10(a)はバグ有りのサンプルコードを示し、図10(b)はバグ無しのサンプルコードを示している。
そうならない為には、「new」で配列インスタンスを確保した場合に、図10(b)の符号C12で示すように、必ず「delete」に「[ ]」を記載する必要がある。
(1)「new」が記述されているソースファイルを全て検索する。
(2)ファイル内に「new」が記述されている場合、ファイルの先頭に次の3行のコードを埋め込む。
#include<crtdbg.h>
#define _CRTDBG_MAP_ALLOC
#define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__)
(3)「new」が記述されている関数(メソッド)内の末尾(’}’直前の行)に、次の1行を埋め込む。
_CrtDumpMemoryLeaks();
実施例2ではソースコードに「FORWARD_NULL(未確認のダイナミックキャスト)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図11(a)はバグ有りのサンプルコードを示し、図11(b),(c)はバグ無しのサンプルコードを示している。
そうならない為には、図11(b)の符号C23に示すように、参照するオブジェクトに「const」を付けずダウンキャストを保証してから、符号C24に示すようにダイナミックキャストを行うようにする。
または、図11(c)の符号C25に示すように、ダウンキャストが失敗するようであれば、コンパイルに失敗するようにする。
(1)「dynamic_cast」が記述されているソースファイルをすべて検索する。
(2)ファイル内に「dynamic_cast」が記述されていた場合、ファイルの先頭に次の2行のコードを埋め込む(宣言部へのコード埋め込み)。
#include<stdio.h>
#include<stdlib.h>
(3)ファイル内に「dynamic_cast」が記述されていた場合、[代入先の変数]を特定する。
(4)「dynamic_cast」記述行の次行に、次の3行のコードを埋め込む。
if( [代入先の変数] == NULL ){
fprintf(stderr, “%s”, errMsg); abort();
}
実施例3ではソースコードに「INVALIDATE_ITERATOR(不正なイテレータの使用)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図13(a)はバグ有りのサンプルコードを示し、図13(b),(c),図14(d)はバグ無しのサンプルコードを示している。
そうならない為には、図13(b)に示すように、符号C33に示す部分でイテレータが不要であることを示すフラグを設け、符号C34に示す部分でフラグチェックを行うようにする。この方法は、以降の処理でイテレータを使用しない場合に有効である。
(1)イテレータ「iterator」が記述されているソースファイルをすべて検索する。
(2)ファイル内に「iterator」が記述されていた場合、[代入先の変数]を特定する。
(3)ファイル内に次の記述があった場合、
.erase([代入先の変数])
代入先の変数の定義箇所を、文字列検索により特定し、下記のようにコピー変数を作成する。なお、作成場所は、eraseが実行されているネスト(カーリブレイス→{})の先頭に記述する。
typename std::list<T>::iterator new_it = m_lockQueue.begin();
new_it = it;
加えて、erase実施直後に次のif文を追記する。
if( it != new_it ){
fprintf(stderr, “invalid iterator used!\n”);
}
加えて、ファイル先頭に次の1行を埋め込む。(DEBUGMSGを利用せず、fprintfを利用する場合の対処)
#include<stdio.h>
実施例4ではソースコードに「MISSING_LOCK(データに対する競合)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図15(a)はバグ有りのサンプルコードを示し、図15(b)はバグ無しのサンプルコードを示している。
そうならない為には、図15(b)に示すように、共有変数に対して「grep」を行い、共有変数を使用している前の符号C43に示す部分でロックを取得し、共有変数を使用している後の符号C44に示す部分でロックを解放するようにする。
(1)文字列検索等でlock処理が記述されている箇所を特定する。
(2)当該処理の先頭に、以下の記述を追加する。
fprintf (stderr, “locked.\n”);
(3)文字列検索等でunlock処理が記述されている箇所を特定する。
(4)当該処理の先頭に、以下の記述を追加する。
fprintf (stderr, “unlocked.\n”);
(5)ファイル先頭に次の1行を埋め込む(宣言部へのコード埋め込み)。
#include<stdio.h>
実施例5ではソースコードに「NEGATIVE_RETURNS(引数が負の値をとれない)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図16(a)はバグ有りのサンプルコードを示し、図16(b)はバグ無しのサンプルコードを示している。
そうならない為には、図16(b)に示すように、符号C53で「unsigned int(size_t)版」と「signed int(ssize_t)版」を用意する(オーバーロード)。そして、符号C54で、安全な「memcpy(s_memcpy)」利用するようにする。なお、memmove, memset, memcmp, strncpy等、整数オーバーフローの危険性がある関数も同様に対処する。
(1)「memcpy」が記述されているソースファイルをすべて検索する(memcpy以外についても別途行う)。
(2)ファイル内に「memcpy」が記述されていた場合、「s_memcpy」に置き換える。
(3)ファイル内に「memcpy」が記述されていた場合、 ファイルの先頭に次の7行を埋め込む。
void* s_memcpy(void* dest, const void* src, std::size_t n) __THROW { return std::memcpy(dest, src, n); }
void* s_memcpy(void* dest, const void* src, ssize_t n) {
if(n < 0) {
throw std::runtime_error("s_memcpy: integer overflow detected.");
}
return s_memcpy(dest, src, (std::size_t)n);
}
実施例6ではソースコードに「PASS_BY_VALUE(大きなパラメータの値渡し)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図18(a)はバグ有りのサンプルコードを示し、図18(b),(c)はバグ無しのサンプルコードを示している。
そうならない為には、図18(b)の符号C62や符号C63に示すように、インスタンスのポインタを渡すようにする。
または、図18(c)の符号C64に示すように、インスタンスの参照を渡すようにする。
(1)デストラクタが記述されているソースファイルをすべて検索する。
(2)ファイル内にデストラクタが記述されていた場合、ファイルの先頭に次の1行を埋め込む(宣言部へのコード埋め込み)。
#define OBJECT_SIZE_LIMIT 16
(3)ファイル内にデストラクタが記述されていた場合、デストラクタ内末尾に次の3行を埋め込む。
if( OBJECT_SIZE_LIMIT < sizeof(*this) ){
DEBUGMSG(“NodeTable memfree = %dbytes\n”, sizeof(*this));
}
実施例7ではソースコードに「SIZEOF_MISMATCH(不正なsizeofの引数)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図20(a)はバグ有りのサンプルコードを示し、図20(b)はバグ無しのサンプルコードを示している。
そうならない為には、図20(b)の符号C72に示すように、実際に確保したサイズと型のサイズを乗じた値を渡すようにする。
(1)「memset」が記述されているソースファイルをすべて検索する。
(2)「memset」の第3引数を検出する。
(3)ファイル内に「memset」が記述されていた場合、ファイルの先頭に次のコードを埋め込む(宣言部へのコード埋め込み)。
#include<stdio.h>
(4)「memset」の前後に次のコードを埋め込む。
unsigned int size_t = [第3引数];
if( size_t >= logMsgSize ){
memset(logMsg, 0x0, size_t );
} else {
fprintf (stderr, “memset size_t invalid = %d\n”, size_t);
}
実施例8ではソースコードに「UNCAUGHT_EXCEPT(キャッチされない例外)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図21(a)はバグ有りのサンプルコードを示し、図21(b)はバグ無しのサンプルコードを示している。
そうならない為には、図21(b)の符号C82に示すように、発生し得る全ての例外パターンについて、処理を規定する。
(1)「Exceptionクラス」が記述されているソースファイルをすべて検索する。
(2)コンストラクタに、次の通りコードを埋め込む。
コンストラクタ(){
std::set_unexpected(unexpected_handler);
}
(3)「Exceptionクラス」内に、次の通りコードを埋め込む。
void unexpected_handler(){
fprintf(stderr, “Called unexpected handler\n”);
throw(expected_handler);
}
(4)ファイルの先頭に次のコードを埋め込む(宣言部へのコード埋め込み)。
#include<stdio.h>
実施例9ではソースコードに「UNINIT_CTOR(スカラー値の未初期化)」が記述されている場合に、プリプロセッシングで追加するコード記述について説明する。
図23(a)はバグ有りのサンプルコードを示し、図23(b)はバグ無しのサンプルコードを示している。
そうならない為には、図23(b)の符号C93に示すように、コンストラクタ内でメンバ変数を全て初期化する。
(1)コンストラクタに、クラス内で定義されたメンバ変数のうち、未初期化のものをすべて初期化するコードを次のように埋め込む。
クラス(){
private:
メンバ変数1 = 0;
メンバ変数2 = 0;
…
};
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、特許請求の範囲の趣旨を変えない範囲で実施することができる。実施形態の変形例を以下に示す。
2 ユーザ端末
3 アカウント管理サーバ
4 ビルドサーバ
50 記憶部
51 プリプロセッシング情報DB
60 制御部
63 プリプロセッシング実行部
64 コンパイル実行部
65 生成物提供部
Claims (4)
- ユーザ端末と、前記ユーザ端末からソースコードを受信してプリプロセッシングを実施するビルドサーバとを備えたオンラインビルドシステムであって、
前記ビルドサーバは、
所定のコードのパターンと、前記ソースコード内のバグの可能性を発見する契機となる又はバグに対処するコード記述とが対応づけられた作り込み抑制情報が格納された記憶部と、
前記作り込み抑制情報を参照して前記ソースコードを検索し、前記パターンを発見した場合に、前記コード記述を当該ソースコードに追加するプリプロセッシングを実行するプリプロセッシング実行部と、を備える、
ことを特徴とするオンラインビルドシステム。 - 前記ビルドサーバは、
前記プリプロセッシング後のソースコードのコンパイルを実行するコンパイル実行部をさらに備える、
ことを特徴とする請求項1に記載のオンライビルドシステム。 - ユーザ端末と、前記ユーザ端末からソースコードを受信してプリプロセッシングを実施するビルドサーバとを備えたオンラインビルドシステムのオンライビルド方法であって、
前記ビルドサーバは、
所定のコードのパターンと、前記ソースコード内のバグの可能性を発見する契機となる又はバグに対処するコード記述とが対応づけられた作り込み抑制情報が格納された記憶部を有し、
前記作り込み抑制情報を参照して前記ソースコードを検索する検索ステップと、
前記パターンを発見した場合に、前記コード記述を当該ソースコードに追加するコード追加ステップとを実行する、
ことを特徴とするオンラインビルド方法。 - 請求項3に記載のオンラインビルド方法をオンラインビルドシステムとしてコンピュータに実行させるためのオンラインビルドプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014077302A JP6204253B2 (ja) | 2014-04-03 | 2014-04-03 | オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014077302A JP6204253B2 (ja) | 2014-04-03 | 2014-04-03 | オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015197902A true JP2015197902A (ja) | 2015-11-09 |
JP6204253B2 JP6204253B2 (ja) | 2017-09-27 |
Family
ID=54547515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014077302A Active JP6204253B2 (ja) | 2014-04-03 | 2014-04-03 | オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6204253B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180061589A (ko) * | 2016-11-30 | 2018-06-08 | 주식회사 플루이딕 | 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법 |
WO2020139281A1 (en) * | 2018-12-24 | 2020-07-02 | Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi | A pre-compilation error detection system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1165837A (ja) * | 1997-08-27 | 1999-03-09 | Oki Electric Ind Co Ltd | 外部ファイルデータのデータ例外検出方法及び外部ファイルデータのデータ例外検出プログラムを記録した記録媒体 |
JPH11296366A (ja) * | 1998-04-07 | 1999-10-29 | Nec Corp | エラー検出装置及びエラー検出方法及び記録媒体 |
JP2004240477A (ja) * | 2003-02-03 | 2004-08-26 | Mitsubishi Electric Corp | ソースコード静的解析支援システムおよび静的解析装置 |
JP2005182102A (ja) * | 2003-12-16 | 2005-07-07 | Nec Corp | ビルドシステム及び方法並びにビルド用プログラム、ビルドサーバ |
JP2005284785A (ja) * | 2004-03-30 | 2005-10-13 | Jfe Steel Kk | プログラム開発装置 |
JP2008027171A (ja) * | 2006-07-20 | 2008-02-07 | Kyocera Mita Corp | 画像形成装置 |
-
2014
- 2014-04-03 JP JP2014077302A patent/JP6204253B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1165837A (ja) * | 1997-08-27 | 1999-03-09 | Oki Electric Ind Co Ltd | 外部ファイルデータのデータ例外検出方法及び外部ファイルデータのデータ例外検出プログラムを記録した記録媒体 |
JPH11296366A (ja) * | 1998-04-07 | 1999-10-29 | Nec Corp | エラー検出装置及びエラー検出方法及び記録媒体 |
JP2004240477A (ja) * | 2003-02-03 | 2004-08-26 | Mitsubishi Electric Corp | ソースコード静的解析支援システムおよび静的解析装置 |
JP2005182102A (ja) * | 2003-12-16 | 2005-07-07 | Nec Corp | ビルドシステム及び方法並びにビルド用プログラム、ビルドサーバ |
JP2005284785A (ja) * | 2004-03-30 | 2005-10-13 | Jfe Steel Kk | プログラム開発装置 |
JP2008027171A (ja) * | 2006-07-20 | 2008-02-07 | Kyocera Mita Corp | 画像形成装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180061589A (ko) * | 2016-11-30 | 2018-06-08 | 주식회사 플루이딕 | 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법 |
WO2020139281A1 (en) * | 2018-12-24 | 2020-07-02 | Turkcell Teknoloji Arastirma Ve Gelistirme Anonim Sirketi | A pre-compilation error detection system |
Also Published As
Publication number | Publication date |
---|---|
JP6204253B2 (ja) | 2017-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055592B2 (en) | Systems and methods to generate a type based self-assembling indirect control flow graph | |
US11100546B2 (en) | Method and system for provenance tracking in software ecosystems | |
EP3674954B1 (en) | Security control method and computer system | |
Zhang et al. | Precise and accurate patch presence test for binaries | |
US20220318399A1 (en) | Method and contract rewriting framework system for supporting smart contracts in a blockchain network | |
US20170286692A1 (en) | Vulnerability finding device, vulnerability finding method, and vulnerability finding program | |
US10387627B2 (en) | Systems and methods for analyzing software | |
Nelaturu et al. | Verified development and deployment of multiple interacting smart contracts with VeriSolid | |
US20220198003A1 (en) | Detecting added functionality in open source package | |
CN108595950A (zh) | 一种结合远程认证的sgx安全增强方法 | |
CN112068874B (zh) | 软件项目持续集成方法、装置、终端设备和存储介质 | |
US11461472B2 (en) | Automatic correctness and performance measurement of binary transformation systems | |
US20170344746A1 (en) | Utilizing likely invariants for runtime protection of web services | |
CN115168847A (zh) | 应用补丁生成方法、装置、计算机设备及可读存储介质 | |
JP6204253B2 (ja) | オンラインビルドシステム、オンラインビルド方法およびオンラインビルドプログラム | |
Soewito et al. | Android sensitive data leakage prevention with rooting detection using Java function hooking | |
CN104603791A (zh) | 签名验证装置及签名验证方法和程序 | |
US20190102279A1 (en) | Generating an instrumented software package and executing an instance thereof | |
CN114417347A (zh) | 应用程序的漏洞检测方法、装置、设备、存储介质和程序 | |
Mu et al. | Colafuze: Coverage-guided and layout-aware fuzzing for android drivers | |
Maggio et al. | Seance: Divination of tool-breaking changes in forensically important binaries | |
CN112947948B (zh) | 应用服务的部署方法及装置 | |
Küchler et al. | AbsIntIO: Towards Showing the Absence of Integer Overflows in Binaries using Abstract Interpretation | |
US20240134979A1 (en) | Systems and Methods for API Security Integration | |
CN111159663B (zh) | 指令定位方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170620 |
|
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: 20170829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6204253 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |