[go: up one dir, main page]

JPWO2022078632A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2022078632A5
JPWO2022078632A5 JP2023521921A JP2023521921A JPWO2022078632A5 JP WO2022078632 A5 JPWO2022078632 A5 JP WO2022078632A5 JP 2023521921 A JP2023521921 A JP 2023521921A JP 2023521921 A JP2023521921 A JP 2023521921A JP WO2022078632 A5 JPWO2022078632 A5 JP WO2022078632A5
Authority
JP
Japan
Prior art keywords
property graph
vulnerability
code property
state
call
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
Application number
JP2023521921A
Other languages
Japanese (ja)
Other versions
JP2023545140A (en
JP7711187B2 (en
Publication date
Application filed filed Critical
Priority claimed from PCT/EP2021/054838 external-priority patent/WO2022078632A1/en
Publication of JP2023545140A publication Critical patent/JP2023545140A/en
Publication of JPWO2022078632A5 publication Critical patent/JPWO2022078632A5/ja
Application granted granted Critical
Publication of JP7711187B2 publication Critical patent/JP7711187B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明の実施形態によれば、拡充過程を実行するステップはwrite-state-analysisを含んでもよい。write-state-analysisは、スマートコントラクトの状態変数を変化させるすべてのステートメントを収集するステップと、収集されたステートメントおよびそれらを取り囲む関数にwrites-state-labelを割り当てるステップとを含んでもよい。write-state-analysisは、状態変数を更新する/書き込む関数を呼び出すすべての内部関数呼出しを収集するステップと、収集された内部関数呼出しおよびそれらを取り囲む関数にwrites-state-labelを割り当てるステップとをさらに含んでもよい。したがって、脆弱性検知過程において効率的に適用され、かつ使用されるための適切な情報を収集することが可能である。 According to an embodiment of the present invention, the step of performing the enrichment process may include a write-state-analysis. The write-state-analysis may include collecting all statements that change state variables of the smart contract and assigning a writes-state-label to the collected statements and their surrounding functions. The write-state-analysis may further include collecting all internal function calls that call functions that update/write state variables and assigning a writes-state-label to the collected internal function calls and their surrounding functions. Thus, it is possible to collect appropriate information to be efficiently applied and used in the vulnerability detection process.

本発明の実施形態によれば、脆弱性検知過程を実行するステップは、状態を書き込むステートメントswおよびそれを取り囲む関数fについてコードプロパティグラフを照会するステップを含んでもよい。次いで、関数fの制御フローを考慮に入れて、コードプロパティグラフにおいて、外部関数呼出しceからswに過渡的に通じるceが検索されてもよい。swによって扱われる状態変数svも取り込まれる。そのようなパターンが見つかったら、スマートコントラクトに属してsvに書き込むすべての関数fcに関する脆弱性検知過程において、コードプロパティグラフも照会されてもよい。したがって、リエントラント脆弱性が効率的に検知されてもよい。そのために、状態変数svと、状態変数svに書き込むステートメントswと、ステートメントsw を取り囲む関数fと、fの制御フローを考えると外部関数呼出しceからswに過渡的に通じるceと、svに書き込むクロス関数fcのセットとを含むリエントラント脆弱性パターンが検索されてもよい。 According to an embodiment of the present invention, the step of performing the vulnerability detection process may include querying the code property graph for the statement s w that writes the state and the function f that surrounds it . Then, taking into account the control flow of the function f, the code property graph may be searched for c e that transitively leads from the foreign function call c e to s w . The state variables s v handled by s w are also captured. If such a pattern is found, the code property graph may also be queried in the vulnerability detection process for all functions f c that belong to the smart contract and write to s v. Thus, reentrant vulnerabilities may be efficiently detected. To this end, a reentrant vulnerability pattern may be searched for, which includes the state variable s v , the statement s w that writes to the state variable s v , the function f that surrounds the statement s w , c e that transitively leads from the foreign function call c e to s w considering the control flow of f, and a set of cross functions f c that write to s v .

本発明の実施形態によれば、脆弱性検知過程において、状態を書き込むステートメントswおよびそれを取り囲む関数fについてコードプロパティグラフが照会されてもよい。生成ベースのリエントラント性検知は、外部呼出しの代わりに、fの制御フローを考えるとコンストラクタ呼出しccからswに過渡的に通じるccを検索してもよい。CPGベースの解析により、呼び出されているコンストラクタを解析することが可能になる。このようにして、この脆弱性が報告されるのは、コンストラクタが外部呼出しを含有している場合のみであってもよい。外部コールがなければリエントラント性が生じることはないので、これは有効である。コンストラクタが外部関数を呼び出す場合には、同一のコントラクトに属してsvにも書き込むすべての関数について、制御プロパティグラフが再び照会されてもよい。したがって、リエントラント脆弱性を効率的に検知することが可能である。 According to an embodiment of the present invention, during vulnerability detection, the code property graph may be queried for the state-writing statement s w and the surrounding function f. Instead of external calls, the generation-based reentrancy detection may search for c c that transitively lead to s w from the constructor call c c given the control flow of f. The CPG-based analysis allows to analyze the constructor being called. In this way, the vulnerability may be reported only if the constructor contains an external call. This is valid because reentrancy cannot occur without an external call. If the constructor calls an external function, the control property graph may be queried again for all functions that belong to the same contract and also write to s v. Thus, reentrancy vulnerabilities can be detected efficiently.

HCCは、すべての関数呼出しにラベルを付けた後に、適切な場合には、ContainsDelegateCall、ContainsExternalCallおよびContainsConstructorCallを用いてそれらを含有している関数にラベルを付ける。HCCがCPGにおけるすべての関数呼出しにわたって繰り返すこと、またそれらの関数呼出しを取り囲む関数は別のコントラクトの一部である場合があることに留意されたい。これは、Constructorcallによって呼び出される関数が、この解析の対象であるか、または関数呼出しを含有していないことを意味する。 After labeling all function calls, the HCC labels the functions that contain them with ContainsDelegateCall, ContainsExternalCall, and ContainsConstructorCall, where appropriate. Note that the HCC iterates over all function calls in the CPG, and that the functions surrounding those function calls may be part of another contract. This means that a function called by a Constructorcall is either subject to this analysis or does not contain the function call.

HCCは、第1の解析ステップにおいて、コントラクトの状態変数を変更するすべてのステートメントを収集する。次いで、収集されたステートメントおよびそれらを取り囲む関数にWritesStateのラベルが付けられ、扱われる状態変数に対してエッジが追加される。このエッジはWRITESのラベルを有する。 In the first analysis step, HCC collects all statements that modify the state variables of a contract. The collected statements and their surrounding functions are then labeled with WritesState, and edges are added to the state variables they handle. These edges are labeled with WRITES.

書込み状態解析の第2のステップにおいて、HCCは、コントラクト状態を更新する関数を呼び出す、すべての内部の関数呼出しを収集する。それらの呼出しおよびそれらを取り囲む関数は、上記のステートメントに類似のラベルおよびエッジを受け取るが、この第2のステップは、CPGに新規のラベルが追加されなくなるまで繰り返される。 In the second step of the write state analysis, the HCC collects all internal function calls that call functions that update the contract state. These calls and the functions surrounding them receive labels and edges similar to the above statement, but this second step is repeated until no new labels are added to the CPG.

リエントラント性の検知:リエントラント脆弱性の検知は次のように実施されてもよい。最初に、HCCは、状態を書き込むステートメントswおよびそれを取り囲む関数fについてCPGを照会する。次いで、HCCは、fの制御フローを考えると外部呼出しceからswに過渡的に通じるceを検索する。HCCは、swによって扱われる状態変数svも取り込む。そのようなパターンが見つかると、HCCは、同一のコントラクトに属してsvにも書き込むすべての関数fcについてCPGを照会する。この手法は、従来のリエントラント性ならびにクロス関数リエントラント性および代表型ケース(ii)のリエントラント性に有効である。 Reentrancy detection: Reentrancy vulnerability detection may be performed as follows: First, HCC queries the CPG for a state-writing statement s w and its surrounding functions f. Then, HCC searches for c e that transitively lead to s w from an external call c e given the control flow of f. HCC also captures state variables s v handled by s w . If such a pattern is found, HCC queries the CPG for all functions f c belonging to the same contract that also write to s v. This approach works for classical reentrancy as well as cross-function reentrancy and representative case (ii) reentrancy.

HCCにおける生成ベースのリエントラント性の検知は、ほぼ前述の基本的な検知のように実施されてもよい。状態を書き込むステートメントswおよびそれを取り囲む関数fについてCPGが照会される。生成ベースのリエントラント性検知は、外部コールの代わりに、fの制御フローを考えるとコンストラクタ呼出しccからswに過渡的に通じるccを検索する。しかしながら、CPGベースの解析により、HCCは、呼び出されているコンストラクタを解析することが可能になる。このようにして、コンストラクタが外部呼出しを含有している場合には、HCCが報告するのはこの脆弱性のみになる。外部コールがなければリエントラント性が生じることはないので、これは有効である。コンストラクタが外部関数を呼び出す場合には、HCCは、同一のコントラクトに属してsvにも書き込むすべての関数について、CPGを再び照会する。 Creation-based reentrancy detection in HCC may be performed much like the basic detection described above. The CPG is queried for a statement s w that writes state and for the function f that surrounds it . Instead of external calls, creation-based reentrancy detection searches for c c that transitively lead to s w from a constructor call c c given the control flow of f. However, the CPG-based analysis allows HCC to analyze the constructor being called. In this way, if a constructor contains an external call, HCC will only report this vulnerability. This is valid because reentrancy cannot occur without external calls. If the constructor calls an external function, HCC again queries the CPG for all functions that belong to the same contract and also write to sv.

リエントラント性は、状態変数svと、この状態変数に書き込むステートメントswと、外部関数呼出しceと、それを取り囲む関数fと、これもsvに書き込む、クロス関数fcのセットとから成ることを思い起こされたい。第1のステップとして、HCCは、状態変数としてのsvのロック変数(lsv)を生成する。これは、svが既にロック変数を有するかどうかの検査を含む。変数lsvのタイプはsv自体のタイプに依拠し、たとえば、svがuint256のような基本タイプを有する場合にはlsvはブールタイプになるが、マッピングタイプについては、値のタイプのみがブールタイプになる。
Recall that reentrancy consists of a state variable sv, a statement sw that writes to this state variable, a foreign function call ce , a surrounding function f, and a set of cross functions fc that also write to sv. As a first step, HCC creates a lock variable (l sv ) for sv as a state variable. This involves checking whether sv already has a lock variable. The type of the variable l sv depends on the type of sv itself, e.g., if sv has a basic type like uint256 then l sv will be of type Boolean, but for mapping types only the type of the value will be of type Boolean.

Claims (14)

ブロックチェーンネットワークにおいてスマートコントラクトをサポートするためのコンピュータ実施方法であって、
スマートコントラクトのソースコードを抽象構文ツリーモデルに変換するステップと、
前記抽象構文ツリーモデルに基づいてコードプロパティグラフを生成するステップと、
前記抽象構文ツリーモデルから推測可能な情報を用いて前記コードプロパティグラフを拡充する拡充過程を実行するステップと、
脆弱性検知過程を実行するステップであって、前記コードプロパティグラフが、1つまたは複数の所定の脆弱性を見つけるために、1つまたは複数の所定の脆弱性パターンがあるかどうか検査される、ステップと、
脆弱性パッチング過程を実行するステップであって、前記脆弱性検知過程において見つかった脆弱性を修正するために1つまたは複数のパッチが適用され、パッチを適用されたコードプロパティグラフが生成されるように、前記コードプロパティグラフに前記パッチが挿入される、ステップと
を含み、前記拡充過程を実行するステップが呼出し解析を含み、前記呼出し解析が、
前記コードプロパティグラフにおける関数呼出し表現にわたって繰り返すステップと、
それぞれの外部関数呼出しに対して呼出しラベルを割り当てるステップと、
を含む、コンピュータ実施方法。
1. A computer-implemented method for supporting smart contracts in a blockchain network, comprising:
translating a source code of the smart contract into an abstract syntax tree model;
generating a code property graph based on the abstract syntax tree model;
performing an augmentation process to augment the code property graph using information inferable from the abstract syntax tree model;
performing a vulnerability detection process, wherein the code property graph is examined for one or more predefined vulnerability patterns to find one or more predefined vulnerabilities;
performing a vulnerability patching process, in which one or more patches are applied to fix vulnerabilities found in the vulnerability detection process, and the patches are inserted into the code property graph to generate a patched code property graph; and performing the enrichment process includes invocation analysis, the invocation analysis comprising:
iterating over function call representations in the code property graph;
assigning a call label to each external function call;
4. A computer-implemented method comprising :
前記ブロックチェーンネットワークがノードを有する分散ネットワークであり、ブロックチェーンにより、前記ノードが、暗号的に安全な署名を使用することによって互いにトランザクションに関与することが可能になる、請求項1に記載の方法。 The method of claim 1, wherein the blockchain network is a decentralized network having nodes, and the blockchain enables the nodes to engage in transactions with each other through the use of cryptographically secure signatures. 前記スマートコントラクトのアドレスにトランザクションが送信される場合は常に、前記スマートコントラクトがトリガされ、前記スマートコントラクトが、前記ブロックチェーンに対してトランザクションを検証して追加するノードにより、仮想マシンにおいて実行される、請求項1または2に記載の方法。 The method of claim 1 or 2, wherein whenever a transaction is sent to the address of the smart contract, the smart contract is triggered and executed in a virtual machine by a node that validates and adds the transaction to the blockchain. 前記コードプロパティグラフが、制御フローグラフの組み合わされた表現、データフローグラフおよび/またはドミネータツリーを含む、請求項1から3のいずれか一項に記載の方法。 The method of any one of claims 1 to 3, wherein the code property graph comprises a combined representation of a control flow graph, a data flow graph and/or a dominator tree. 前記拡充過程を実行するステップが含むcontains-call-analysisが、
関数呼出しを見つけるために、前記コードプロパティグラフにおけるステートメントのサブ表現を解析するステップと、
外部関数呼出しを有するそれぞれのステートメントに呼出しラベルを割り当てるステップと
を含む、請求項1から4のいずれか一項に記載の方法。
The step of performing the enrichment process includes a contains-call-analysis,
analyzing sub-expressions of statements in the code property graph to find function calls;
and assigning a call label to each statement having an external function call.
前記拡充過程を実行するステップが含むwrite-state-analysisが、
スマートコントラクトの状態変数を変更するステートメントを収集するステップと、
収集されたステートメントおよびそれらを取り囲む関数にwrites-state-labelを割り当てるステップと、
状態変数を更新する/書き込む関数を呼び出す内部関数呼出しを収集するステップと、
前記収集された内部関数呼出しおよびそれらを取り囲む関数にwrites-state-labelを割り当てるステップと
を含む、請求項1から5のいずれか一項に記載の方法。
The step of performing the enrichment process includes write-state-analysis,
collecting statements that modify state variables of a smart contract;
assigning a writes-state-label to the collected statements and their surrounding functions;
collecting internal function calls that call functions that update/write state variables;
and assigning a writes-state - label to the collected internal function calls and their surrounding functions.
前記脆弱性パターンが所定の脆弱性に関連付けられ、前記所定の脆弱性が、リエントラント性、整数オーバフローバグおよび/または整数アンダフローバグを含んでもよい、請求項1から6のいずれか一項に記載の方法。 The method of any one of claims 1 to 6 , wherein the vulnerability pattern is associated with a predefined vulnerability, the predefined vulnerability may comprise a reentrancy, an integer overflow bug and/or an integer underflow bug. 前記脆弱性パターンがサブグラフの形式で表現され、前記脆弱性検知過程を実行するステップが、前記スマートコントラクトのコードプロパティグラフの内部のサブグラフを検索するステップを含む、請求項1から7のいずれか一項に記載の方法。 8. The method of claim 1 , wherein the vulnerability pattern is expressed in the form of a subgraph, and the step of performing the vulnerability detection process comprises searching a subgraph within a code property graph of the smart contract. 前記脆弱性検知過程を実行するステップが、
状態を書き込むステートメントsw およびそれらを取り囲む関数fについてコードプロパティグラフを照会するステップと、
関数fの制御フローを考慮して外部関数呼出しceからswに過渡的に通じるceを検索するステップと、
swによって扱われる状態変数svを取り込むステップと、
前記スマートコントラクトに属してsvに書き込むすべての関数fc についてコードプロパティグラフを照会するステップと
を含む、請求項1から8のいずれか一項に記載の方法。
The step of performing the vulnerability detection process includes:
Querying a code property graph for state-writing statements s w and their surrounding functions f;
searching for a c e that transitionally leads from a foreign function call c e to s w by considering the control flow of a function f;
taking in the state variables sv handled by s w ;
9. The method of claim 1, further comprising: querying a code property graph for all functions f c that belong to the smart contract and write to sv.
前記脆弱性検知過程を実行するステップが、
状態を書き込むステートメントsw およびそれらを取り囲む関数fについてコードプロパティグラフを照会するステップと、
関数fの制御フローを考えるとコンストラクタ呼出しccからswに過渡的に通じ、外部関数呼出しceを呼び出す、コンストラクタ呼出しccを検索するステップと、
swによって扱われる状態変数svを取り込むステップと、
前記スマートコントラクトに属してsvに書き込むすべての関数fc についてコードプロパティグラフを照会するステップと
を含む、請求項1から9のいずれか一項に記載の方法。
The step of performing the vulnerability detection process includes:
Querying a code property graph for state-writing statements s w and their surrounding functions f;
Considering the control flow of a function f, there are steps of retrieving a constructor call c c that transitively passes from a constructor call c c to s w and invokes a foreign function call c e ;
taking in the state variables sv handled by s w ;
10. The method of claim 1, further comprising: querying a code property graph for all functions f c that belong to the smart contract and write to sv.
パッチを適用するために前記脆弱性パッチング過程を実行するステップが、
状態変数としてsvのロック変数lsvを与えるステップと、
lsvの前記状態を設定する割当てステートメントを生成するステップであって、ロックステートメントlock_lsvが前記状態の値をトルーに設定し、アンロックステートメントunlock_lsvが前記状態の値をフォールスに設定する、ステップと、
前記ロックステートメントと外関数呼出しce、またはコンストラクタ呼出しccと前記アンロックステートメントが、lock_lsv→ce、またはcc→unlock_lsvと、互いに直接後続するように、関数fの制御フローを変更するステップと
を含む、請求項9または10に記載の方法。
executing the vulnerability patching process to apply a patch,
providing a lock variable l sv of sv as a state variable;
generating assignment statements that set the state of a lock_l sv , where a lock statement lock_l sv sets the value of the state to true and an unlock statement unlock_l sv sets the value of the state to false;
and modifying the control flow of function f such that the lock statement and the foreign function call c e , or the constructor call c c and the unlock statement, immediately follow each other: lock_l sv c e , or c c → unlock_l sv .
前記パッチが前記1つまたは複数の脆弱性パターンに対して特別に作成される、請求項1から11のいずれか一項に記載の方法。 The method of claim 1 , wherein the patch is created specifically for the one or more vulnerability patterns. 前記1つまたは複数の適用されたパッチを組み込む前記スマートコントラクト用の新規のソースコードを生成するために、前記パッチを入れられたコードプロパティグラフがくまなく調べられる、請求項1から12のいずれか一項に記載の方法。 13. The method of any one of claims 1 to 12 , wherein the patched code property graph is traversed to generate new source code for the smart contract that incorporates the one or more applied patches. ブロックチェーンネットワークにおけるスマートコントラクトをサポートするためのコンピュータシステムであって、前記コンピュータシステムには、単独で、または組み合わせて、方法、詳細には請求項1から13のいずれか一項に記載の方法を実行するように構成された記憶装置および1つまたは複数のプロセッサが備わっており、前記方法が、
スマートコントラクトのソースコードを抽象構文ツリーモデルに変換するステップと、
前記抽象構文ツリーモデルに基づいてコードプロパティグラフを生成するステップと、
前記抽象構文ツリーモデルから推測可能な情報を用いて前記コードプロパティグラフを拡充する拡充過程を実行するステップと、
脆弱性検知過程を実行するステップであって、前記コードプロパティグラフが、1つまたは複数の所定の脆弱性を見つけるために、1つまたは複数の所定の脆弱性パターンがあるかどうか検査される、ステップと、
脆弱性パッチング過程を実行するステップであって、前記脆弱性検知過程において見つかった脆弱性を修正するために1つまたは複数のパッチが適用され、パッチを適用されたコードプロパティグラフが生成されるように、前記コードプロパティグラフに前記パッチが挿入される、ステップと
を含む、コンピュータシステム。
A computer system for supporting smart contracts in a blockchain network, the computer system comprising a storage device and one or more processors configured to execute, alone or in combination, a method, in particular a method according to any one of claims 1 to 13 , the method comprising:
translating a source code of the smart contract into an abstract syntax tree model;
generating a code property graph based on the abstract syntax tree model;
performing an augmentation process to augment the code property graph using information inferable from the abstract syntax tree model;
performing a vulnerability detection process, wherein the code property graph is examined for one or more predefined vulnerability patterns to find one or more predefined vulnerabilities;
and performing a vulnerability patching process, wherein one or more patches are applied to fix vulnerabilities found in the vulnerability detection process, and the patches are inserted into the code property graph to generate a patched code property graph.
JP2023521921A 2020-10-13 2021-02-26 Method and system for supporting smart contracts in a blockchain network Active JP7711187B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20201543.4 2020-10-13
EP20201543 2020-10-13
PCT/EP2021/054838 WO2022078632A1 (en) 2020-10-13 2021-02-26 Method and system for supporting smart contracts in a blockchain network

Publications (3)

Publication Number Publication Date
JP2023545140A JP2023545140A (en) 2023-10-26
JPWO2022078632A5 true JPWO2022078632A5 (en) 2025-04-07
JP7711187B2 JP7711187B2 (en) 2025-07-22

Family

ID=74871349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023521921A Active JP7711187B2 (en) 2020-10-13 2021-02-26 Method and system for supporting smart contracts in a blockchain network

Country Status (3)

Country Link
US (1) US20240020109A1 (en)
JP (1) JP7711187B2 (en)
WO (1) WO2022078632A1 (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022108318A1 (en) 2020-11-17 2022-05-27 주식회사 수호아이오 Apparatus and method for analyzing smart contract code vulnerabilities
WO2022256573A1 (en) * 2021-06-02 2022-12-08 The Johns Hopkins University System and method for detecting vulnerabilities in object-oriented program code using an object property graph
CN114996126B (en) * 2022-05-17 2024-02-23 电子科技大学 Vulnerability detection method and system for EOSIO intelligent contracts
CN115017514B (en) * 2022-05-31 2025-03-18 南京航空航天大学 Method and application of smart contract vulnerability detection based on abstract syntax tree
CN115033896B (en) * 2022-08-15 2022-11-08 鹏城实验室 Method, device, system and medium for detecting Ethernet intelligent contract vulnerability
CN115470498A (en) * 2022-09-23 2022-12-13 辽宁工程技术大学 An optimization method for reentrancy attack vulnerabilities in smart contracts based on auction refund transactions
CN115310100B (en) * 2022-10-12 2023-02-03 鹏城实验室 Intelligent contract vulnerability repairing method, equipment and medium
CN115879945B (en) * 2022-11-03 2024-12-03 北京邮电大学 Intelligent contract read-after-write risk detection method and electronic equipment
CN115828264A (en) * 2022-12-19 2023-03-21 杭州云象网络技术有限公司 Intelligent contract vulnerability detection method and system and electronic equipment
CN116578988B (en) * 2023-05-23 2024-01-23 海南大学 Vulnerability detection method and device of intelligent contract and storage medium
CN117614681B (en) * 2023-11-24 2024-05-24 烟台大学 Smart contract reentrancy vulnerability detection method, system, device and storage medium
EP4564207A1 (en) * 2023-12-01 2025-06-04 Sooho.io Inc. Apparatus and method for analyzing vulnerabilities of smart contract code
CN117592989B (en) * 2023-12-08 2024-06-28 聚合吧科技有限公司 Payment information security management method and system based on blockchain
CN117951710B (en) * 2023-12-25 2025-05-27 杭州电子科技大学 Cross-contract vulnerability detection method and system based on operation code
WO2025172831A1 (en) * 2024-02-16 2025-08-21 Oneguard Llc A security system
CN118194294B (en) * 2024-03-18 2024-08-20 烟台大学 Intelligent contract vulnerability detection method, system and equipment based on intermediate representation
CN118468282B (en) * 2024-05-07 2025-03-25 中山大学 Cross-chain bridge smart contract vulnerability detection method and related equipment
CN118171290B (en) * 2024-05-14 2024-07-19 烟台大学 Intelligent contract vulnerability detection method and system based on source code and byte code
CN118337529B (en) * 2024-06-12 2024-09-13 烟台大学 Intelligent contract vulnerability detection method and device based on execution path and stack event
CN118626379A (en) * 2024-06-17 2024-09-10 西安电子科技大学 Smart contract vulnerability detection method and system for Hyperledger Fabric
CN118860406A (en) * 2024-06-28 2024-10-29 鹏城实验室 Vulnerability detection method, device, computer equipment and readable storage medium
CN119203156A (en) * 2024-09-20 2024-12-27 浙江大学 A NFT smart contract vulnerability detection method based on large language agent
CN119902962B (en) * 2025-04-02 2025-06-24 北京国信网联科技有限公司 Code vulnerability detection method and system based on machine learning

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3155514A1 (en) * 2014-06-13 2017-04-19 The Charles Stark Draper Laboratory, Inc. Systems and methods for a database of software artifacts
JP6952506B2 (en) * 2017-06-13 2021-10-20 株式会社野村総合研究所 Inspection equipment
KR101947760B1 (en) * 2018-09-04 2019-02-13 김종현 Secure authentication server for smart contract
CN110807195B (en) * 2019-09-26 2023-08-25 图灵人工智能研究院(南京)有限公司 Intelligent contract issuing method, issuing platform device and issuing system

Similar Documents

Publication Publication Date Title
JPWO2022078632A5 (en)
Lattner et al. Making context-sensitive points-to analysis with heap cloning practical for the real world
US7912877B2 (en) Leveraging garbage collection to dynamically infer heap invariants
US20190102278A1 (en) Memory leak profiling events
US20130290937A1 (en) Efficient extraction of software dependencies from program code
US20080005208A1 (en) Data structure path profiling
CN109032631B (en) Application program patch package obtaining method and device, computer equipment and storage medium
CN102662825B (en) Method for detecting memory leakage of heap operational program
US20060150168A1 (en) Annotating graphs to allow quick loading and analysis of very large graphs
WO2014152093A1 (en) Optimization of a software build
US20110087713A1 (en) Associative references in a garbage collected programming environment
CN113312377A (en) Automatic-association SQL query statement processing method and device and electronic equipment
US8458679B2 (en) May-constant propagation
Haller et al. Scalable data structure detection and classification for C/C++ binaries
US12430447B2 (en) Using call graphs to identify an update when upgrading to a newer version
Qi et al. LogicMEM: Automatic Profile Generation for Binary-Only Memory Forensics via Logic Inference.
CN101228509A (en) Apparatus, method, program for generating and executing executable binary image, and computer-readable recording medium recording the program
US10649797B2 (en) Online method handle deduplication
CN105824758B (en) A kind of heap area object comparative approach based on execution index and access path
CN116719531B (en) Object conversion method, system and medium based on runtime bytecode editing
CN114880673B (en) Method and system for detecting privacy data leakage in mini program source code
Rodrigues et al. Aspect-oriented webassembly transformation
CN116578282A (en) Code generation method, device, electronic equipment and medium
JP7513116B2 (en) Call graph creation device, call graph creation method, and program
US6578195B1 (en) Process for data encapsulation in large scale legacy software