Skip to main content

enhanced phpjoern framework helping library for cpg2code and symbolic tracking.

Project description

EnhancedPHPJoern Framework Cpg2Code Library

Introduction

This framework helps you convert code from CodePropertyGraph of PHP.

Installation

install from pip (not public yet)

pip3 install cpg2code

install from source code

git clone 
python setup.py install

Usage

from enhanced_phpjoern_framework import Neo4jEngine
from enhanced_phpjoern_framework.graph_traversal import ControlGraphForwardTraversal
from cpg2code.cpg2code_factory import Cpg2CodeFactory
# WordPress-5.7.1/wp-load.php
neo4j_engine = Neo4jEngine.from_dict(NEO4J_DEFAULT_CONFIG)
traversal_entity = ControlGraphForwardTraversal(neo4j_engine)
file = neo4j_engine.get_file_name_belong_node('wp-load.php')
x = neo4j_engine.get_ast_child_node(neo4j_engine.get_ast_child_node(file))
origin = neo4j_engine.get_ast_root_node(x)
traversal_entity.origin = [origin]
traversal_entity.run()
rec = traversal_entity.get_record()  # type:nx.DiGraph
rec_list = [k for k, p in rec.nodes.items()]
result = Cpg2CodeFactory.extract_code(neo4j_engine, rec_list)
print(result)

The compare of result can be seen as follows(the left is the source file and the right is the generated file)

http://github.com/ninthDevilHAUNSTER/cpg2code/raw/master/example/result_cmp.png

Changelog

See [CHANGES.md](https://github.com/ninthDevilHAUNSTER/code2cpg/blob/master/CHANGES.md)

Authors

See [AUTHORS.md](https://github.com/ninthDevilHAUNSTER/code2cpg/blob/master/AUTHORS.md)

License

See [LICENSE.txt](https://github.com/ninthDevilHAUNSTER/code2cpg/blob/master/LICENSE.txt)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cpg2code-1.0.3.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cpg2code-1.0.3-py2.py3-none-any.whl (15.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cpg2code-1.0.3.tar.gz.

File metadata

  • Download URL: cpg2code-1.0.3.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for cpg2code-1.0.3.tar.gz
Algorithm Hash digest
SHA256 93f1d4606bab3293c98b9c1dc29db72fca373d27df3e27ffdee4446a0bdd92e3
MD5 44081954e118f2e6d0e6eb915ea36d25
BLAKE2b-256 1ad70c237e68d6883285450fe1e9ed8934c3b6baf0d877d84639bfc2a4a76426

See more details on using hashes here.

File details

Details for the file cpg2code-1.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: cpg2code-1.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for cpg2code-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 57dc18ab32343f2237736d2bc6bf6b7155f0229f679e335adeaff1aad15b611d
MD5 20b20d34d000563e13785394beba0196
BLAKE2b-256 cf436c5674ff9cac2102c982b8e3c43d8d373b743eb65c27737191f38aaa0c0d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page