archinfo

v9.2.221 suspicious
4.0
Medium Risk

Classes with architecture-specific information useful to other projects.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits low risks in terms of network and shell activities, indicating benign usage for its intended purpose. However, the high obfuscation risk and the metadata risk associated with the maintainer's account status raise concerns about potential malicious intent.

  • High obfuscation risk
  • Maintainer's account is new or inactive
Per-check LLM notes
  • Network: No network calls detected, which is normal for a library focused on binary analysis and does not require external communication.
  • Shell: No shell execution patterns detected, consistent with a benign utility for static binary analysis.
  • Obfuscation: The patterns resemble low-level assembly instructions which could be used for obfuscation or evasion techniques.
  • Credentials: No clear indicators of credential harvesting were found.
  • Metadata: The maintainer has a new or inactive account with limited package history, raising some suspicion but not conclusive evidence of malice.

📦 Package Quality Overall: Medium (6.2/10)

✦ High Test Suite 9.0

Test suite present — 3 test file(s) found

  • 3 test file(s) detected (e.g. test_amd64.py)
◈ Medium Documentation 5.0

Some documentation present

  • Brief PyPI description (734 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 6 type-annotated function signatures (partial)
✦ High Multiple Contributors 10.0

Active multi-contributor project

  • 10 unique contributor(s) across 100 commits in angr/archinfo
  • Active community — 5 or more distinct contributors

🔬 Heuristic Checks

Outbound Network Calls

No suspicious network call patterns found

Code Obfuscation score 8.0

Found 4 obfuscation pattern(s)

  • ov r3, #0; rb"\xb5\x38\xf2\x40\x03\x00\xf2\xc0\x03\x00", } self.function_epilogs = {
  • 5,lr}; mov r3, #0; rb"\x38\xb5\x40\xf2\x00\x03\xc0\xf2\x00\x03", } function_epilogs = { rb"[\x00-\xff]{2}\
  • b"\x94\x21[\xc0-\xff][\x00\x10\x20\x30\x40\x50\x60\x70\x80\x90\xa0\xb0\xc0\xd0\xe0\xf0]" b"[\x7c-\x7f][\x08\x28\x48\x68\x88\xa8\xc
  • a1, N b"\x36[\x11\x21\x31\x41\x51\x61\x71\x81\x91\xa1\xb1\xc1\xd1\xe1\xf1]\x00", } if "sparc:" in self.name.lowe
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links

All external links appear legitimate

Git Repository History

Repository angr/archinfo appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with archinfo
Create a small utility application named 'ArchAnalyzer' that leverages the Python package 'archinfo' to analyze and provide detailed information about different computer architectures. This tool will serve as a learning aid and a quick reference for developers working with various architectures. The application should be able to accept user input specifying an architecture (e.g., x86, ARM), and then display relevant details such as supported instruction sets, endianness, pointer size, and other pertinent architectural characteristics.

The core functionality of 'ArchAnalyzer' includes:
1. A user-friendly command-line interface where users can input an architecture name.
2. Parsing the input and using 'archinfo' to retrieve detailed information about the specified architecture.
3. Displaying the retrieved information in a structured and readable format.
4. Optional feature: ability to save the output to a file for future reference.
5. Optional feature: providing a summary of differences between two specified architectures.

In utilizing the 'archinfo' package, focus on its ability to abstract away the complexities of querying specific architecture details. For instance, use 'archinfo.Arch' to instantiate an architecture object and then access its attributes to gather necessary data points. This project will not only demonstrate the practical application of 'archinfo' but also provide insights into the diverse world of computer architectures.