FileInsight-plugins
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:FileInsight-plugins: decoding toolbox of McAfee FileInsight hex editor for malware analysis
[![Black Hat Arsenal](https://raw.githubusercontent.com/toolswatch/badges/master/arsenal/usa/2021.svg?sanitize=true)](https://www.blackhat.com/us-21/arsenal/schedule/#fileinsight-plugins-decoding-toolbox-of-mcafee-fileinsight-hex-editor-for-malware-analysis-23386)

# FileInsight-plugins: decoding toolbox of McAfee FileInsight hex editor for malware analysis

FileInsight-plugins is a large set of plugins for McAfee FileInsight hex editor.
It adds many capabilities such as decryption, decompression, searching XOR-ed text strings, scanning with a YARA rule, code emulation, disassembly, and more!
It is useful for various kinds of decoding tasks in malware analysis (e.g. extracting malware executables and decoy documents from malicious document files).

## Screenshots
#### Dialog of "AES decrypt" plugin
![screenshot1.png](docs/screenshot1.png)

#### Scan result of "YARA scan" plugin
![screenshot2.png](docs/screenshot2.png)

#### Data structure of ELF executable file parsed by "Parse file structure" plugin
![screenshot3.png](docs/screenshot3.png)

#### Emulation trace of ARM64 Linux shellcode emulated by "Emulate code" plugin
![screenshot4.png](docs/screenshot4.png)

#### Disassembly output of x86 Linux shellcode disassembled by "Disassemble" plugin
![screenshot5.png](docs/screenshot5.png)

#### Bitmap representation of Windows executable file visualized by "Bitmap view" plugin
![screenshot6.png](docs/screenshot6.png)

#### Byte histogram of Excel file shown by "Byte histogram" plugin
![screenshot7.png](docs/screenshot7.png)

#### Entropy graph of Windows executable file shown by "Entropy graph" plugin
![screenshot8.png](docs/screenshot8.png)

## Presentations
### Black Hat USA 2021 Arsenal
* [Abstract at Black Hat USA website](https://www.blackhat.com/us-21/arsenal/schedule/#fileinsight-plugins-decoding-toolbox-of-mcafee-fileinsight-hex-editor-for-malware-analysis-23386)
* [Slide deck](https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/docs/FileInsight-plugins-Black%20Hat%20USA%202021%20Arsenal.pdf)
* [Demo movie](https://www.youtube.com/watch?v=nGDLnoiv9Xs)

### CODE BLUE 2019 Bluebox
* [Abstract at CODE BLUE website](https://codeblue.jp/2019/en/bluebox/FileInsight-plugins/)
* [Slide deck (English)](https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/docs/FileInsight-plugins-CODE%20BLUE%202019.pdf)
* [Slide deck (Japanese)](https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/docs/FileInsight-plugins-CODE%20BLUE%202019-ja.pdf)

## Use cases
* [Use case 1: executable file embedded in Excel file](https://github.com/nmantani/FileInsight-plugins/wiki/Use-case-1--executable-file-embedded-in-Excel-file)
* [Use case 2: executable file embedded in RTF file](https://github.com/nmantani/FileInsight-plugins/wiki/Use-case-2--executable-file-embedded-in-RTF-file)
* [Use case 3: obfuscated PHP webshell](https://github.com/nmantani/FileInsight-plugins/wiki/Use-case-3--obfuscated-PHP-webshell)
* [Use case 4: YARA rule testing](https://github.com/nmantani/FileInsight-plugins/wiki/Use-case-4--YARA-rule-testing)
* [Use case 5: Code emulation](https://github.com/nmantani/FileInsight-plugins/wiki/Use-case-5--Code-emulation)

## How to install
### Automatic installation
Please execute the following command. The latest release version of FileInsight-plugins and all pre-requisites including FileInsight and Python 3.9.x (x64) will be installed.

```
powershell -exec bypass -command "IEX((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))"
```

If you use a proxy server (for example, IP address: 10.0.0.1, port: 8080), please execute the following commands.

```
curl -x http://10.0.0.1:8080 -Lo install.ps1 https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1
powershell -exec bypass .\install.ps1
```

### Manual installation
Please read [INSTALL.md](INSTALL.md) for details.
**I strongly recommend automatic installation** because manual installation requires many steps.

## How to use
Please click "Operations" in the "Plugins" tab then select a plugin.



You can also use plugins from the right-click menu.

![how_to_use2.png](docs/how_to_use2.png)

Some plugins show an additional dialog for plugin settings at the point of use.

![how_to_use3.png](docs/how_to_use3.png)

## How to update
### Semi-automatic update
If you would like to update FileInsight-plugins to the latest release version,
please click "Check for update" of the plugin menu. The installation
PowerShell script (https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1)
will be executed if new version is available.
Existing files will be overwritten.

![check_for_update.png](docs/check_for_update.png)

You can also update with the following command ("Check for update"
executes this command).

```
powershell -exec bypass -command "& ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))) -update"
```

If you use a proxy server (for example, IP address: 10.0.0.1, port: 8080), please execute the following commands.

```
curl -x http://10.0.0.1:8080 -Lo install.ps1 https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1
powershell -exec bypass .\install.ps1 -update
```

If you would like to update FileInsight-plugins to the latest snapshot,
please add "-snapshot" option.

```
powershell -exec bypass -command "& ([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/nmantani/FileInsight-plugins/master/install.ps1'))) -update -snapshot"
```

### Manual update
Please download the latest release version and copy the "plugins" folder into
"%USERPROFILE%\Documents\McAfee FileInsight" to overwrite with the new version.

## Customization
For the "Send to (CLI)" plugin and the "Send to (GUI)" plugin, you can open files with your favorite programs.
Please click "Customize menu" of the plugin menu.

![customization1.png](docs/customization1.png)

"plugins\Operations\Misc\send_to_cli.json" (for the "Send to (CLI)" plugin) or "plugins\Operations\Misc\send_to.json" (for the "Send to (GUI)" plugin) will be opened with your default text editor.
Please edit and save it.

![customization2.png](docs/customization2.png)

Your customization will be reflected in menu items.

![customization3.png](docs/customization3.png)

## List of plugins (130 plugins)
### Basic operations
* Copy to new file  
  Copy selected region (the whole file if not selected) to a new file
* Bookmark  
  Bookmark selected region with specified comment and color
* Cut binary to clipboard  
  Cut binary data of selected region to clipboard as hex-encoded text
* Copy binary to clipboard  
  Copy binary data of selected region to clipboard as hex-encoded text
* Paste binary from clipboard  
  Paste binary data (converted from hex-encoded text) from clipboard
* Delete before  
  Delete all region before the current cursor position
* Delete after  
  Delete all region after the current cursor position
* Fill  
  Fill selected region with specified hex pattern
* Invert  
  Invert bits of selected region
* Reverse order  
  Reverse order of selected region
* Change endianness  
  Change endianness of selected region
* Swap nibbles  
  Swap each pair of nibbles of selected region
* Swap two bytes  
  Swap each pair of bytes of selected region
* To upper case  
  Convert text to upper case of selected region
* To lower case  
  Convert text to lower case of selected region
* Swap case  
  Swap case of selected region

### Compression operations
#### Compress
* aPLib  
  Compress selected region with aPLib compression library
* Brotli  
  Compress selected region with Brotli algorithm
* Bzip2  
  Compress selected region with bzip2 algorithm
* Gzip  
  Compress selected region with gzip format
* LZ4  
  Compress selected region with LZ4 algorithm
* LZF  
  Compress selected region with LZF algorithm
* LZJB  
  Compress selected region with LZJB algorithm
* LZMA  
  Compress selected region with LZMA algorithm
* LZNT1  
  Compress selected region with LZNT1 algorithm
* LZO  
  Compress selected region with LZO algorithm
* LZRW1/KH  
  Compress selected region with LZRW1/KH algorithm
* PPMd  
  Compress selected region with PPMd algorithm
* QuickLZ  
  Compress selected region with QuickLZ compression library
* Raw deflate  
  Compress selected region with Deflate algorithm without header and checksum (equivalent to gzdeflate() in PHP language)
* Snappy  
  Compress selected region with Snappy compression library
* XZ  
  Compress selected region with XZ format
* zlib (deflate)  
  Compress selected region with zlib (Deflate algorithm)
* Zstandard  
  Compress selected region with Zstandard algorithm

#### Decompress
* aPLib  
  Decompress selected region with aPLib compression library
* Brotli  
  Decompress selected region with Brotli algorithm
* Bzip2  
  Decompress selected region with bzip2 algorithm
* Gzip  
  Decompress selected gzip-compressed region
* LZ4  
  Decompress selected region with LZ4 algorithm
* LZF  
  Decompress selected region with LZF algorithm
* LZJB  
  Decompress selected region with LZJB algorithm
* LZMA  
  Decompress selected region with LZMA algorithm
* LZNT1  
  Decompress selected region with LZNT1 algorithm
* LZO  
  Decompress selected region with LZO algorithm
* LZRW1/KH  
  Decompress selected region with LZRW1/KH algorithm
* PPMd  
  Decompress selected region with PPMd algorithm
* QuickLZ  
  Decompress selected region with QuickLZ compression library
* Raw inflate  
  Decompress selected Deflate compressed region that does not have header and checksum (equivalent to gzinflate() in PHP language)
* Snappy  
  Decompress selected region with Snappy compression library
* XZ  
  Decompress selected XZ compressed region
* zlib (inflate)  
  Decompress selected region with zlib (Deflate algorithm)
* Zstandard  
  Decompress selected region with Zstandard algorithm

### Crypto operations
#### Decrypt
* AES  
  Decrypt selected region with AES
* ARC2  
  Decrypt selected region with ARC2 (Alleged RC2)
* ARC4  
  Decrypt selected region with ARC4 (Alleged RC4)
* Blowfish  
  Decrypt selected region with Blowfish
* ChaCha20  
  Decrypt selected region with ChaCha20
* DES  
  Decrypt selected region with DES
* Salsa20  
  Decrypt selected region with Salsa20
* TEA  
  Decrypt selected region with TEA (Tiny Encryption Algorithm)
* Triple DES  
  Decrypt selected region with Triple DES
* XTEA  
  Decrypt selected region with XTEA (eXtended Tiny Encryption Algorithm)

#### Encrypt
* AES  
  Encrypt selected region with AES
* ARC2  
  Encrypt selected region with ARC2 (Alleged RC2)
* ARC4  
  Encrypt selected region with ARC4 (Alleged RC4)
* Blowfish  
  Encrypt selected region with Blowfish
* ChaCha20  
  Encrypt selected region with ChaCha20
* DES  
  Encrypt selected region with DES
* Salsa20  
  Encrypt selected region with Salsa20
* TEA  
  Encrypt selected region with TEA (Tiny Encryption Algorithm)
* Triple DES  
  Encrypt selected region with Triple DES
* XTEA  
  Encrypt selected region with XTEA (eXtended Tiny Encryption Algorithm)

### Encoding operations
#### Decode
* Hex text to binary data  
  Convert hex text of selected region into binary
* Decimal text to binary data  
  Convert decimal text of selected region into binary data
* Octal text to binary data  
  Convert octal text of selected region into binary data
* Binary text to binary data  
  Convert binary text of selected region into binary data
* Custom base16 decode  
  Decode selected region with custom base16 table
* Custom base32 decode  
  Decode selected region with custom base32 table
* Custom base58 decode  
  Decode selected region with custom base58 table
* Custom base62 decode  
  Decode selected region with custom base62 table
* Custom base64 decode  
  Decode selected region with custom base64 table
* Custom base85 decode  
  Decode selected region with custom base85 table
* Protobuf decode  
  Decode selected region as Protocol Buffers serialized data without .proto files
* From quoted printable  
  Decode selected region as quoted printable text
* Unicode unescape  
  Unescape Unicode escape sequence of selected region
* URL decode  
  Decode selected region as percent-encoded text that is used by URL

#### Encode
* Binary data to hex text  
  Convert binary of selected region into hex text
* Binary data to decimal text  
  Convert binary of selected region into decimal text
* Binary data to octal text  
  Convert binary of selected region into octal text
* Binary data to binary text  
  Convert binary of selected region into binary text
* Custom base16 encode  
  Encode selected region with custom base16 table
* Custom base32 encode  
  Encode selected region with custom base32 table
* Custom base58 encode  
  Encode selected region with custom base58 table
* Custom base62 encode  
  Encode selected region with custom base62 table
* Custom base64 encode  
  Encode selected region with custom base64 table
* Custom base85 encode  
  Encode selected region with custom base85 table
* ROT13  
  Rotate alphabet characters in selected region by the specified amount (default: 13)
* To quoted printable  
  Encode selected region into quoted printable text
* Unicode escape  
  Escape Unicode characters of selected region
* URL encode  
  Encode selected region into percent-encoded text that is used by URL

### Misc operations
* Emulate code  
  Emulate selected region as an executable or shellcode with Qiling Framework (the whole file if not selected)
* File comparison  
  Compare contents of two files
* Hash values  
  Calculate MD5, SHA1, SHA256, ssdeep, imphash, impfuzzy hash values of selected region (the whole file if not selected)
* Send to (CLI)  
  Send selected region (the whole file if not selected) to other CLI program and get output
* Send to (GUI)  
  Send selected region (the whole file if not selected) to other GUI program

### Parsing operations
* Binwalk scan  
  Scan selected region (the whole file if not selected) to find embedded files
* Disassemble  
  Disassemble selected region (the whole file if not selected)
* File type  
  Identify file type of selected region (the whole file if not selected)
* Find PE file  
  Find PE file from selected region (the whole file if not selected) based on PE header information
* Parse file structure  
  Parse file structure of selected region (the whole file if not selected) with Kaitai Struct  
  Supported file formats: Gzip, RAR, ZIP, ELF, Mach-O, PE, MBR partition table, BMP, GIF, JPEG, PNG, Windows shortcut
* Show metadata  
  Show metadata of selected region (the whole file if not selected) with ExifTool
* Strings  
  Extract text strings from selected region (the whole file if not selected)

### Search operations
* Regex extraction  
  Search with regular expression in selected region (the whole file if not selected) and extract matched regions as single concatenated region
* Regex search  
  Search with regular expression in selected region (the whole file if not selected) and bookmark matched regions
* Replace  
  Search with regular expression in selected region (the whole file if not selected) and replace matched regions with specified data
* XOR hex search  
  Search XORed / bit-rotated data in selected region (the whole file if not selected)
* XOR text search  
  Search XORed / bit-rotated string in selected region (the whole file if not selected)
* YARA scan  
  Scan selected region (the whole file if not selected) with YARA.

### Visualization operations
* Bitmap view  
  Visualize the whole file as a bitmap representation
* Byte histogram  
  Show byte histogram of selected region (the whole file if not selected)
* Entropy graph  
  Show entropy graph of selected region\n(the whole file if not selected)

### XOR operations
* Decremental XOR  
  XOR selected region while decrementing XOR key
* Incremental XOR  
  XOR selected region while incrementing XOR key
* Null-preserving XOR  
  XOR selected region while skipping null bytes and XOR key itself
* XOR with another file  
  XOR selected region with the content of another file as XOR key
* XOR with next byte  
  XOR selected region while using next byte as XOR key
* XOR with next byte (reverse)  
  Reverse operation of "XOR with next byte" plugin
* Guess multibyte XOR keys  
  Guess multibyte XOR keys from selected region (the whole file if not selected) based on revealed keys that are XORed with 0x00
* Visual encrypt  
  Encode selected region with visual encrypt algorithm that is used by Zeus trojan
* Visual decrypt  
  Decode selected region with visual decrypt algorithm that is used by Zeus trojan

## Author
Nobutaka Mantani (Twitter: @nmantani)

## License
The BSD 2-Clause License (http://opensource.org/licenses/bsd-license.php)

本源码包内暂不包含可直接显示的源代码文件,请下载源码包。