Breaking News

Tuesday, 15 September 2020

Hardcodes - Find Hardcoded Strings From Source Code

Hardcodes - Find Hardcoded Strings From Source Code


hardcodes is a utility for searching strings hardcoded by developers in programs. It uses a modular tokenizer that can handle comments, any number of backslashes & nearly any syntax you throw at it.
Yes, it is designed to process any syntax and following languages are officially supported:

ada, applescript, c, c#, c++, coldfusion, golang, haskell, html, java, javascript,
jsp, lua, pascal, perl, php, powershell, python, ruby, scala, sql, swift, xml


Installation

with pip

pip3 install hardcodes


or build from source

git clone https://github.com/s0md3v/hardcodes && cd hardcodes && python3 setup.py install


For Developers
The sample program below demonstrates usage of hardcodes library

from hardcodes import search

string = "console.log('hello there')"
result = search(string, lang="common", comments="parse")
print(result)
Output: ['hello there']

The arguments lang and comments are optional. Their use is explained below in the user documentation section.

For Users
cli.py provides a grep-like command line interface to hardcodes library. You will need to install the library first to use it.

Find strings in a file

python cli.py /path/to/file.ext


Find strings in a directory, recursively

python cli.py -r /path/to/dir


Hide paths from output

python cli.py -o /path/to/file.ext


Specify programming language
Specifying a language is optional and should be used only when the programming language of source is already known.

python cli.py -l 'golang' /path/to/file.go


Specify comment behaviour
With -c option, you can specify

  • ignore ignore the comments completely
  • parse parse the comments like code
  • string add comments to list of hardcoded strings

python cli.py -o /path/to/file.ext


0 comments:

Post a Comment

'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();
'; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();