├── .gitignore ├── .gitmodules ├── CHANGELOG ├── LICENSE ├── README.md ├── README_zh.md ├── VERSION ├── build.py ├── config └── apk_shell.json ├── factory.py ├── images ├── app_checker.png ├── app_checker_zh.png ├── code_en.png ├── code_zh.png ├── comment_en.png ├── comment_zh.png ├── disasm_en.png ├── disasm_zh.png ├── dll.png ├── encrypt_en.png ├── encrypt_zh.png ├── format_en.png ├── format_zh.png ├── hash_en.png ├── hash_zh.png ├── pe_checker.png ├── pe_checker_zh.png ├── pyqt-wiki1.png ├── pyqt-wiki2.png ├── pyqt-wiki3.png └── pyqt-wiki4.png ├── main.py ├── main.ts ├── publish.py ├── requirements.txt ├── run.bat ├── run.sh ├── setup.bat ├── setup.sh ├── ui ├── about_window.py ├── about_window.ui ├── appchecker_window.py ├── appchecker_window.ts ├── appchecker_window.ui ├── asm_window.py ├── asm_window.ts ├── asm_window.ui ├── code_window.py ├── code_window.ts ├── code_window.ui ├── comment_window.py ├── comment_window.ts ├── comment_window.ui ├── dialog_window.py ├── dllinject_window.py ├── encrypt_window.py ├── encrypt_window.ts ├── encrypt_window.ui ├── format_window.py ├── format_window.ts ├── format_window.ui ├── hash_window.py ├── hash_window.ts ├── hash_window.ui ├── main_window.py ├── main_window.ts ├── main_window.ui ├── pechecker_window.py ├── pechecker_window.ts ├── pechecker_window.ui └── resources │ ├── html │ ├── about.html │ ├── apk_info.html │ ├── code.html │ └── google-code-prettify │ │ ├── lang-Splus.js │ │ ├── lang-aea.js │ │ ├── lang-agc.js │ │ ├── lang-apollo.js │ │ ├── lang-basic.js │ │ ├── lang-cbm.js │ │ ├── lang-cl.js │ │ ├── lang-clj.js │ │ ├── lang-css.js │ │ ├── lang-dart.js │ │ ├── lang-el.js │ │ ├── lang-erl.js │ │ ├── lang-erlang.js │ │ ├── lang-ex.js │ │ ├── lang-exs.js │ │ ├── lang-fs.js │ │ ├── lang-go.js │ │ ├── lang-hs.js │ │ ├── lang-kotlin.js │ │ ├── lang-lasso.js │ │ ├── lang-lassoscript.js │ │ ├── lang-latex.js │ │ ├── lang-lgt.js │ │ ├── lang-lisp.js │ │ ├── lang-ll.js │ │ ├── lang-llvm.js │ │ ├── lang-logtalk.js │ │ ├── lang-ls.js │ │ ├── lang-lsp.js │ │ ├── lang-lua.js │ │ ├── lang-matlab.js │ │ ├── lang-ml.js │ │ ├── lang-mumps.js │ │ ├── lang-n.js │ │ ├── lang-nemerle.js │ │ ├── lang-pascal.js │ │ ├── lang-proto.js │ │ ├── lang-r.js │ │ ├── lang-rd.js │ │ ├── lang-rkt.js │ │ ├── lang-rust.js │ │ ├── lang-s.js │ │ ├── lang-scala.js │ │ ├── lang-scm.js │ │ ├── lang-sql.js │ │ ├── lang-ss.js │ │ ├── lang-swift.js │ │ ├── lang-tcl.js │ │ ├── lang-tex.js │ │ ├── lang-vb.js │ │ ├── lang-vbs.js │ │ ├── lang-vhd.js │ │ ├── lang-vhdl.js │ │ ├── lang-wiki.js │ │ ├── lang-xq.js │ │ ├── lang-xquery.js │ │ ├── lang-yaml.js │ │ ├── lang-yml.js │ │ ├── prettify.css │ │ ├── prettify.js │ │ ├── run_prettify.js │ │ └── skins │ │ ├── desert.css │ │ ├── doxy.css │ │ ├── sons-of-obsidian.css │ │ └── sunburst.css │ ├── language │ ├── appchecker_window.qm │ ├── asm_window.qm │ ├── code_window.qm │ ├── comment_window.qm │ ├── dialog_window.qm │ ├── encrypt_window.qm │ ├── format_window.qm │ ├── hash_window.qm │ ├── main.qm │ ├── main_window.qm │ └── pechecker_window.qm │ └── pictures │ ├── android.png │ ├── apkcombo.png │ ├── apkpure.png │ ├── asm.png │ ├── baidu.png │ ├── blue_menu.png │ ├── code.png │ ├── comment.png │ ├── country │ ├── china.png │ ├── italy.png │ ├── japan.png │ ├── south-korea.png │ └── spain.png │ ├── encrypt.png │ ├── google-play.png │ ├── google.png │ ├── hacker.ico │ ├── hacker.png │ ├── json-file.png │ ├── loading.gif │ ├── md5.png │ ├── syringe.ico │ ├── syringe.png │ ├── welcome.png │ ├── windows.png │ └── xml.png └── util ├── __init__.py ├── asm.py ├── code_trans.py ├── crypt.py ├── highlight.py ├── log.py ├── map.py └── ui_helper.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | ui/__pycache__/ 3 | util/__pycache__/ 4 | build/ 5 | dist/ 6 | main.spec 7 | tmp/ 8 | venv/ 9 | .DS_Store -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "opensource/axmlprinter"] 2 | path = opensource/axmlprinter 3 | url = https://github.com/liyansong2018/axmlprinter.git 4 | [submodule "opensource/python_dll_injector"] 5 | path = opensource/python_dll_injector 6 | url = https://github.com/liyansong2018/python-dll-injector.git 7 | [submodule "opensource/QCodeEditor"] 8 | path = opensource/QCodeEditor 9 | url = https://github.com/liyansong2018/QCodeEditor.git 10 | -------------------------------------------------------------------------------- /CHANGELOG: -------------------------------------------------------------------------------- 1 | [2024-11-20] 2 | ReverseWidget 1.12 3 | - Add the function of converting various data formats to each other 4 | - Unify icon image style 5 | - Upgrade the version of pyinstaller to streamline the program packaging process 6 | 7 | [2023-07-12] 8 | ReverseWidget 1.11 9 | - To correctly calculate the offset of the jump instruction, add the base address of the assembly code 10 | - Add backup translation routes for Baidu Translation to prevent denial of service caused by API resource depletion 11 | - Fix other unknown errors 12 | - Known issues: Using VPN may cause application crash 13 | 14 | [2023-06-02] 15 | ReverseWidget 1.10 16 | - Use QT native UI to increase ReverseWidget compatibility across different operating systems 17 | - Add function to compress json text on format module 18 | - Fix language translation issues 19 | - Fix word concatenation issues caused by line breaks and support for multiple paragraph translations 20 | - Fix other unknown errors 21 | 22 | [2023-03-11] 23 | ReverseWidget 1.9 24 | - Add code comment format module for deleting '#&//' in code comment or '\n' 25 | - Add baidu-fanyi api to translate code comment or paper pdf 26 | - Flat some window ui for more modern operating system such as Win11 27 | - Singleton: only one child window is allowed at the same time 28 | - Fix issue about incomplete translation because of singleton 29 | - Fix unknown errors 30 | 31 | [2023-03-02] 32 | ReverseWidget 1.8 33 | - Add dll injector module for Windows 34 | - Correct use of the open source software that has been patched 35 | - Fix asm errors caused by Chinese key 36 | 37 | [2023-02-25] 38 | ReverseWidget 1.7 39 | - Roll back to an older version(5.15.2) of pyqt5 to fix crash caused by QCodeEditor 40 | - Add highlight for all kinds of code 41 | - Greatly optimize the UI of appcheker and add line numbers to the code window 42 | - Fix unknown errors 43 | 44 | [2023-02-19] 45 | ReverseWidget 1.6 46 | - Add function to compute CRC of file 47 | - Add python file comments according 'to Google Python Style Guide' 48 | - Add build scripts 49 | - Fix the size of some windows and beautify the UI 50 | 51 | [2023-02-15] 52 | ReverseWidget 1.5 53 | - Add Windows pe checker 54 | - Add Android app checker 55 | - Set script for common language path 56 | - Optimize resource path in UI created by PyQt5 UI code generator 57 | 58 | [2023-02-10] 59 | ReverseWidget 1.4 60 | - Beautify the main UI 61 | - Add UI of `format json&xml` module 62 | 63 | [2023-01-20] 64 | ReverseWidget 1.3 65 | - Beautify the main UI of the application 66 | - Add UI of `hash` module 67 | - Test the compatibility of Reverse Widget under Linux and Windows 68 | 69 | [2023-01-18] 70 | ReverseWidget 1.2 71 | - Allow users to customize fonts 72 | - Add UI of `about` module 73 | 74 | [2021-10-10] 75 | ReverseWidget 1.1 76 | - Fix bugs in mips little endian 77 | - Set the default options 78 | - Add binary base address 79 | 80 | [2021-06-25] 81 | ReverseWidget 1.0 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Yansong Li 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Reverse Widget 2 | 3 | [![linux](https://img.shields.io/badge/ubuntu-100%25-blue?style=flat-square&logo=ubuntu&logoColor=FFFFFF)](#) 4 | [![macOS](https://img.shields.io/badge/macOS-10.15-blue?style=flat-square&logo=apple)](#) 5 | [![windows](https://img.shields.io/badge/windows-10|11-blue?style=flat-square&logo=windows)](#) 6 | [![python](https://img.shields.io/badge/python-<=v3.9-blue?style=flat-square&logo=python&logoColor=FFFFFF)](https://www.python.org/downloads/release/python-380/) 7 | [![repo-size](https://img.shields.io/github/repo-size/liyansong2018/reversewidget?&style=flat-square&logo=qt&logoColor=FFFFFF)](#) 8 | [![platform](https://img.shields.io/github/downloads/liyansong2018/reversewidget/total?color=blue&logo=github&style=flat-square)](https://github.com/liyansong2018/ReverseWidget/releases) 9 | 10 | 👉 [简体中文](https://github.com/liyansong2018/ReverseWidget/blob/master/README_zh.md) 11 | 12 | Reverse Widget is a lightweight GUI Software that implements some typical block cipher, coding, hashing, multi-architecture assemble/disassembly, PE/AndroidAPP shell checker and dll injector. Highlight Features: 13 | 14 | - Some Typical Encryption Algorithms: AES, DES, 3DES, RC2 15 | - Useful Coding: URL, HTML, Base64, Unicode, UTF-8 16 | - Multi-architecture Assembler and Disassembler: x86, ARM, mips, Sparc, PowerPC 17 | - Beautify code comment 18 | - Beautify json or xml file 19 | - Common Hash: MD5, SHA1, SHA224, SHA256, SHA384, SHA512, CRC32 20 | - Android App(only for Chinese 梆梆安全/爱加密/360加固保/通付盾/阿里/腾讯应用加固等) checker 21 | - Windows PE checker like `PEID` 22 | - Windows DLL Injector 23 | 24 | ## Detailed Description 25 | 26 | ### Encrypt/Decrypt 27 | 28 | - Support input and output data for String, Hexadecimal and Base64 encoding String 29 | - Support most encryption modes, including ECB, CBC, CFB, OFB, CTR, OPENPGP, OPENPGP, CCM, EAX, SIV, GCM, OCB 30 | - Support three kinds of padding: pkcs7, iso7816 and ansix923 31 | 32 | ![encrypt_en](images/encrypt_en.png) 33 | 34 | 35 | 36 | ### Encode/Decode 37 | 38 | - Support multiple hash algorithms,such as URL, HTML, Base64, Unicode, and UTF-8 39 | - Not only includes the hash calculation of ordinary strings, but also the hash of files, which can quickly calculate the hash value of large files 40 | 41 | ![code_en](images/code_en.png) 42 | 43 | 44 | 45 | ### Assemble/Disassemble 46 | 47 | Support multiple architectures (x86, ARM, mips, Sparc, PowerPC), word length (16/32/64bit), big and little endian. 48 | 49 | ![disasm_en](images/disasm_en.png) 50 | 51 | The input format supported by assembly: Intel syntax format assembly instructions, and AT&T syntax format assembly instructions (x86) 52 | 53 | - `add x8, x8, x20` 54 | - `add %ecx, %eax` (AT&T x86) 55 | 56 | Input format supported by disassembly: hexadecimal or printable hexadecimal 57 | 58 | - `08 01 14 8b` 59 | - `0801148b` 60 | - `\x08\x01\x14\x8b` 61 | 62 | Limitations 63 | 64 | - X86 only supports little endian (limited by upstream keystone / capstone engine) 65 | 66 | - Arm64 only supports little endian (currently aarch64 architecture only has little endian) 67 | 68 | - Powerpc32 only supports big endian (currently powerpc32 architecture only has big endian) 69 | 70 | 71 | 72 | ### Format Comment 73 | 74 | Beautify code comment and splice it into a complete sentence. (e.g. `# // \n`) 75 | 76 | ![comment_en](images/comment_en.png) 77 | 78 | 79 | 80 | ### Beautify json/xml 81 | 82 | Json and xml are our common http resource files, which are not well displayed in Burpsuite Community Edition. We can easily format them in ReverseWidget. 83 | 84 | ![format_en](images/format_en.png) 85 | 86 | 87 | 88 | ### File Hash 89 | 90 | quickly calculate the hash value of large files. 91 | 92 | ![hash_en](images/hash_en.png) 93 | 94 | 95 | 96 | ### APP checker 97 | 98 | Check Windows PE file like `PEID` 99 | 100 | ![pe_checker](images/pe_checker.png) 101 | 102 | Check Android APP shell 103 | 104 | ![app_checker](images/app_checker.png) 105 | 106 | 107 | 108 | ### DLL injector 109 | 110 | DLL injector without back door: Use python module to call win32 without relying on third-party libraries. 111 | 112 | ![dll](images/dll.png) 113 | 114 | 115 | 116 | ## Compilation & Docs 117 | 118 | Clone repository 119 | ```shell 120 | git clone --recursive https://github.com/liyansong2018/ReverseWidget.git 121 | ``` 122 | 123 | ### Windows 124 | 125 | 1. run `setup.bat` or `pip install -r requirements.txt` 126 | 2. run `run.bat` 127 | 128 | ### Linux & macOS 129 | 130 | 1. run `setup.sh` or `pip install -r requirements.txt` 131 | 2. run `run.sh` 132 | 133 | ### Ubuntu 20.04 134 | ```shell 135 | apt-get install libxcb-xinerama0 136 | export PATH=$PATH:/home/tom/.local/bin/ 137 | ``` 138 | 139 | ### Publish binary 140 | ```shell 141 | python publish.py debug 142 | python publish.py release 143 | ``` 144 | 145 | If you don't want to install the dependent package, you can also download the [compressed package](https://github.com/liyansong2018/ReverseWidget/releases) that we have already packed. 146 | Of course, you can also see [WIKI](https://github.com/liyansong2018/ReverseWidget/wiki/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA) for how to integrate development environment. 147 | 148 | ## Convenient Tool 149 | 150 | **If you are a lucky dog and Windows user**, you can use the out-of-the-box version directly. See [Releases](https://github.com/liyansong2018/ReverseWidget/releases). This is a software written in my spare time. There may be some bugs which will be improved. Please understand. -------------------------------------------------------------------------------- /README_zh.md: -------------------------------------------------------------------------------- 1 | # Reverse Widget 2 | 3 | [![linux](https://img.shields.io/badge/ubuntu-100%25-blue?style=flat-square&logo=ubuntu&logoColor=FFFFFF)](#) 4 | [![macOS](https://img.shields.io/badge/macOS-10.15-blue?style=flat-square&logo=apple)](#) 5 | [![windows](https://img.shields.io/badge/windows-10|11-blue?style=flat-square&logo=windows)](#) 6 | [![python](https://img.shields.io/badge/python-<=v3.9-blue?style=flat-square&logo=python&logoColor=FFFFFF)](https://www.python.org/downloads/release/python-380/) 7 | [![repo-size](https://img.shields.io/github/repo-size/liyansong2018/reversewidget?&style=flat-square&logo=qt&logoColor=FFFFFF)](#) 8 | [![platform](https://img.shields.io/github/downloads/liyansong2018/reversewidget/total?color=blue&logo=github&style=flat-square)](https://github.com/liyansong2018/ReverseWidget/releases) 9 | 10 | Reverse Wigdet 是一组常用的逆向小工具,包括加解密、编解码、哈希、支持多种架构的汇编和反汇编引擎、Andoid 和Windows 应用加固检测以及 DLL 注入。具有如下特性 11 | - 多个分组加密和解密算法:AES, DES, 3DES, RC2 12 | - 编码和解码:URL, HTML, Base64, Unicode, UTF-8 13 | - 多种架构的汇编和反汇编器:x86, ARM, mips, Sparc, PowerPC 14 | - 格式化代码注释 15 | - 格式化 json 和 xml 文件 16 | - 文件哈希:MD5, SHA1, SHA224, SHA256, SHA384, SHA512, CRC32 17 | - Android APP加固检测,支持:梆梆安全/爱加密/360加固保/通付盾/阿里/腾讯应用加固等 18 | - Windows PE加壳检测 19 | - DLL注入 20 | 21 | 22 | 23 | ## FAQ 24 | 25 | **已有一些在线网站实现了加解密、编解码以及哈希,我们为什么还要重复造轮子?** 26 | 27 | > 有时候,涉及到加解密的数据可能比较敏感,在线网站可能会导致信息泄露。Reverse Widget 完全使用 Python 实现,**完全本地化**,可保证敏感数据的机密性。 28 | 29 | **汇编和反汇编引擎适用哪些场合?** 30 | 31 | > IDA/Ghidra 等工具完美的实现了完美的反汇编,但是对于汇编,可能要借助一些插件,而且它们主要针对整个二进制,而非偏好段指令。Reverse Widget 实现了多架构的汇编和反汇编器,对于二进制指令的修改十分便利。 32 | 33 | **App 加固检测有什么特色?** 34 | 35 | > Reverse Widget 支持检测 Android 常见的加固方案,当前也并不完善,后续会继续扩充一些功能。但是可以帮助我们在未反编译情况下,快速识别常见的 APP 壳。 36 | 37 | **DLL 注入与其他工具相比有什么特点?** 38 | 39 | > DLL 注入的工具有很多,但是有一些会存在病毒和后门,我们利用 win32 原生 API,在不依赖其他模块的情况下,编写了 DLL 注入器。如果你想体验各种各样的 DLL 注入方式,如 manual map,此工具可能并不适合你。如果你只是单纯的想往某些进程注入 DLL,那么 Reverse Widget 将会是你不二的选择! 40 | 41 | 42 | 43 | ## 细节性描述 44 | 45 | ### 加解密 46 | 47 | - 支持输入和输出的数据为字符串、十六进制和 Base64 编码 48 | - 支持绝大部分的加密模式,包括 ECB, CBC, CFB, OFB, CTR, OPENPGP, OPENPGP, CCM, EAX, SIV, GCM, OCB 49 | - 支持三种填充模式:pkcs7, iso7816 和 ansix923 50 | 51 | ![encrypt_zh](images/encrypt_zh.png) 52 | 53 | 54 | 55 | ### 编解码 56 | 57 | 支持多种编解码 58 | 59 | ![code_zh](images/code_zh.png) 60 | 61 | 62 | 63 | ### 汇编和反汇编 64 | 65 | 支持多种架构(x86, ARM, mips, Sparc, PowerPC)、字长(16/32/64bit)、大小端 66 | 67 | ![disasm_zh](images/disasm_zh.png) 68 | 69 | 汇编支持的输入格式:Intel 语法格式的汇编指令,也包括 AT&T 语法格式的汇编指令( x86) 70 | - `add x8, x8, x20` 71 | - `add %ecx, %eax` (AT&T x86) 72 | 73 | 反汇编支持的输入格式:十六进制或者可打印的十六进制 74 | 75 | - `08 01 14 8b` 76 | - `0801148b` 77 | - `\x08\x01\x14\x8b` 78 | 79 | 局限性 80 | 81 | - x86 只支持小端模式(受限于上游的 Keystone/Capstone 引擎) 82 | - ARM64 只有小端模式(当前 AArch64 架构本身只有小端 ) 83 | - PowerPC32 只有大端模式(当前 PowerPC32 架构本身只有小端) 84 | 85 | 86 | 87 | ### 格式化翻译 88 | 89 | 此模块用于快速格式化代码中的注释,论文中的换行,方便翻译。( `# // \n`) 90 | 91 | ![comment_en](images/comment_zh.png) 92 | 93 | 94 | 95 | ### 格式化 json 96 | 97 | 格式化json或者xml文件,如下图所示,还可以进行json和xml的互转。如果我们使用 Burpsuite 社区版抓包,会发现常见的 xml 以及 json 文件并不能很好的展示,因此 ReverseWidget 新增了格式化资源文件的功能,方便我们查看此类文件。 98 | 99 | ![format_en](images/format_zh.png) 100 | 101 | 102 | 103 | ### 文件哈希 104 | 105 | 可快速计算大文件的哈希值。 106 | 107 | ![hash_file_en](images/hash_zh.png) 108 | 109 | 110 | 111 | ### 应用加固检测器 112 | 113 | Windows PE二进制程序检测。 114 | 115 | ![pe_checker](images/pe_checker_zh.png) 116 | 117 | 118 | 119 | Android应用加固检测 120 | 121 | ![app_checker](images/app_checker_zh.png) 122 | 123 | 124 | 125 | ### DLL注入 126 | 127 | 无毒版本的 DLL 注入,使用 python 模块调用 win32,不依赖三方库。 128 | 129 | ![dll](images/dll.png) 130 | 131 | 132 | 133 | ## 如何使用 134 | 135 | 克隆项目源码 136 | ```shell 137 | git clone --recursive https://github.com/liyansong2018/ReverseWidget.git 138 | ``` 139 | 140 | ### Windows 141 | 142 | 1. 运行 `setup.bat` 或者 `pip install -r requirements.txt`,安装基本库 143 | 2. 运行程序 `run.bat` 144 | 145 | ### Linux/macOS 146 | 147 | 1. 运行 `setup.sh` 或者 `pip install -r requirements.txt`,安装基本库 148 | 2. 运行程序 `run.sh` 149 | 150 | ### Ubuntu 20.04 151 | 152 | ```shell 153 | # Ubuntu需要安装依赖和设置环境变量 154 | apt-get install libxcb-xinerama0 155 | export PATH=$PATH:/home/tom/.local/bin/ 156 | ``` 157 | 158 | ### 如何将项目打包成可执行程序 159 | ```shell 160 | python publish.py debug 161 | python publish.py release 162 | ``` 163 | 164 | 如果你不想安装依赖包,你也可以直接下载我们已经编译好的[压缩包](https://github.com/liyansong2018/ReverseWidget/releases)。当然,如果你想修改源码,新增功能,也可以查看我们的环境搭建指导 → [WIKI](https://github.com/liyansong2018/ReverseWidget/wiki/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA)。 165 | 166 | 167 | ## 开箱即用 168 | 如果你是幸运的Windows用户,那么可以直接使用我们已经精简好的`exe`可执行程序。请在此处下载 [Releases](https://github.com/liyansong2018/ReverseWidget/releases) 可用的 Windows 可执行程序。这是业余时间编写的一个软件,可能存在一些Bug,正在不断完善中,请谅解。 169 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 1.12 2 | 2024-11-20 -------------------------------------------------------------------------------- /build.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2021 Yansong Li 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | """Modify resource path in `ui` file created by: PyQt5 UI code generator 5.15.4. 23 | 24 | Use it after we modify `ui` file by PyQt Designer. 25 | """ 26 | """修改PyQt Designer自动生成的Python文件里的资源路径,以及统一语言文件的路径。 27 | 28 | 在每次修改UI后运行。 29 | """ 30 | 31 | # -*- coding: utf-8 -*- 32 | import shutil 33 | import os 34 | 35 | def add_pic_path(file): 36 | """ 37 | Modify python file from QT Designer for adding complete resources path 38 | :param file: `.py` converted by `.ui` 39 | :return: null 40 | """ 41 | file_data = '' 42 | need_update = False 43 | try: 44 | with open(file, 'r', encoding='utf-8') as fp: 45 | for line in fp: 46 | if 'QPixmap' in line: 47 | if 'ui/resources/pictures' not in line: 48 | need_update = True 49 | replaced = line.replace('resources/pictures', 'ui/resources/pictures') 50 | print('[+] ' + replaced.strip()) 51 | file_data += replaced 52 | else: 53 | file_data += line 54 | else: 55 | file_data += line 56 | if need_update: 57 | with open(file, 'w', encoding='utf-8') as fp: 58 | fp.write(file_data) 59 | except Exception as e: 60 | print(e) 61 | 62 | 63 | def mov_lang(src, dst): 64 | """ 65 | Move language file to resources directory 66 | :param src: source path 67 | :param dst: destination path 68 | :return: null 69 | """ 70 | for file in os.listdir(src): 71 | if '.qm' in file: 72 | print("[+] " + file) 73 | if os.path.isfile(dst + file): 74 | os.remove(dst + file) 75 | shutil.move(src + file, dst) 76 | 77 | 78 | # Modify pic path 79 | for file in os.listdir(os.path.join(os.getcwd(), 'ui')): 80 | if file.endswith('.py'): 81 | add_pic_path('ui/%s' % file) 82 | 83 | # Move language file 84 | src = os.getcwd() + '/ui/' 85 | dst = src + 'resources/language/' 86 | mov_lang(src, dst) 87 | 88 | src = os.getcwd() + '/' 89 | dst = src + '/ui/resources/language/' 90 | mov_lang(src, dst) 91 | -------------------------------------------------------------------------------- /config/apk_shell.json: -------------------------------------------------------------------------------- 1 | { 2 | "ijiami": { 3 | "data": [ 4 | "libexec.so", 5 | "libexecmain.so", 6 | "ijiami.dat" 7 | ], 8 | "manufacturer": "爱加密", 9 | "url": "http://www.ijiami.cn/" 10 | }, 11 | 12 | "junhong": { 13 | "data": [ 14 | "libchaosvmp.so", 15 | "libddog.so", 16 | "libfdog.so" 17 | ], 18 | "manufacturer": "娜迦", 19 | "url": "https://www.nagain.com/" 20 | }, 21 | 22 | "bangcle": { 23 | "data": [ 24 | "libsecexe.so", 25 | "libsecmain.so" 26 | ], 27 | "manufacturer": "梆梆安全", 28 | "url": "https://dev.bangcle.com/" 29 | }, 30 | 31 | "bangcle-helper": { 32 | "data": [ 33 | "libDexHelper.so", 34 | "libDexHelper-x86.so" 35 | ], 36 | "manufacturer": "梆梆安全-企业版", 37 | "url": "https://dev.bangcle.com/" 38 | }, 39 | 40 | "360": { 41 | "data": [ 42 | "libprotectClass.so", 43 | "libjiagu_art.so", 44 | "libjiagu_x86.so" 45 | ], 46 | "manufacturer": "360加固保", 47 | "url": "https://jiagu.360.cn/" 48 | }, 49 | 50 | "tongfudun": { 51 | "data": [ 52 | "libegis.so", 53 | "libNSaferOnly.so" 54 | ], 55 | "manufacturer": "通付盾", 56 | "url": "https://cloud.tongfudun.com/devcenterdoc/securityCompliance/4-2-1.html" 57 | }, 58 | 59 | "qinwang": { 60 | "data": [ 61 | "libnqshield.so" 62 | ], 63 | "manufacturer": "网秦安全盾", 64 | "url": "疑似生命周期结束" 65 | }, 66 | 67 | "baidu": { 68 | "data": [ 69 | "libbaiduprotect.so" 70 | ], 71 | "manufacturer": "百度应用加固", 72 | "url": "https://apkprotect.baidu.com/" 73 | }, 74 | 75 | "ali": { 76 | "data": [ 77 | "aliprotect.dat", 78 | "libsgmain.so", 79 | "libsgsecuritybody.so" 80 | ], 81 | "manufacturer": "阿里聚安全", 82 | "url": "https://jaq-doc.alibaba.com/docs/doc.htm?treeId=243&articleId=105508&docType=1" 83 | }, 84 | 85 | "ten": { 86 | "data": [ 87 | "libtup.so", 88 | "libexec.so", 89 | "libshell.so" 90 | ], 91 | "manufacturer": "腾讯应用加固", 92 | "url": "https://wetest.qq.com/products/application-reinforcement" 93 | }, 94 | 95 | "ten1": { 96 | "data": [ 97 | "libtosprotection.armeabi.so", 98 | "libtosprotection.armeabi-v7a.so", 99 | "libtosprotection.x86.so" 100 | ], 101 | "manufacturer": "腾讯御安全", 102 | "url": "疑似生命周期结束" 103 | }, 104 | 105 | "dun163": { 106 | "data": [ 107 | "libnesec.so", 108 | "libAPKProtect.so" 109 | ], 110 | "manufacturer": "网易易盾", 111 | "url": "https://dun.163.com/product/android-reinforce?from=baiduP_YYJG_CP3143&sdclkid=ALAR152NxSDibsgpA5e" 112 | }, 113 | 114 | "kiwisec": { 115 | "data": [ 116 | "libkwscmm.so", 117 | "libkwscr.so", 118 | "libkwslinker.so" 119 | ], 120 | "manufacturer": "几维安全", 121 | "url": "https://www.kiwisec.com/" 122 | }, 123 | 124 | "dingxiang": { 125 | "data": [ 126 | "libx3g.so" 127 | ], 128 | "manufacturer": "顶象技术", 129 | "url": "https://www.dingxiang-inc.com/business/android?utm_source=baidu1sem&utm_medium=%E5%93%81%E7%89%8C%E8%AF%8D&utm_campaign=%E5%93%81%E7%89%8C%E8%AF%8D-%E5%8A%A0%E5%9B%BA&utm_term=%E9%A1%B6%E8%B1%A1%E5%8A%A0%E5%9B%BA&e_matchtype=2&e_keywordid=317912325449&bd_vid=8731357008297133070" 130 | }, 131 | 132 | "dingxiang": { 133 | "data": [ 134 | "libmogosec_sodecrypt.so" 135 | ], 136 | "manufacturer": "魔固云(中国移动加固)", 137 | "url": "疑似生命周期结束-中移杭研魔固云应用安全检测平台" 138 | } 139 | } -------------------------------------------------------------------------------- /factory.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : factory.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | 8 | @Modify Time @Author @Version @Desciption 9 | ------------ ------- -------- ----------- 10 | 2021/6/25 21:52 liyansong 1.0 None 11 | ''' 12 | 13 | import sys 14 | from PyQt5 import QtCore, QtGui, QtWidgets 15 | 16 | 17 | class Demo(QtWidgets.QWidget): 18 | def __init__(self): 19 | super(Demo, self).__init__() 20 | self.button = QtWidgets.QPushButton() 21 | self.label = QtWidgets.QLabel(alignment=QtCore.Qt.AlignCenter) 22 | 23 | self.combo = QtWidgets.QComboBox(self) 24 | self.combo.currentIndexChanged.connect(self.change_func) 25 | 26 | self.trans = QtCore.QTranslator(self) 27 | 28 | self.v_layout = QtWidgets.QVBoxLayout(self) 29 | self.v_layout.addWidget(self.combo) 30 | self.v_layout.addWidget(self.button) 31 | self.v_layout.addWidget(self.label) 32 | 33 | options = ([('English', ''), ('français', 'eng-fr'), ('中文', 'eng-chs'), ]) 34 | 35 | for i, (text, lang) in enumerate(options): 36 | self.combo.addItem(text) 37 | self.combo.setItemData(i, lang) 38 | self.retranslateUi() 39 | 40 | @QtCore.pyqtSlot(int) 41 | def change_func(self, index): 42 | data = self.combo.itemData(index) 43 | if data: 44 | self.trans.load(data) 45 | QtWidgets.QApplication.instance().installTranslator(self.trans) 46 | else: 47 | QtWidgets.QApplication.instance().removeTranslator(self.trans) 48 | 49 | def changeEvent(self, event): 50 | if event.type() == QtCore.QEvent.LanguageChange: 51 | self.retranslateUi() 52 | super(Demo, self).changeEvent(event) 53 | 54 | def retranslateUi(self): 55 | self.button.setText(QtWidgets.QApplication.translate('Demo', 'Start')) 56 | self.label.setText(QtWidgets.QApplication.translate('Demo', 'Hello, World')) 57 | 58 | 59 | if __name__ == '__main__': 60 | app = QtWidgets.QApplication(sys.argv) 61 | demo = Demo() 62 | demo.show() 63 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /images/app_checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/app_checker.png -------------------------------------------------------------------------------- /images/app_checker_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/app_checker_zh.png -------------------------------------------------------------------------------- /images/code_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/code_en.png -------------------------------------------------------------------------------- /images/code_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/code_zh.png -------------------------------------------------------------------------------- /images/comment_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/comment_en.png -------------------------------------------------------------------------------- /images/comment_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/comment_zh.png -------------------------------------------------------------------------------- /images/disasm_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/disasm_en.png -------------------------------------------------------------------------------- /images/disasm_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/disasm_zh.png -------------------------------------------------------------------------------- /images/dll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/dll.png -------------------------------------------------------------------------------- /images/encrypt_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/encrypt_en.png -------------------------------------------------------------------------------- /images/encrypt_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/encrypt_zh.png -------------------------------------------------------------------------------- /images/format_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/format_en.png -------------------------------------------------------------------------------- /images/format_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/format_zh.png -------------------------------------------------------------------------------- /images/hash_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/hash_en.png -------------------------------------------------------------------------------- /images/hash_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/hash_zh.png -------------------------------------------------------------------------------- /images/pe_checker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pe_checker.png -------------------------------------------------------------------------------- /images/pe_checker_zh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pe_checker_zh.png -------------------------------------------------------------------------------- /images/pyqt-wiki1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pyqt-wiki1.png -------------------------------------------------------------------------------- /images/pyqt-wiki2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pyqt-wiki2.png -------------------------------------------------------------------------------- /images/pyqt-wiki3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pyqt-wiki3.png -------------------------------------------------------------------------------- /images/pyqt-wiki4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/images/pyqt-wiki4.png -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | AppCheckerUi 5 | 6 | 7 | No valid information found! 8 | 未发现有效的加壳信息! 9 | 10 | 11 | 12 | CommentUi 13 | 14 | 15 | Free API resources have been exhausted, switching to alternate routes is slow! Please be patient and wait... 16 | 免费API翻译资源已耗尽,使用JS计算签名,速度较慢,请耐心等待... 17 | 18 | 19 | 20 | MainUi 21 | 22 | 23 | Encrypt 24 | 加密 25 | 26 | 27 | 28 | Decrypt 29 | 解密 30 | 31 | 32 | 33 | Encode 34 | 编码 35 | 36 | 37 | 38 | Decode 39 | 解码 40 | 41 | 42 | 43 | Assemble 44 | 汇编 45 | 46 | 47 | 48 | Disassemble 49 | 反汇编 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyqt5==5.15.2 2 | keystone-engine==0.9.2 3 | capstone==5.0.0 4 | PyCryptodome==3.17 5 | lxml==4.9.2 6 | peid==1.2.7 7 | xmltodict==0.13.0 8 | baidu-sign 9 | requests 10 | pyinstaller==6.3.0 -------------------------------------------------------------------------------- /run.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | if "%1"=="h" goto begin 3 | start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 4 | :begin 5 | python main.py -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | python3 main.py -------------------------------------------------------------------------------- /setup.bat: -------------------------------------------------------------------------------- 1 | pip install pyqt5==5.15.2 keystone-engine==0.9.2 capstone==5.0.0 -i https://pypi.mirrors.ustc.edu.cn/simple 2 | pip install PyCryptodome==3.17 lxml==4.9.2 peid==1.2.7 xmltodict==0.13.0 3 | pip install baidu-sign requests pyinstaller==6.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | pip3 install pyqt5==5.15.2 keystone-engine==0.9.2 capstone==5.0.0 -i https://pypi.mirrors.ustc.edu.cn/simple 2 | pip3 install PyCryptodome==3.17 lxml==4.9.2 peid==1.2.7 xmltodict==0.13.0 -i https://pypi.mirrors.ustc.edu.cn/simple 3 | pip3 install baidu-sign requests pyinstaller==6.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple -------------------------------------------------------------------------------- /ui/about_window.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'about_window.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.2 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_AboutWindow(object): 15 | def setupUi(self, AboutWindow): 16 | AboutWindow.setObjectName("AboutWindow") 17 | AboutWindow.resize(515, 367) 18 | AboutWindow.setMinimumSize(QtCore.QSize(515, 367)) 19 | AboutWindow.setMaximumSize(QtCore.QSize(16777215, 16777215)) 20 | font = QtGui.QFont() 21 | font.setFamily("微软雅黑") 22 | AboutWindow.setFont(font) 23 | icon = QtGui.QIcon() 24 | icon.addPixmap(QtGui.QPixmap("ui/resources/pictures/hacker.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 25 | AboutWindow.setWindowIcon(icon) 26 | self.gridLayout = QtWidgets.QGridLayout(AboutWindow) 27 | self.gridLayout.setContentsMargins(0, 0, 0, 0) 28 | self.gridLayout.setObjectName("gridLayout") 29 | self.textBrowserAbout = QtWidgets.QTextBrowser(AboutWindow) 30 | self.textBrowserAbout.setStyleSheet("border:0px;") 31 | self.textBrowserAbout.setOpenExternalLinks(True) 32 | self.textBrowserAbout.setOpenLinks(True) 33 | self.textBrowserAbout.setObjectName("textBrowserAbout") 34 | self.gridLayout.addWidget(self.textBrowserAbout, 0, 0, 1, 1) 35 | 36 | self.retranslateUi(AboutWindow) 37 | QtCore.QMetaObject.connectSlotsByName(AboutWindow) 38 | 39 | def retranslateUi(self, AboutWindow): 40 | _translate = QtCore.QCoreApplication.translate 41 | AboutWindow.setWindowTitle(_translate("AboutWindow", "About")) 42 | -------------------------------------------------------------------------------- /ui/about_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | AboutWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 515 10 | 367 11 | 12 | 13 | 14 | 15 | 515 16 | 367 17 | 18 | 19 | 20 | 21 | 16777215 22 | 16777215 23 | 24 | 25 | 26 | 27 | 微软雅黑 28 | 29 | 30 | 31 | About 32 | 33 | 34 | 35 | resources/pictures/hacker.pngresources/pictures/hacker.png 36 | 37 | 38 | 39 | 0 40 | 41 | 42 | 0 43 | 44 | 45 | 0 46 | 47 | 48 | 0 49 | 50 | 51 | 52 | 53 | border:0px; 54 | 55 | 56 | true 57 | 58 | 59 | true 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /ui/appchecker_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AppcheckerWindow 6 | 7 | 8 | APK Checker 9 | APK加固检测 10 | 11 | 12 | 13 | Check 14 | 检测 15 | 16 | 17 | 18 | Open APK 19 | 选择文件 20 | 21 | 22 | 23 | Target SDK Version 24 | 目标SDK版本 25 | 26 | 27 | 28 | Min SDK Version 29 | 最小SDK版本 30 | 31 | 32 | 33 | Version name 34 | APP版本 35 | 36 | 37 | 38 | Package name 39 | 包名 40 | 41 | 42 | 43 | Manifest.xml 44 | Manifest.xml 45 | 46 | 47 | 48 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 49 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 50 | p, li { white-space: pre-wrap; } 51 | </style></head><body style=" font-family:'微软雅黑','微软雅黑'; font-size:9pt; font-weight:400; font-style:normal;"> 52 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'微软雅黑'; font-size:9.07563pt;"><br /></p></body></html> 53 | 54 | 55 | 56 | 57 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 58 | <html><head><meta name="qrichtext" content="1" /><style type="text/css"> 59 | p, li { white-space: pre-wrap; } 60 | </style></head><body style=" font-family:'微软雅黑','微软雅黑'; font-size:9pt; font-weight:400; font-style:normal;"> 61 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:9.07563pt;"><br /></p></body></html> 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /ui/asm_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AsmWindow 6 | 7 | 8 | Asm 9 | 10 | 11 | 12 | 13 | x86 14 | 15 | 16 | 17 | 18 | ARM 19 | 20 | 21 | 22 | 23 | MIPS 24 | 25 | 26 | 27 | 28 | Sparc 29 | 30 | 31 | 32 | 33 | PowerPC 34 | 35 | 36 | 37 | 38 | 16bit 39 | 40 | 41 | 42 | 43 | 32bit 44 | 45 | 46 | 47 | 48 | 64bit 49 | 50 | 51 | 52 | 53 | Assemble 54 | 汇编 55 | 56 | 57 | 58 | Disassemble 59 | 反汇编 60 | 61 | 62 | 63 | Base Address 64 | 基地址 65 | 66 | 67 | 68 | Little Endian 69 | 小端 70 | 71 | 72 | 73 | Big Endian 74 | 大端 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /ui/code_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CodeWindow 6 | 7 | 8 | Code 9 | 10 | 11 | 12 | 13 | Encode 14 | 编码 15 | 16 | 17 | 18 | Decode 19 | 解码 20 | 21 | 22 | 23 | URL 24 | 25 | 26 | 27 | 28 | HTML 29 | 30 | 31 | 32 | 33 | Base64 34 | 35 | 36 | 37 | 38 | Hash 39 | 40 | 41 | 42 | 43 | Unicode 44 | 45 | 46 | 47 | 48 | Padding 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ui/comment_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CommentWindow 6 | 7 | 8 | Format Comment 9 | 10 | 11 | 12 | 13 | Raw Comment 14 | 代码注释/原始PDF 15 | 16 | 17 | 18 | Format 19 | 格式化 20 | 21 | 22 | 23 | Translation 24 | 翻译 25 | 26 | 27 | 28 | Baidu 29 | 30 | 31 | 32 | 33 | Google 34 | 35 | 36 | 37 | 38 | <> 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /ui/dialog_window.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : dialog_window.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | 8 | @Modify Time @Author @Version @Desciption 9 | ------------ ------- -------- ----------- 10 | 2021/6/25 21:53 liyansong 1.0 None 11 | ''' 12 | 13 | import sys 14 | from PyQt5.QtWidgets import * 15 | from PyQt5 import QtGui 16 | 17 | 18 | class DialogWindow(QWidget): 19 | def __init__(self, parent=None): 20 | super(DialogWindow, self).__init__(parent) 21 | icon = QtGui.QIcon() 22 | icon.addPixmap(QtGui.QPixmap("ui/resources/pictures/hacker.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 23 | self.setWindowIcon(icon) 24 | 25 | def msg_information(self, data): 26 | QMessageBox.information(self, self.tr("Info"), data, QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) 27 | 28 | def msg_question(self, data): 29 | QMessageBox.question(self, self.tr("Question"), data, QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) 30 | 31 | def msg_warning(self, data): 32 | QMessageBox.warning(self, self.tr("Warning"), data, QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) 33 | 34 | def msg_critical(self, data): 35 | QMessageBox.critical(self, self.tr("Critical"), data, QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) 36 | 37 | def msg_about(self, data): 38 | QMessageBox.about(self, self.tr("About"), data) 39 | 40 | 41 | def diaglog_about(self): 42 | info = self.tr("Reverse Widget\nVersion: V1.1\nAuthor: Yansong Li\nPowered by open-source software") 43 | self.msg_about(info) 44 | 45 | def dialog_user_key(self): 46 | info = self.tr("Please check secret key or iv") 47 | self.msg_information(info) 48 | 49 | def dialog_user_iv(self): 50 | info = self.tr("The length of IV should be equal to the length of the secret key") 51 | self.msg_information(info) 52 | 53 | def dialog_user_iv_3des(self): 54 | info = self.tr("The length of IV should be equal to 8 Bytes") 55 | self.msg_information(info) 56 | 57 | def diaglog_user_input(self): 58 | info = self.tr("Please check your input data") 59 | self.msg_information(info) 60 | 61 | def dialog_input_format(self): 62 | info = self.tr("Please confirm the format of the input data") 63 | self.msg_information(info) 64 | 65 | def dialog_user_arch(self): 66 | info = self.tr("Please select architecture") 67 | self.msg_information(info) 68 | 69 | def dialog_user_mode(self): 70 | info = self.tr("Please select 16/32/64bit") 71 | self.msg_information(info) 72 | 73 | def dialog_user_endian(self): 74 | info = self.tr("Please select endian") 75 | self.msg_information(info) 76 | 77 | # class DiaglogInstance(): 78 | # @classmethod 79 | # def dialog_user_key(cls): 80 | # dialog = DialogWindow() 81 | # info = dialog.tr("Please check secret key or iv") 82 | # dialog.msg_information(info) 83 | # 84 | # @classmethod 85 | # def dialog_user_iv(cls): 86 | # info = "The length of IV should be equal to the length of the secret key" 87 | # dialog = DialogWindow() 88 | # dialog.msg_information(info) 89 | # 90 | # @classmethod 91 | # def dialog_user_iv_3des(cls): 92 | # info = "The length of IV should be equal to 8 Bytes" 93 | # dialog = DialogWindow() 94 | # dialog.msg_information(info) 95 | # 96 | # @classmethod 97 | # def diaglog_user_input(cls): 98 | # dialog = DialogWindow() 99 | # info = dialog.tr("Please check your input data") 100 | # dialog.msg_information(info) 101 | # 102 | # @classmethod 103 | # def dialog_input_format(cls): 104 | # info = "Please confirm the format of the input data" 105 | # dialog = DialogWindow() 106 | # dialog.msg_information(info) 107 | # 108 | # @classmethod 109 | # def dialog_user_arch(cls): 110 | # info = "Please select architecture" 111 | # dialog = DialogWindow() 112 | # dialog.msg_information(info) 113 | # 114 | # @classmethod 115 | # def dialog_user_mode(cls): 116 | # info = "Please select 16/32/64bit" 117 | # dialog = DialogWindow() 118 | # dialog.msg_information(info) 119 | # 120 | # @classmethod 121 | # def dialog_user_endian(cls): 122 | # info = "Please select endian" 123 | # dialog = DialogWindow() 124 | # dialog.msg_information(info) 125 | 126 | if __name__ == "__main__": 127 | # Testcases 128 | app = QApplication(sys.argv) 129 | win = DialogWindow() 130 | win.show() 131 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /ui/dllinject_window.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | from util.log import * 4 | parent_path = os.path.dirname(sys.path[0]) 5 | new_path = parent_path + '/opensource/python_dll_injector' 6 | new_path2 = parent_path + '/ReverseWidget/opensource/python_dll_injector' 7 | # Run this module directly 8 | if new_path not in sys.path: 9 | sys.path.append(new_path) 10 | # Used by other module 11 | if new_path2 not in sys.path: 12 | sys.path.append(new_path2) 13 | 14 | if sys.platform == 'win32': 15 | from opensource.python_dll_injector.main import * 16 | else: 17 | print("Dll injector only available on Windows") 18 | 19 | def start_dll_window(): 20 | processes, icons, paths = GetProcessEntries() 21 | print("Processes found:", len(processes)) 22 | 23 | hinstance = GetModuleHandleA(None) 24 | 25 | try: 26 | icon = LoadImageA(hinstance, b"ui/resources/pictures/syringe.ico", 1, 27 | 32, 32, 0x00000010 | 0x00000080) 28 | except: 29 | icon = LoadIconA(None, LPSTR(32512)) 30 | 31 | class_name = b"Hello world!" 32 | 33 | window_class = WNDCLASSA() 34 | window_class.style = ClassStyle.VREDRAW | ClassStyle.HREDRAW 35 | window_class.lpfnWndProc = WNDPROC(WindowProc) 36 | window_class.hInstance = hinstance 37 | window_class.lpszClassName = class_name 38 | window_class.hbrBackground = HBRUSH(5) 39 | window_class.hIcon = icon 40 | try: 41 | RegisterClassA(ctypes.byref(window_class)) 42 | except Exception as e: 43 | Log.error(str(e)) 44 | 45 | hwnd_main = CreateWindowExA( 46 | 0, 47 | class_name, 48 | b"DLL Injector", 49 | WindowStyle.OVERLAPPED | WindowStyle.CAPTION 50 | | WindowStyle.SYSMENU | WindowStyle.MINIMIZEBOX, 51 | CW_USEDEFAULT, CW_USEDEFAULT, 600, 480, 52 | None, 53 | None, 54 | hinstance, 55 | None 56 | ) 57 | 58 | client_rect = RECT() 59 | GetClientRect(hwnd_main, ctypes.byref(client_rect)) 60 | 61 | inject_button_width = 100 62 | inject_button_height = 25 63 | hwnd_inject_button = CreateButton(hwnd_main, INJECT_BUTTON, 64 | client_rect.right - 10 - inject_button_width, 65 | client_rect.bottom - 10 - inject_button_height, 66 | inject_button_width, b"Inject", height=inject_button_height) 67 | 68 | search_button_width = 100 69 | search_button_height = 25 70 | hwnd_search_button = CreateButton(hwnd_main, SEARCH_BUTTON, 71 | client_rect.right - 10 - search_button_width, 72 | client_rect.top + 10, 73 | search_button_width, b'Browse DLL...', height=search_button_height) 74 | 75 | CreateEdit(hwnd_main, FILEPATH_EDIT, 76 | client_rect.left + 10, 77 | client_rect.top + 10, 78 | client_rect.right - 10 - search_button_width - 20, 79 | 25 80 | ) 81 | 82 | hwnd_listview, processes = CreateListView(hwnd_main, PROCESS_LISTVIEW, 83 | client_rect.left + 10, 84 | client_rect.top + 10 + 32, 85 | client_rect.right - client_rect.left - 20, 86 | client_rect.bottom - client_rect.top - 20 - 23 - 10 - 32, 87 | processes, icons, paths 88 | ) 89 | 90 | ShowWindow(hwnd_main, 5) 91 | 92 | metrics = NONCLIENTMETRICSA() 93 | metrics.cbSize = ctypes.sizeof(NONCLIENTMETRICSA) 94 | # SPI_GETNONCLIENTMETRICS = 0x0029 95 | SystemParametersInfoA(0x0029, metrics.cbSize, ctypes.byref(metrics), 0) 96 | font = CreateFontIndirectA(ctypes.byref(metrics.lfMenuFont)) 97 | 98 | EnumChildWindows(hwnd_main, WNDENUMPROC(EnumChildProc), 99 | LPARAM(ctypes.cast(font, ctypes.c_void_p).value)) 100 | 101 | # DeleteObject(font) 102 | 103 | msg = MSG() 104 | while (bRet := GetMessageA(ctypes.byref(msg), None, 0, 0)) != 0: 105 | if bRet == -1: 106 | break 107 | TranslateMessage(ctypes.byref(msg)) 108 | DispatchMessageA(ctypes.byref(msg)) -------------------------------------------------------------------------------- /ui/encrypt_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CryptoWindow 5 | 6 | 7 | Encrypt_Decrypt 8 | 9 | 10 | 11 | 12 | AES 13 | 14 | 15 | 16 | 17 | DES 18 | 19 | 20 | 21 | 22 | 3DES 23 | 24 | 25 | 26 | 27 | RC2 28 | 29 | 30 | 31 | 32 | model 33 | 模式 34 | 35 | 36 | 37 | ECB 38 | 39 | 40 | 41 | 42 | CBC 43 | 44 | 45 | 46 | 47 | CFB 48 | 49 | 50 | 51 | 52 | Other 53 | 54 | 55 | 56 | 57 | OFB 58 | 59 | 60 | 61 | 62 | CTR 63 | 64 | 65 | 66 | 67 | OPENPGP 68 | 69 | 70 | 71 | 72 | CCM 73 | 74 | 75 | 76 | 77 | EAX 78 | 79 | 80 | 81 | 82 | SIV 83 | 84 | 85 | 86 | 87 | GCM 88 | 89 | 90 | 91 | 92 | OCB 93 | 94 | 95 | 96 | 97 | padding 98 | 填充 99 | 100 | 101 | 102 | pkcs7 103 | 104 | 105 | 106 | 107 | iso7816 108 | 109 | 110 | 111 | 112 | ansix923 113 | 114 | 115 | 116 | 117 | length 118 | 密钥长度 119 | 120 | 121 | 122 | 64bit 123 | 124 | 125 | 126 | 127 | 128bit 128 | 129 | 130 | 131 | 132 | 192bit 133 | 134 | 135 | 136 | 137 | 256bit 138 | 139 | 140 | 141 | 142 | key 143 | 密钥 144 | 145 | 146 | 147 | iv 148 | 149 | 150 | 151 | 152 | Encrypt 153 | 加密 154 | 155 | 156 | 157 | Decrypt 158 | 解密 159 | 160 | 161 | 162 | input format 163 | 输入格式 164 | 165 | 166 | 167 | Hex 168 | 169 | 170 | 171 | 172 | Base64 173 | 174 | 175 | 176 | 177 | String 178 | 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /ui/format_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | FormatWindow 6 | 7 | 8 | Format Output 9 | Json/XML格式化工具 10 | 11 | 12 | 13 | Format 14 | 格式化 15 | 16 | 17 | 18 | Escape 19 | 转义 20 | 21 | 22 | 23 | Unicode Encode 24 | Unicode编码 25 | 26 | 27 | 28 | Raw 29 | 原始字符串 30 | 31 | 32 | 33 | Unescape 34 | 反转义 35 | 36 | 37 | 38 | Unicode Decode 39 | Unicode解码 40 | 41 | 42 | 43 | <> 44 | 45 | 46 | 47 | 48 | Compress 49 | 压缩 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ui/hash_window.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'hash_window.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.4 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_HashWindow(object): 15 | def setupUi(self, HashWindow): 16 | HashWindow.setObjectName("HashWindow") 17 | HashWindow.resize(900, 550) 18 | icon = QtGui.QIcon() 19 | icon.addPixmap(QtGui.QPixmap("ui/resources/pictures/hacker.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 20 | HashWindow.setWindowIcon(icon) 21 | HashWindow.setStyleSheet("QGroupBox {\n" 22 | " border: 0px;\n" 23 | "}") 24 | self.gridLayout_2 = QtWidgets.QGridLayout(HashWindow) 25 | self.gridLayout_2.setContentsMargins(20, 0, 20, 0) 26 | self.gridLayout_2.setVerticalSpacing(6) 27 | self.gridLayout_2.setObjectName("gridLayout_2") 28 | self.groupBox = QtWidgets.QGroupBox(HashWindow) 29 | self.groupBox.setMaximumSize(QtCore.QSize(16777215, 40)) 30 | font = QtGui.QFont() 31 | font.setFamily("微软雅黑") 32 | self.groupBox.setFont(font) 33 | self.groupBox.setStyleSheet("") 34 | self.groupBox.setTitle("") 35 | self.groupBox.setObjectName("groupBox") 36 | self.gridLayout = QtWidgets.QGridLayout(self.groupBox) 37 | self.gridLayout.setContentsMargins(0, 0, 0, 0) 38 | self.gridLayout.setSpacing(6) 39 | self.gridLayout.setObjectName("gridLayout") 40 | self.openButton = QtWidgets.QPushButton(self.groupBox) 41 | font = QtGui.QFont() 42 | font.setFamily("微软雅黑") 43 | font.setUnderline(False) 44 | font.setStrikeOut(False) 45 | self.openButton.setFont(font) 46 | self.openButton.setObjectName("openButton") 47 | self.gridLayout.addWidget(self.openButton, 0, 0, 1, 1) 48 | self.textEdit = QtWidgets.QTextEdit(self.groupBox) 49 | self.textEdit.setMaximumSize(QtCore.QSize(16777215, 30)) 50 | font = QtGui.QFont() 51 | font.setFamily("微软雅黑") 52 | self.textEdit.setFont(font) 53 | self.textEdit.setStyleSheet("QTextEdit{\n" 54 | "background:transparent;\n" 55 | "border-top-width:0px;\n" 56 | "border-right-width:0px;\n" 57 | "border-bottom-width:3px;\n" 58 | "border-left-width:0px;\n" 59 | "}\n" 60 | "") 61 | self.textEdit.setCursorWidth(1) 62 | self.textEdit.setObjectName("textEdit") 63 | self.gridLayout.addWidget(self.textEdit, 0, 1, 1, 1) 64 | self.hashButton = QtWidgets.QPushButton(self.groupBox) 65 | font = QtGui.QFont() 66 | font.setFamily("微软雅黑") 67 | font.setUnderline(False) 68 | font.setStrikeOut(False) 69 | self.hashButton.setFont(font) 70 | self.hashButton.setStyleSheet("") 71 | self.hashButton.setObjectName("hashButton") 72 | self.gridLayout.addWidget(self.hashButton, 0, 2, 1, 1) 73 | self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 1) 74 | self.textBrowser = QtWidgets.QTextBrowser(HashWindow) 75 | font = QtGui.QFont() 76 | font.setFamily("微软雅黑") 77 | self.textBrowser.setFont(font) 78 | self.textBrowser.setStyleSheet("") 79 | self.textBrowser.setOpenExternalLinks(True) 80 | self.textBrowser.setObjectName("textBrowser") 81 | self.gridLayout_2.addWidget(self.textBrowser, 1, 0, 1, 1) 82 | 83 | self.retranslateUi(HashWindow) 84 | QtCore.QMetaObject.connectSlotsByName(HashWindow) 85 | 86 | def retranslateUi(self, HashWindow): 87 | _translate = QtCore.QCoreApplication.translate 88 | HashWindow.setWindowTitle(_translate("HashWindow", "File Hash")) 89 | self.openButton.setText(_translate("HashWindow", "Open File")) 90 | self.hashButton.setText(_translate("HashWindow", "Hash")) 91 | -------------------------------------------------------------------------------- /ui/hash_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HashWindow 6 | 7 | 8 | File Hash 9 | 文件哈希 10 | 11 | 12 | 13 | Hash 14 | 计算哈希 15 | 16 | 17 | 18 | Open File 19 | 打开文件 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ui/hash_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | HashWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 900 10 | 550 11 | 12 | 13 | 14 | File Hash 15 | 16 | 17 | 18 | resources/pictures/hacker.pngresources/pictures/hacker.png 19 | 20 | 21 | QGroupBox { 22 | border: 0px; 23 | } 24 | 25 | 26 | 27 | 20 28 | 29 | 30 | 0 31 | 32 | 33 | 20 34 | 35 | 36 | 0 37 | 38 | 39 | 6 40 | 41 | 42 | 43 | 44 | 45 | 16777215 46 | 40 47 | 48 | 49 | 50 | 51 | 微软雅黑 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 0 63 | 64 | 65 | 0 66 | 67 | 68 | 0 69 | 70 | 71 | 0 72 | 73 | 74 | 6 75 | 76 | 77 | 78 | 79 | 80 | 微软雅黑 81 | false 82 | false 83 | 84 | 85 | 86 | Open File 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 16777215 95 | 30 96 | 97 | 98 | 99 | 100 | 微软雅黑 101 | 102 | 103 | 104 | QTextEdit{ 105 | background:transparent; 106 | border-top-width:0px; 107 | border-right-width:0px; 108 | border-bottom-width:3px; 109 | border-left-width:0px; 110 | } 111 | 112 | 113 | 114 | 1 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 微软雅黑 123 | false 124 | false 125 | 126 | 127 | 128 | 129 | 130 | 131 | Hash 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 微软雅黑 143 | 144 | 145 | 146 | 147 | 148 | 149 | true 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /ui/main_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MainWindow 6 | 7 | 8 | Reverse Widget 9 | 10 | 11 | 12 | 13 | File Hash 14 | 文件哈希 15 | 16 | 17 | 18 | Format Json 19 | 格式化Json 20 | 21 | 22 | 23 | File 24 | 文件 25 | 26 | 27 | 28 | Language 29 | 语言 30 | 31 | 32 | 33 | Help 34 | 帮助 35 | 36 | 37 | 38 | Tools 39 | 工具 40 | 41 | 42 | 43 | English 44 | 45 | 46 | 47 | 48 | Chinese 49 | 简体中文 50 | 51 | 52 | 53 | About 54 | 关于 55 | 56 | 57 | 58 | Open 59 | 打开 60 | 61 | 62 | 63 | Font 64 | 字体 65 | 66 | 67 | 68 | APK Checker 69 | APK加固检测 70 | 71 | 72 | 73 | PE Checker 74 | PE加壳检测 75 | 76 | 77 | 78 | dll injector 79 | dll注入 80 | 81 | 82 | 83 | Format Comment 84 | 格式化翻译 85 | 86 | 87 | 88 | Crypto 89 | 加解密 90 | 91 | 92 | 93 | Code 94 | 编解码 95 | 96 | 97 | 98 | Assemble 99 | 汇编反汇编 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /ui/pechecker_window.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'pechecker_window.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.2 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_PecheckerWindow(object): 15 | def setupUi(self, PecheckerWindow): 16 | PecheckerWindow.setObjectName("PecheckerWindow") 17 | PecheckerWindow.resize(550, 360) 18 | icon = QtGui.QIcon() 19 | icon.addPixmap(QtGui.QPixmap("ui/resources/pictures/hacker.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 20 | PecheckerWindow.setWindowIcon(icon) 21 | self.gridLayout_2 = QtWidgets.QGridLayout(PecheckerWindow) 22 | self.gridLayout_2.setContentsMargins(20, 11, 20, 11) 23 | self.gridLayout_2.setObjectName("gridLayout_2") 24 | self.groupBox = QtWidgets.QGroupBox(PecheckerWindow) 25 | self.groupBox.setMaximumSize(QtCore.QSize(16777215, 60)) 26 | font = QtGui.QFont() 27 | font.setFamily("微软雅黑") 28 | self.groupBox.setFont(font) 29 | self.groupBox.setStyleSheet("QGroupBox{\n" 30 | " border:0px\n" 31 | "}\n" 32 | "QPushButton{\n" 33 | " text-align:center;\n" 34 | " text-decoration:none;\n" 35 | " background:#ffffff;\n" 36 | " /*color: #fff;*/\n" 37 | " color:#000000;\n" 38 | "\n" 39 | " padding: 5px 10px 5px 10px;\n" 40 | " font-weight:light;\n" 41 | " border-radius:4px;\n" 42 | " border:1px solid #dadada;\n" 43 | " white-space: nowrap;\n" 44 | "}\n" 45 | "\n" 46 | "QPushButton::checked,QPushButton::hover{\n" 47 | " background-image: url(\"ui/resources/pictures/blue_menu.png\");\n" 48 | " color:#ffffff;\n" 49 | " font-weight: bold;\n" 50 | "}") 51 | self.groupBox.setTitle("") 52 | self.groupBox.setObjectName("groupBox") 53 | self.gridLayout = QtWidgets.QGridLayout(self.groupBox) 54 | self.gridLayout.setContentsMargins(0, 0, 0, 0) 55 | self.gridLayout.setObjectName("gridLayout") 56 | self.openButton = QtWidgets.QPushButton(self.groupBox) 57 | font = QtGui.QFont() 58 | font.setFamily("微软雅黑") 59 | font.setUnderline(False) 60 | font.setStrikeOut(False) 61 | self.openButton.setFont(font) 62 | self.openButton.setObjectName("openButton") 63 | self.gridLayout.addWidget(self.openButton, 0, 0, 1, 1) 64 | self.textEdit = QtWidgets.QTextEdit(self.groupBox) 65 | self.textEdit.setMaximumSize(QtCore.QSize(16777215, 30)) 66 | font = QtGui.QFont() 67 | font.setFamily("微软雅黑") 68 | self.textEdit.setFont(font) 69 | self.textEdit.setStyleSheet("QTextEdit{\n" 70 | " border-radius: 4px;\n" 71 | " border:1px solid #ccc;\n" 72 | " padding: 1px;\n" 73 | "}") 74 | self.textEdit.setObjectName("textEdit") 75 | self.gridLayout.addWidget(self.textEdit, 0, 1, 1, 1) 76 | self.checkButton = QtWidgets.QPushButton(self.groupBox) 77 | font = QtGui.QFont() 78 | font.setFamily("微软雅黑") 79 | font.setUnderline(False) 80 | font.setStrikeOut(False) 81 | self.checkButton.setFont(font) 82 | self.checkButton.setStyleSheet("") 83 | self.checkButton.setObjectName("checkButton") 84 | self.gridLayout.addWidget(self.checkButton, 0, 2, 1, 1) 85 | self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 1) 86 | self.textBrowser = QtWidgets.QTextBrowser(PecheckerWindow) 87 | font = QtGui.QFont() 88 | font.setFamily("微软雅黑") 89 | self.textBrowser.setFont(font) 90 | self.textBrowser.setStyleSheet("QTextEdit{\n" 91 | " border-radius: 4px;\n" 92 | " border:1px solid #ccc;\n" 93 | " padding: 1px;\n" 94 | "}") 95 | self.textBrowser.setOpenExternalLinks(True) 96 | self.textBrowser.setObjectName("textBrowser") 97 | self.gridLayout_2.addWidget(self.textBrowser, 1, 0, 1, 1) 98 | 99 | self.retranslateUi(PecheckerWindow) 100 | QtCore.QMetaObject.connectSlotsByName(PecheckerWindow) 101 | 102 | def retranslateUi(self, PecheckerWindow): 103 | _translate = QtCore.QCoreApplication.translate 104 | PecheckerWindow.setWindowTitle(_translate("PecheckerWindow", "PE Checker")) 105 | self.openButton.setText(_translate("PecheckerWindow", "Open PE")) 106 | self.checkButton.setText(_translate("PecheckerWindow", "Check")) 107 | -------------------------------------------------------------------------------- /ui/pechecker_window.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PecheckerWindow 6 | 7 | 8 | PE Checker 9 | Windows程序加壳检测 10 | 11 | 12 | 13 | Check 14 | 检测 15 | 16 | 17 | 18 | Open PE 19 | 打开PE 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ui/pechecker_window.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | PecheckerWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 550 10 | 360 11 | 12 | 13 | 14 | PE Checker 15 | 16 | 17 | 18 | resources/pictures/hacker.pngresources/pictures/hacker.png 19 | 20 | 21 | 22 | 20 23 | 24 | 25 | 11 26 | 27 | 28 | 20 29 | 30 | 31 | 11 32 | 33 | 34 | 35 | 36 | 37 | 16777215 38 | 60 39 | 40 | 41 | 42 | 43 | 微软雅黑 44 | 45 | 46 | 47 | QGroupBox{ 48 | border:0px 49 | } 50 | QPushButton{ 51 | text-align:center; 52 | text-decoration:none; 53 | background:#ffffff; 54 | /*color: #fff;*/ 55 | color:#000000; 56 | 57 | padding: 5px 10px 5px 10px; 58 | font-weight:light; 59 | border-radius:4px; 60 | border:1px solid #dadada; 61 | white-space: nowrap; 62 | } 63 | 64 | QPushButton::checked,QPushButton::hover{ 65 | background-image: url("ui/resources/pictures/blue_menu.png"); 66 | color:#ffffff; 67 | font-weight: bold; 68 | } 69 | 70 | 71 | 72 | 73 | 74 | 75 | 0 76 | 77 | 78 | 0 79 | 80 | 81 | 0 82 | 83 | 84 | 0 85 | 86 | 87 | 88 | 89 | 90 | 微软雅黑 91 | false 92 | false 93 | 94 | 95 | 96 | Open PE 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 16777215 105 | 30 106 | 107 | 108 | 109 | 110 | 微软雅黑 111 | 112 | 113 | 114 | QTextEdit{ 115 | border-radius: 4px; 116 | border:1px solid #ccc; 117 | padding: 1px; 118 | } 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 微软雅黑 127 | false 128 | false 129 | 130 | 131 | 132 | 133 | 134 | 135 | Check 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 微软雅黑 147 | 148 | 149 | 150 | QTextEdit{ 151 | border-radius: 4px; 152 | border:1px solid #ccc; 153 | padding: 1px; 154 | } 155 | 156 | 157 | true 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /ui/resources/html/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reverse Widget 6 | 27 | 28 | 29 | 30 |
31 |
32 |
33 |
34 |
35 |

Reverse Widget

36 |
37 |
38 |
39 | Version: %s
40 | Date: %s
41 | Developers: liyansong2018
42 |
43 | 44 | Reverse Widget is a lightweight GUI Software that implements some typical block cipher, coding, hashing, multi-architecture assemble/disassembly, PE/AndroidAPP shell checker and dll injector. 45 | 46 |
47 | 48 |
49 |
50 |
51 | 52 |
53 |
54 |
55 | 56 |
Open Source Dependencies
57 | 58 |
59 | PyPI 60 | 99 |
100 | 101 |
102 | Respitory from Github 103 | 127 |
128 | 129 |
130 | 131 | -------------------------------------------------------------------------------- /ui/resources/html/apk_info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | 22 | 23 |
24 |
25 | 加固信息: 26 | 31 |
32 |
33 |
34 | 35 | -------------------------------------------------------------------------------- /ui/resources/html/code.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | %s
11 |     
12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-Splus.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Jeffrey B. Arnold 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/], 18 | ["pun",/^(?:<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-aea.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Onno Hommes. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, 18 | null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-agc.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Onno Hommes. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, 18 | null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-apollo.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Onno Hommes. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, 18 | null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-basic.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Peter Kofler 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, 18 | null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-cbm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Peter Kofler 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i, 18 | null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-cl.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-clj.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) 2011 Google Inc. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[\(\{\[]+/,null,"([{"],["clo",/^[\)\}\]]+/,null,")]}"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/, 17 | null],["typ",/^:[0-9a-zA-Z\-]+/]]),["clj"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[["str",/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],["str",/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']+)\)/i],["kwd",/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], 18 | ["com",/^(?:\x3c!--|--\x3e)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#(?:[0-9a-f]{3}){1,2}\b/i],["pln",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],["pun",/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^\)\"\']+/]]),["css-str"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-dart.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["com",/^#!(?:.*)/],["kwd",/^\b(?:import|library|part of|part|as|show|hide)\b/i],["com",/^\/\/(?:.*)/],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],["kwd",/^\b(?:class|interface)\b/i],["kwd",/^\b(?:assert|async|await|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|sync|this|throw|try|while)\b/i],["kwd",/^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i], 18 | ["typ",/^\b(?:bool|double|Dynamic|int|num|Object|String|void)\b/i],["kwd",/^\b(?:false|null|true)\b/i],["str",/^r?[\']{3}[\s|\S]*?[^\\][\']{3}/],["str",/^r?[\"]{3}[\s|\S]*?[^\\][\"]{3}/],["str",/^r?\'(\'|(?:[^\n\r\f])*?[^\\]\')/],["str",/^r?\"(\"|(?:[^\n\r\f])*?[^\\]\")/],["typ",/^[A-Z]\w*/],["pln",/^[a-z_$][a-z0-9_]*/i],["pun",/^[~!%^&*+=|?:<>/-]/],["lit",/^\b0x[0-9a-f]+/i],["lit",/^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i],["lit", 19 | /^\b\.\d+(?:e[+-]?\d+)?/i],["pun",/^[(){}\[\],.;]/]]),["dart"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-el.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-erl.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Andrew Allen 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^\?[^ \t\n({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/], 18 | ["kwd",/^-[a-z_]+/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;]/]]),["erlang","erl"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-erlang.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Andrew Allen 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^\?[^ \t\n({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/], 18 | ["kwd",/^-[a-z_]+/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;]/]]),["erlang","erl"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-ex.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2017 Jacek Kr??likowski 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#.*/,null,"#"],["lit",/^'(?:[^'\\]|\\(?:.|\n|\r))*'?/,null,"'"],["atn",/^@\w+/,null,"@"],["pun",/^[!%&()*+,\-;<=>?\[\\\]^{|}]+/,null,"!%&()*+,-;<=>?[\\]^{|}"],["lit",/^(?:0o[0-7](?:[0-7]|_[0-7])*|0x[\da-fA-F](?:[\da-fA-F]|_[\da-fA-F])*|\d(?:\d|_\d)*(?:\.\d(?:\d|_\d)*)?(?:[eE][+\-]?\d(?:\d|_\d)*)?)/,null,"0123456789"]],[["atn",/^iex(?:\(\d+\))?> /], 18 | ["pun",/^::/],["lit",/^:(?:\w+[\!\?\@]?|"(?:[^"\\]|\\.)*"?)/],["atn",/^(?:__(?:CALLER|ENV|MODULE|DIR)__)/],["kwd",/^(?:alias|case|catch|def(?:delegate|exception|impl|macrop?|module|overridable|p?|protocol|struct)|do|else|end|fn|for|if|in|import|quote|raise|require|rescue|super|throw|try|unless|unquote(?:_splicing)?|use|when|with|yield)\b/],["lit",/^(?:true|false|nil)\b/],["lit",/^(?:\w+[\!\?\@]?|"(?:[^"\\]|\\.)*"):(?!:)/],["str",/^"""\s*(\r|\n)+(?:""?(?!")|[^\\"]|\\(?:.|\n|\r))*"{0,3}/], 19 | ["str",/^"(?:[^"\\]|\\(?:.|\n|\r))*"?(?!")/],["typ",/^[A-Z]\w*/],["com",/^_\w*/],["pln",/^[$a-z]\w*[\!\?]?/],["atv",/^~[A-Z](?:\/(?:[^\/\r\n\\]|\\.)+\/|\|(?:[^\|\r\n\\]|\\.)+\||"(?:[^"\r\n\\]|\\.)+"|'(?:[^'\r\n\\]|\\.)+')[A-Z]*/i],["atv",/^~[A-Z](?:\((?:[^\)\r\n\\]|\\.)+\)|\[(?:[^\]\r\n\\]|\\.)+\]|\{(?:[^\}\r\n\\]|\\.)+\}|\<(?:[^\>\r\n\\]|\\.)+\>)[A-Z]*/i],["pun",/^(?:\.+|\/|[:~])/]]),["ex","exs"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-exs.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2017 Jacek Kr??likowski 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#.*/,null,"#"],["lit",/^'(?:[^'\\]|\\(?:.|\n|\r))*'?/,null,"'"],["atn",/^@\w+/,null,"@"],["pun",/^[!%&()*+,\-;<=>?\[\\\]^{|}]+/,null,"!%&()*+,-;<=>?[\\]^{|}"],["lit",/^(?:0o[0-7](?:[0-7]|_[0-7])*|0x[\da-fA-F](?:[\da-fA-F]|_[\da-fA-F])*|\d(?:\d|_\d)*(?:\.\d(?:\d|_\d)*)?(?:[eE][+\-]?\d(?:\d|_\d)*)?)/,null,"0123456789"]],[["atn",/^iex(?:\(\d+\))?> /], 18 | ["pun",/^::/],["lit",/^:(?:\w+[\!\?\@]?|"(?:[^"\\]|\\.)*"?)/],["atn",/^(?:__(?:CALLER|ENV|MODULE|DIR)__)/],["kwd",/^(?:alias|case|catch|def(?:delegate|exception|impl|macrop?|module|overridable|p?|protocol|struct)|do|else|end|fn|for|if|in|import|quote|raise|require|rescue|super|throw|try|unless|unquote(?:_splicing)?|use|when|with|yield)\b/],["lit",/^(?:true|false|nil)\b/],["lit",/^(?:\w+[\!\?\@]?|"(?:[^"\\]|\\.)*"):(?!:)/],["str",/^"""\s*(\r|\n)+(?:""?(?!")|[^\\"]|\\(?:.|\n|\r))*"{0,3}/], 19 | ["str",/^"(?:[^"\\]|\\(?:.|\n|\r))*"?(?!")/],["typ",/^[A-Z]\w*/],["com",/^_\w*/],["pln",/^[$a-z]\w*[\!\?]?/],["atv",/^~[A-Z](?:\/(?:[^\/\r\n\\]|\\.)+\/|\|(?:[^\|\r\n\\]|\\.)+\||"(?:[^"\r\n\\]|\\.)+"|'(?:[^'\r\n\\]|\\.)+')[A-Z]*/i],["atv",/^~[A-Z](?:\((?:[^\)\r\n\\]|\\.)+\)|\[(?:[^\]\r\n\\]|\\.)+\]|\{(?:[^\}\r\n\\]|\\.)+\}|\<(?:[^\>\r\n\\]|\\.)+\>)[A-Z]*/i],["pun",/^(?:\.+|\/|[:~])/]]),["ex","exs"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-fs.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], 18 | ["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-go.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2010 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["pln",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/],["pln",/^(?:[^\/\"\'`]|\/(?![\/\*]))+/i]]),["go"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-hs.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, 18 | null],["pln",/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],["pun",/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),["hs"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-kotlin.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2017 Micha?? B??czkowski 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["pun",/^[.!%&()*+,\-;<=>?\[\\\]^{|}:]+/,null,".!%&()*+,-;<=>?[\\]^{|}:"]],[["kwd",/^\b(package|public|protected|private|open|abstract|constructor|final|override|import|for|while|as|typealias|get|set|((data|enum|annotation|sealed) )?class|this|super|val|var|fun|is|in|throw|return|break|continue|(companion )?object|if|try|else|do|when|init|interface|typeof)\b/],["lit",/^(?:true|false|null)\b/], 18 | ["lit",/^(0[xX][0-9a-fA-F_]+L?|0[bB][0-1]+L?|[0-9_.]+([eE]-?[0-9]+)?[fFL]?)/],["typ",/^(\b[A-Z]+[a-z][a-zA-Z0-9_$@]*|`.*`)/,null],["com",/^\/\/.*/],["com",/^\/\*[\s\S]*?(?:\*\/|$)/],["str",/'.'/],["str",/^"([^"\\]|\\[\s\S])*"/],["str",/^"{3}[\s\S]*?[^\\]"{3}/],["lit",/^@([a-zA-Z0-9_$@]*|`.*`)/],["lit",/^[a-zA-Z0-9_]+@/]]),["kotlin"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lasso.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Eric Knibbe 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'[^\'\\]*(?:\\[\s\S][^\'\\]*)*(?:\'|$)/,null,"'"],["str",/^\"[^\"\\]*(?:\\[\s\S][^\"\\]*)*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^[#$][a-z_][\w.]*|#\d+\b|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|(no_square_brackets|noprocess)\b/i],["com", 18 | /^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'|\.{3}/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|(infinity|NaN)\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i], 19 | ["kwd",/^(?:cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|fail_if|fail_ifnot|fail|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i], 20 | ["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]+/]]),["lasso","ls","lassoscript"]); 21 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lassoscript.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Eric Knibbe 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'[^\'\\]*(?:\\[\s\S][^\'\\]*)*(?:\'|$)/,null,"'"],["str",/^\"[^\"\\]*(?:\\[\s\S][^\"\\]*)*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^[#$][a-z_][\w.]*|#\d+\b|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|(no_square_brackets|noprocess)\b/i],["com", 18 | /^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'|\.{3}/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|(infinity|NaN)\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i], 19 | ["kwd",/^(?:cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|fail_if|fail_ifnot|fail|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i], 20 | ["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]+/]]),["lasso","ls","lassoscript"]); 21 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-latex.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Martin S. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lgt.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2014 Paulo Moura 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^(?:0'.|0b[0-1]+|0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\r\n]*/,null,"%"],["com",/^\/\*[\s\S]*?\*\//],["kwd",/^\s*:-\s(c(a(lls|tegory)|oinductive)|p(ublic|r(ot(ocol|ected)|ivate))|e(l(if|se)|n(coding|sure_loaded)|xport)|i(f|n(clude|itialization|fo))|alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|od(e|ule)|ultifile)|reexport|s(et_(logtalk|prolog)_flag|ynchronized)|o(bject|p)|use(s|_module))/], 18 | ["kwd",/^\s*:-\s(e(lse|nd(if|_(category|object|protocol)))|built_in|dynamic|synchronized|threaded)/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;{}:^<>=\\/+*?#!-]/]]),["logtalk","lgt"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lisp.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-ll.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Nikhil Dabas 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-llvm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Nikhil Dabas 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-logtalk.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2014 Paulo Moura 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^(?:0'.|0b[0-1]+|0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\r\n]*/,null,"%"],["com",/^\/\*[\s\S]*?\*\//],["kwd",/^\s*:-\s(c(a(lls|tegory)|oinductive)|p(ublic|r(ot(ocol|ected)|ivate))|e(l(if|se)|n(coding|sure_loaded)|xport)|i(f|n(clude|itialization|fo))|alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|od(e|ule)|ultifile)|reexport|s(et_(logtalk|prolog)_flag|ynchronized)|o(bject|p)|use(s|_module))/], 18 | ["kwd",/^\s*:-\s(e(lse|nd(if|_(category|object|protocol)))|built_in|dynamic|synchronized|threaded)/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;{}:^<>=\\/+*?#!-]/]]),["logtalk","lgt"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-ls.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Eric Knibbe 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'[^\'\\]*(?:\\[\s\S][^\'\\]*)*(?:\'|$)/,null,"'"],["str",/^\"[^\"\\]*(?:\\[\s\S][^\"\\]*)*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^[#$][a-z_][\w.]*|#\d+\b|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|(no_square_brackets|noprocess)\b/i],["com", 18 | /^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'|\.{3}/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|(infinity|NaN)\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i], 19 | ["kwd",/^(?:cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|fail_if|fail_ifnot|fail|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i], 20 | ["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]+/]]),["lasso","ls","lassoscript"]); 21 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lsp.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-lua.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],["str",/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], 18 | ["pln",/^[a-z_]\w*/i],["pun",/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),["lua"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-ml.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], 18 | ["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-mumps.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Kitware Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^"]|\\.)*")/,null,'"']],[["com",/^;[^\r\n]*/,null,";"],["dec",/^(?:\$(?:D|DEVICE|EC|ECODE|ES|ESTACK|ET|ETRAP|H|HOROLOG|I|IO|J|JOB|K|KEY|P|PRINCIPAL|Q|QUIT|ST|STACK|S|STORAGE|SY|SYSTEM|T|TEST|TL|TLEVEL|TR|TRESTART|X|Y|Z[A-Z]*|A|ASCII|C|CHAR|D|DATA|E|EXTRACT|F|FIND|FN|FNUMBER|G|GET|J|JUSTIFY|L|LENGTH|NA|NAME|O|ORDER|P|PIECE|QL|QLENGTH|QS|QSUBSCRIPT|Q|QUERY|R|RANDOM|RE|REVERSE|S|SELECT|ST|STACK|T|TEXT|TR|TRANSLATE|NaN))\b/i, 18 | null],["kwd",/^(?:[^\$]B|BREAK|C|CLOSE|D|DO|E|ELSE|F|FOR|G|GOTO|H|HALT|H|HANG|I|IF|J|JOB|K|KILL|L|LOCK|M|MERGE|N|NEW|O|OPEN|Q|QUIT|R|READ|S|SET|TC|TCOMMIT|TRE|TRESTART|TRO|TROLLBACK|TS|TSTART|U|USE|V|VIEW|W|WRITE|X|XECUTE)\b/i,null],["lit",/^[+-]?(?:(?:\.\d+|\d+(?:\.\d*)?)(?:E[+\-]?\d+)?)/i],["pln",/^[a-z][a-zA-Z0-9]*/i],["pun",/^[^\w\t\n\r\xA0\"\$;%\^]|_/]]),["mumps"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-n.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Zimin A.V. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null],["str",/^<#(?:[^#>])*(?:#>|$)/,null],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null],["com",/^\/\/[^\r\n]*/, 18 | null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, 19 | null],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,null],["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^@[A-Z]+[a-z][A-Za-z_$@0-9]*/,null],["pln",/^'?[A-Za-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\"\`\/\#]*/,null]]),["n","nemerle"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-nemerle.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Zimin A.V. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null],["str",/^<#(?:[^#>])*(?:#>|$)/,null],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null],["com",/^\/\/[^\r\n]*/, 18 | null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, 19 | null],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,null],["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^@[A-Z]+[a-z][A-Za-z_$@0-9]*/,null],["pln",/^'?[A-Za-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\"\`\/\#]*/,null]]),["n","nemerle"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-pascal.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2013 Peter Kofler 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$))/,null,"'"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^\(\*[\s\S]*?(?:\*\)|$)|^\{[\s\S]*?(?:\}|$)/,null],["kwd",/^(?:ABSOLUTE|AND|ARRAY|ASM|ASSEMBLER|BEGIN|CASE|CONST|CONSTRUCTOR|DESTRUCTOR|DIV|DO|DOWNTO|ELSE|END|EXTERNAL|FOR|FORWARD|FUNCTION|GOTO|IF|IMPLEMENTATION|IN|INLINE|INTERFACE|INTERRUPT|LABEL|MOD|NOT|OBJECT|OF|OR|PACKED|PROCEDURE|PROGRAM|RECORD|REPEAT|SET|SHL|SHR|THEN|TO|TYPE|UNIT|UNTIL|USES|VAR|VIRTUAL|WHILE|WITH|XOR)\b/i, 18 | null],["lit",/^(?:true|false|self|nil)/i,null],["pln",/^[a-z][a-z0-9]*/i,null],["lit",/^(?:\$[a-f0-9]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?)/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\/]*/,null]]),["pascal"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-proto.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2006 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-r.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Jeffrey B. Arnold 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/], 18 | ["pun",/^(?:<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-rd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Jeffrey Arnold 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["lit",/^\\(?:cr|l?dots|R|tab)\b/],["kwd",/^\\[a-zA-Z@]+/],["kwd",/^#(?:ifn?def|endif)/],["pln",/^\\[{}]/],["pun",/^[{}()\[\]]+/]]),["Rd","rd"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-rkt.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-rust.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 Chris Morgan 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([],[["pln",/^[\t\n\r \xA0]+/],["com",/^\/\/.*/],["com",/^\/\*[\s\S]*?(?:\*\/|$)/],["str",/^b"(?:[^\\]|\\(?:.|x[\da-fA-F]{2}))*?"/],["str",/^"(?:[^\\]|\\(?:.|x[\da-fA-F]{2}|u\{\[\da-fA-F]{1,6}\}))*?"/],["str",/^b?r(#*)\"[\s\S]*?\"\1/],["str",/^b'([^\\]|\\(.|x[\da-fA-F]{2}))'/],["str",/^'([^\\]|\\(.|x[\da-fA-F]{2}|u\{[\da-fA-F]{1,6}\}))'/],["tag",/^'\w+?\b/],["kwd",/^(?:match|if|else|as|break|box|continue|extern|fn|for|in|if|impl|let|loop|pub|return|super|unsafe|where|while|use|mod|trait|struct|enum|type|move|mut|ref|static|const|crate)\b/], 18 | ["kwd",/^(?:alignof|become|do|offsetof|priv|pure|sizeof|typeof|unsized|yield|abstract|virtual|final|override|macro)\b/],["typ",/^(?:[iu](8|16|32|64|128|size)|char|bool|f32|f64|str|Self)\b/],["typ",/^(?:Copy|Send|Sized|Sync|Drop|Fn|FnMut|FnOnce|Box|ToOwned|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator|Option|Some|None|Result|Ok|Err|SliceConcatExt|String|ToString|Vec)\b/],["lit",/^(self|true|false|null)\b/], 19 | ["lit",/^\d[0-9_]*(?:[iu](?:size|8|16|32|64|128))?/],["lit",/^0x[a-fA-F0-9_]+(?:[iu](?:size|8|16|32|64|128))?/],["lit",/^0o[0-7_]+(?:[iu](?:size|8|16|32|64|128))?/],["lit",/^0b[01_]+(?:[iu](?:size|8|16|32|64|128))?/],["lit",/^\d[0-9_]*\.(?![^\s\d.])/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)(?:[eE][+-]?[0-9_]+)?(?:f32|f64)?/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)?(?:[eE][+-]?[0-9_]+)(?:f32|f64)?/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)?(?:[eE][+-]?[0-9_]+)?(?:f32|f64)/], 20 | ["atn",/^[a-z_]\w*!/i],["pln",/^[a-z_]\w*/i],["atv",/^#!?\[[\s\S]*?\]/],["pun",/^[+\-/*=^&|!<>%[\](){}?:.,;]/],["pln",/./]]),["rust"]); 21 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-s.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Jeffrey B. Arnold 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/], 18 | ["pun",/^(?:<>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-scala.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2010 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,null,'"'],["lit",/^`(?:[^\r\n\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],["lit",/^'[a-zA-Z_$][\w$]*(?!['$\w])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], 18 | ["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],["typ",/^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],["pln",/^[$a-zA-Z_][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-scm.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-sql.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],["kwd",/^(?:ADD|ALL|ALTER|AND|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONNECT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOLLOWING|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|MATCH|MATCHED|MERGE|NATURAL|NATIONAL|NOCHECK|NONCLUSTERED|NOCYCLE|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PARTITION|PERCENT|PIVOT|PLAN|PRECEDING|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|ROWS?|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|START|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNBOUNDED|UNION|UNIQUE|UNPIVOT|UPDATE|UPDATETEXT|USE|USER|USING|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WITHIN|WRITETEXT|XML)(?=[^\w-]|$)/i, 18 | null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^[a-z_][\w-]*/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),["sql"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-ss.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2008 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, 18 | null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" ")); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-swift.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \n\r\t\v\f\0]+/,null," \n\r\t\v\f\x00"],["str",/^"(?:[^"\\]|(?:\\.)|(?:\\\((?:[^"\\)]|\\.)*\)))*"/,null,'"']],[["lit",/^(?:(?:0x[\da-fA-F][\da-fA-F_]*\.[\da-fA-F][\da-fA-F_]*[pP]?)|(?:\d[\d_]*\.\d[\d_]*[eE]?))[+-]?\d[\d_]*/,null],["lit",/^-?(?:(?:0(?:(?:b[01][01_]*)|(?:o[0-7][0-7_]*)|(?:x[\da-fA-F][\da-fA-F_]*)))|(?:\d[\d_]*))/,null],["lit",/^(?:_|Any|true|false|nil)\b/,null],["kwd",/^\b(?:__COLUMN__|__FILE__|__FUNCTION__|__LINE__|#available|#colorLiteral|#column|#else|#elseif|#endif|#file|#fileLiteral|#function|#if|#imageLiteral|#line|#selector|#sourceLocation|arch|arm|arm64|associatedtype|associativity|as|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|dynamicType|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|import|indirect|infix|init|inout|internal|i386|if|in|iOS|iOSApplicationExtension|is|lazy|left|let|mutating|none|nonmutating|open|operator|optional|OSX|OSXApplicationExtension|override|postfix|precedence|prefix|private|protocol|Protocol|public|repeat|required|rethrows|return|right|safe|Self|self|set|static|struct|subscript|super|switch|throw|throws|try|Type|typealias|unowned|unsafe|var|weak|watchOS|where|while|willSet|x86_64)\b/, 18 | null],["com",/^\/\/.*?[\n\r]/,null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["pun",/^<<=|<=|<<|>>=|>=|>>|===|==|\.\.\.|&&=|\.\.<|!==|!=|&=|~=|~|\(|\)|\[|\]|{|}|@|#|;|\.|,|:|\|\|=|\?\?|\|\||&&|&\*|&\+|&-|&=|\+=|-=|\/=|\*=|\^=|%=|\|=|->|`|==|\+\+|--|\/|\+|!|\*|%|<|>|&|\||\^|\?|=|-|_/,null],["typ",/^\b(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null]]),["swift"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-tcl.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2012 Pyrios 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\{+/,null,"{"],["clo",/^\}+/,null,"}"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/,null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], 18 | ["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["tcl"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-tex.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2011 Martin S. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]); 18 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-vb.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, 18 | null],["com",/^REM\b[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb", 19 | "vbs"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-vbs.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, 18 | null],["com",/^REM\b[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb", 19 | "vbs"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-vhd.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2010 benoit@ryder.fr 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, 18 | null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i], 19 | ["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-vhdl.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2010 benoit@ryder.fr 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, 18 | null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i], 19 | ["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"]); 20 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-wiki.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2009 Google Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t \xA0a-gi-z0-9]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[=*~\^\[\]]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],["lang-",/^\{\{\{([\s\S]+?)\}\}\}/],["lang-",/^`([^\r\n`]+)`/],["str",/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]]),["wiki"]); 18 | PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-yaml.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 ribrdb @ code.google.com 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln", 18 | /^\w+/]]),["yaml","yml"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/lang-yml.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright (C) 2015 ribrdb @ code.google.com 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | */ 17 | PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln", 18 | /^\w+/]]),["yaml","yml"]); 19 | -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/skins/desert.css: -------------------------------------------------------------------------------- 1 | pre .atn,pre .kwd,pre .tag{font-weight:700}pre.prettyprint{display:block;background-color:#333}pre .nocode{background-color:none;color:#000}pre .str{color:#ffa0a0}pre .kwd{color:khaki}pre .com{color:#87ceeb}pre .typ{color:#98fb98}pre .lit{color:#cd5c5c}pre .pln,pre .pun{color:#fff}pre .tag{color:khaki}pre .atn{color:#bdb76b}pre .atv{color:#ffa0a0}pre .dec{color:#98fb98}ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}@media print{pre.prettyprint{background-color:none}code .str,pre .str{color:#060}code .kwd,pre .kwd{color:#006;font-weight:700}code .com,pre .com{color:#600;font-style:italic}code .typ,pre .typ{color:#404;font-weight:700}code .lit,pre .lit{color:#044}code .pun,pre .pun{color:#440}code .pln,pre .pln{color:#000}code .tag,pre .tag{color:#006;font-weight:700}code .atn,pre .atn{color:#404}code .atv,pre .atv{color:#060}} -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/skins/doxy.css: -------------------------------------------------------------------------------- 1 | a,code.prettyprint a,pre.prettyprint a{text-decoration:none}code .str,pre .str{color:#fec243}code .kwd,pre .kwd{color:#8470FF}code .com,pre .com{color:#32cd32;font-style:italic}code .typ,pre .typ{color:#6ecbcc}code .lit,pre .lit{color:#d06}code .pun,pre .pun{color:#8B8970}code .pln,pre .pln{color:#f0f0f0}code .tag,pre .tag{color:#9c9cff}code .htm,pre .htm{color:plum}code .xsl,pre .xsl{color:#d0a0d0}code .atn,pre .atn{color:#46eeee;font-weight:400}code .atv,pre .atv{color:#EEB4B4}code .dec,pre .dec{color:#3387CC}code.prettyprint,pre.prettyprint{font-family:'Droid Sans Mono','CPMono_v07 Bold','Droid Sans';font-weight:700;font-size:9pt;background-color:#0f0f0f;-moz-border-radius:8px;-webkit-border-radius:8px;-o-border-radius:8px;-ms-border-radius:8px;-khtml-border-radius:8px;border-radius:8px}pre.prettyprint{width:95%;margin:1em auto;padding:1em;white-space:pre-wrap}ol.linenums{margin-top:0;margin-bottom:0;color:#8B8970}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}@media print{code.prettyprint,pre.prettyprint{background-color:#fff}code .str,pre .str{color:#088}code .kwd,pre .kwd{color:#006;font-weight:700}code .com,pre .com{color:#oc3;font-style:italic}code .typ,pre .typ{color:#404;font-weight:700}code .lit,pre .lit{color:#044}code .pun,pre .pun{color:#440}code .pln,pre .pln{color:#000}code .tag,pre .tag{color:#b66ff7;font-weight:700}code .htm,code .xsl,pre .htm,pre .xsl{color:#606;font-weight:700}code .atn,pre .atn{color:#c71585;font-weight:400}code .atv,pre .atv{color:#088;font-weight:400}} -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/skins/sons-of-obsidian.css: -------------------------------------------------------------------------------- 1 | .str{color:#EC7600}.kwd{color:#93C763}.com{color:#66747B}.typ{color:#678CB1}.lit{color:#FACD22}.pln,.pun{color:#F1F2F3}.tag{color:#8AC763}.atn{color:#E0E2E4}.atv{color:#EC7600}.dec{color:purple}pre.prettyprint{border:0 solid #888}ol.linenums{margin-top:0;margin-bottom:0}.prettyprint{background:#000}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{color:#555;list-style-type:decimal}li.L1,li.L3,li.L5,li.L7,li.L9{background:#111}@media print{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006}.atn{color:#404}.atv{color:#060}} -------------------------------------------------------------------------------- /ui/resources/html/google-code-prettify/skins/sunburst.css: -------------------------------------------------------------------------------- 1 | code .str,pre .str{color:#65B042}code .kwd,pre .kwd{color:#E28964}code .com,pre .com{color:#AEAEAE;font-style:italic}code .typ,pre .typ{color:#89bdff}code .lit,pre .lit{color:#3387CC}code .pln,code .pun,pre .pln,pre .pun{color:#fff}code .tag,pre .tag{color:#89bdff}code .atn,pre .atn{color:#bdb76b}code .atv,pre .atv{color:#65B042}code .dec,pre .dec{color:#3387CC}code.prettyprint,pre.prettyprint{background-color:#000;border-radius:8px}pre.prettyprint{width:95%;margin:1em auto;padding:1em;white-space:pre-wrap}ol.linenums{margin-top:0;margin-bottom:0;color:#AEAEAE}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}@media print{code .str,pre .str{color:#060}code .kwd,pre .kwd{color:#006;font-weight:700}code .com,pre .com{color:#600;font-style:italic}code .typ,pre .typ{color:#404;font-weight:700}code .lit,pre .lit{color:#044}code .pun,pre .pun{color:#440}code .pln,pre .pln{color:#000}code .tag,pre .tag{color:#006;font-weight:700}code .atn,pre .atn{color:#404}code .atv,pre .atv{color:#060}} -------------------------------------------------------------------------------- /ui/resources/language/appchecker_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/appchecker_window.qm -------------------------------------------------------------------------------- /ui/resources/language/asm_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/asm_window.qm -------------------------------------------------------------------------------- /ui/resources/language/code_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/code_window.qm -------------------------------------------------------------------------------- /ui/resources/language/comment_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/comment_window.qm -------------------------------------------------------------------------------- /ui/resources/language/dialog_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/dialog_window.qm -------------------------------------------------------------------------------- /ui/resources/language/encrypt_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/encrypt_window.qm -------------------------------------------------------------------------------- /ui/resources/language/format_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/format_window.qm -------------------------------------------------------------------------------- /ui/resources/language/hash_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/hash_window.qm -------------------------------------------------------------------------------- /ui/resources/language/main.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/main.qm -------------------------------------------------------------------------------- /ui/resources/language/main_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/main_window.qm -------------------------------------------------------------------------------- /ui/resources/language/pechecker_window.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/language/pechecker_window.qm -------------------------------------------------------------------------------- /ui/resources/pictures/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/android.png -------------------------------------------------------------------------------- /ui/resources/pictures/apkcombo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/apkcombo.png -------------------------------------------------------------------------------- /ui/resources/pictures/apkpure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/apkpure.png -------------------------------------------------------------------------------- /ui/resources/pictures/asm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/asm.png -------------------------------------------------------------------------------- /ui/resources/pictures/baidu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/baidu.png -------------------------------------------------------------------------------- /ui/resources/pictures/blue_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/blue_menu.png -------------------------------------------------------------------------------- /ui/resources/pictures/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/code.png -------------------------------------------------------------------------------- /ui/resources/pictures/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/comment.png -------------------------------------------------------------------------------- /ui/resources/pictures/country/china.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/country/china.png -------------------------------------------------------------------------------- /ui/resources/pictures/country/italy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/country/italy.png -------------------------------------------------------------------------------- /ui/resources/pictures/country/japan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/country/japan.png -------------------------------------------------------------------------------- /ui/resources/pictures/country/south-korea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/country/south-korea.png -------------------------------------------------------------------------------- /ui/resources/pictures/country/spain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/country/spain.png -------------------------------------------------------------------------------- /ui/resources/pictures/encrypt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/encrypt.png -------------------------------------------------------------------------------- /ui/resources/pictures/google-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/google-play.png -------------------------------------------------------------------------------- /ui/resources/pictures/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/google.png -------------------------------------------------------------------------------- /ui/resources/pictures/hacker.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/hacker.ico -------------------------------------------------------------------------------- /ui/resources/pictures/hacker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/hacker.png -------------------------------------------------------------------------------- /ui/resources/pictures/json-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/json-file.png -------------------------------------------------------------------------------- /ui/resources/pictures/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/loading.gif -------------------------------------------------------------------------------- /ui/resources/pictures/md5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/md5.png -------------------------------------------------------------------------------- /ui/resources/pictures/syringe.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/syringe.ico -------------------------------------------------------------------------------- /ui/resources/pictures/syringe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/syringe.png -------------------------------------------------------------------------------- /ui/resources/pictures/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/welcome.png -------------------------------------------------------------------------------- /ui/resources/pictures/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/windows.png -------------------------------------------------------------------------------- /ui/resources/pictures/xml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/ui/resources/pictures/xml.png -------------------------------------------------------------------------------- /util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/secnotes/ReverseWidget/189211977973d37528a03224b20760319de12029/util/__init__.py -------------------------------------------------------------------------------- /util/asm.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : asm.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | ''' 8 | 9 | from keystone import * 10 | from capstone import * 11 | from .code_trans import * 12 | 13 | class Asm(): 14 | def __init__(self, arch, mode, data, endian): 15 | """ 16 | Assemble or Disassemble 17 | :param arch: architecture 18 | :param mode: 16bit/32bit/64bit -> 2B/4B/8B 19 | :param data: input data 20 | :param endian: little/big endian 21 | """ 22 | self.arch = arch 23 | self.mode = mode 24 | self.data = data 25 | self.endian = endian 26 | 27 | def assemble(self, base_addr): 28 | # ARM 29 | if self.arch == KS_ARCH_ARM: 30 | if self.mode == 2: 31 | self.mode = KS_MODE_THUMB + self.endian 32 | 33 | elif self.mode == 4: 34 | self.mode = KS_MODE_ARM + self.endian 35 | 36 | elif self.mode == 8: 37 | # ARM64 only supports little endian 38 | self.arch = KS_ARCH_ARM64 39 | self.mode = KS_MODE_LITTLE_ENDIAN 40 | 41 | # PowerPC 42 | elif self.arch == KS_ARCH_PPC: 43 | if self.mode == 4: 44 | # 32 bit PowerPC architecture only supports big endian 45 | self.mode = KS_MODE_PPC32 + KS_MODE_BIG_ENDIAN 46 | elif self.mode == 8: 47 | self.mode = KS_MODE_PPC64 48 | if self.endian == KS_MODE_BIG_ENDIAN: 49 | self.mode = KS_MODE_PPC64 + self.endian 50 | # Mips 51 | elif self.arch == KS_ARCH_MIPS: 52 | if self.endian == KS_MODE_BIG_ENDIAN: 53 | self.mode = self.mode + KS_MODE_BIG_ENDIAN 54 | 55 | # All 56 | ks = Ks(self.arch, self.mode) 57 | 58 | try: 59 | encoding, count = ks.asm(self.data, base_addr) 60 | return encoding 61 | except Exception as e: 62 | pass 63 | 64 | # x86 AT&T 65 | try: 66 | if self.arch == KS_ARCH_X86: 67 | ks.syntax = KS_OPT_SYNTAX_ATT 68 | encoding, count = ks.asm(self.data, base_addr) 69 | return encoding 70 | except Exception as e: 71 | # must raise 72 | raise 73 | 74 | def disassemble(self, base_addr): 75 | # ARM 76 | if self.arch == CS_ARCH_ARM: 77 | if self.mode == 2: 78 | self.mode = CS_MODE_THUMB + self.endian 79 | 80 | elif self.mode == 4: 81 | self.mode = CS_MODE_ARM + self.endian 82 | 83 | elif self.mode == 8: 84 | # 64bit ARM64 only supports little endian 85 | self.arch = CS_ARCH_ARM64 86 | self.mode = CS_MODE_LITTLE_ENDIAN 87 | 88 | # PowerPC 89 | elif self.arch == CS_ARCH_PPC: 90 | if self.mode == 4: 91 | # 32 bit PowerPC architecture only supports big endian 92 | self.mode += CS_MODE_BIG_ENDIAN 93 | elif self.mode == 8: 94 | if self.endian == CS_MODE_BIG_ENDIAN: 95 | self.mode += self.endian 96 | 97 | # Mips 98 | elif self.arch == CS_ARCH_MIPS: 99 | if self.endian == CS_MODE_BIG_ENDIAN: 100 | self.mode += CS_MODE_BIG_ENDIAN 101 | 102 | md = Cs(self.arch, self.mode) 103 | 104 | ret = "" 105 | change = Code() 106 | for i in md.disasm(self.data, base_addr): 107 | ret += "0x%x:\t%-30s\t%s\t%s\n" % (i.address, change.bytes_to_hex_space(i.bytes), i.mnemonic, i.op_str) 108 | 109 | return ret 110 | 111 | 112 | if __name__ == "__main__": 113 | # Testcases 114 | data = b"ADD X8, X8, X20" 115 | ks = Ks(KS_ARCH_ARM64, KS_MODE_LITTLE_ENDIAN) 116 | encoding, count = ks.asm(data) 117 | print(encoding) -------------------------------------------------------------------------------- /util/crypt.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : crypt.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | ''' 8 | 9 | 10 | from Crypto.Cipher import AES 11 | from Crypto.Cipher import DES 12 | from Crypto.Cipher import DES3 13 | from Crypto.Cipher import ARC2 14 | 15 | from Crypto.Util.Padding import pad 16 | from Crypto.Util.Padding import unpad 17 | import base64 18 | 19 | MODE_ECB = 1 20 | MODE_CBC = 2 21 | MODE_CFB = 3 22 | MODE_OFB = 5 23 | MODE_CTR = 6 24 | MODE_OPENPGP = 7 25 | MODE_CCM = 8 26 | MODE_EAX = 9 27 | MODE_SIV = 10 28 | MODE_GCM = 11 29 | MODE_OCB = 12 30 | 31 | KEY_64 = 1 32 | KEY_128 = 2 33 | KEY_192 = 3 34 | KEY_256 = 4 35 | 36 | class Cipher(): 37 | def __init__(self, model, padding, key_length, key, iv): 38 | """ 39 | Encryption Class 40 | :param model: int type 41 | :param padding: str type 42 | :param key_length: int type, 16,24,32 43 | :param key: bytes type 44 | :param iv: bytes type 45 | """ 46 | self.model = model 47 | self.padding = padding 48 | self.key_length = key_length 49 | self.key = key 50 | self.iv = iv 51 | 52 | def get_cipher_object(self, algorithm): 53 | """ 54 | Get cipher object 55 | :param algorithm: Crypto.Cipher.AES/DES... 56 | :return: AES/DEX... object 57 | """ 58 | if self.model in (MODE_ECB, MODE_CTR, MODE_CCM, MODE_EAX, MODE_SIV, MODE_GCM, MODE_OCB): 59 | cipher = algorithm.new(key=self.key, mode=self.model) 60 | else: 61 | cipher = algorithm.new(key=self.key, mode=self.model, iv=self.iv) 62 | 63 | return cipher 64 | 65 | def get_ciphertext(self, data, algorithm): 66 | """ 67 | AES/DES/3DES/... Encryption function 68 | :param data: Data to be encrypted (bytes) 69 | :return: Encrypted data 70 | """ 71 | padding_text = pad(data, self.key_length, self.padding) 72 | 73 | if algorithm == "AES": 74 | cipher = self.get_cipher_object(AES) 75 | 76 | elif algorithm == "DES": 77 | cipher = self.get_cipher_object(DES) 78 | 79 | elif algorithm == "3DES": 80 | cipher = self.get_cipher_object(DES3) 81 | 82 | elif algorithm == "RC2": 83 | cipher = self.get_cipher_object(ARC2) 84 | 85 | return cipher.encrypt(padding_text) 86 | 87 | 88 | def get_plaintext(self, data, algorithm): 89 | """ 90 | AES/DES/3DES/... Decryption function 91 | :param data: Data to be decrypted (bytes) 92 | :return: Decrypted data 93 | """ 94 | if algorithm == "AES": 95 | cipher = self.get_cipher_object(AES) 96 | 97 | elif algorithm == "DES": 98 | cipher = self.get_cipher_object(DES) 99 | 100 | elif algorithm == "3DES": 101 | cipher = self.get_cipher_object(DES3) 102 | 103 | elif algorithm == "RC2": 104 | cipher = self.get_cipher_object(ARC2) 105 | 106 | # Not all data is AES/DES/3DES/... encrypted 107 | # try: 108 | plain_text = cipher.decrypt(data) 109 | unpadding_text = unpad(plain_text, self.key_length, self.padding) 110 | # except ValueError: 111 | # raise 112 | # else: 113 | return unpadding_text 114 | 115 | 116 | if __name__ == "__main__": 117 | # Testcases 118 | s = "xiaoming".encode("utf-8") 119 | des3 = Cipher(1, 'pkcs7', 16, b'1234567812345678', b'') 120 | d = des3.get_ciphertext(s, "3DES") 121 | print(base64.encodebytes(d)) -------------------------------------------------------------------------------- /util/log.py: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2021 Yansong Li 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | """The module of log . 23 | 24 | This script contains log helper which will be used for print all kinds of log. 25 | """ 26 | """日志打印模块 27 | 28 | 打印提示、错误以及调试日志。 29 | """ 30 | 31 | #!/usr/bin/env python 32 | # -*- encoding: utf-8 -*- 33 | 34 | class Log(): 35 | def __init__(self): 36 | pass 37 | 38 | @classmethod 39 | def info(cls, *args): 40 | """ 41 | Print info information 42 | :param args: Multiple strings or tuples or bytes 43 | :return: null 44 | """ 45 | data = "" 46 | for i in range(len(args)): 47 | if isinstance(args[i], tuple): 48 | data += str(args[i]) 49 | elif isinstance(args[i], str): 50 | data += args[i] 51 | elif isinstance(args[i], bytes): 52 | data += str(args[i]) 53 | data += " " 54 | 55 | # "\e[1;32m" Green 56 | print('\033[0;32m[+] %s\033[0m' % data) 57 | 58 | @classmethod 59 | def error(cls, *args): 60 | data = "" 61 | for i in range(len(args)): 62 | if isinstance(args[i], tuple): 63 | data += str(args[i]) 64 | elif isinstance(args[i], str): 65 | data += args[i] 66 | elif isinstance(args[i], bytes): 67 | data += str(args[i]) 68 | data += " " 69 | 70 | # "\e[1;31m" Red 71 | print('\033[0;31m[-] %s\033[0m' % data) 72 | 73 | @classmethod 74 | def debug(cls, *args): 75 | """ 76 | Print debug information 77 | :param args: Multiple strings or tuples 78 | :return: null 79 | """ 80 | data = "" 81 | for i in range(len(args)): 82 | if isinstance(args[i], tuple): 83 | data += str(args[i]) 84 | elif isinstance(args[i], str): 85 | data += args[i] 86 | elif isinstance(args[i], bytes): 87 | data += str(args[i]) 88 | data += " " 89 | 90 | # "\e[1;33m" Yellow 91 | print('\033[0;33m[*] %s\033[0m' % data) 92 | -------------------------------------------------------------------------------- /util/map.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : map.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | ''' 8 | 9 | from keystone import * 10 | from capstone import * 11 | 12 | 13 | # asm--------------------------------- 14 | ARCH_BEFORE = 0 15 | MODE_BEFORE = 0 16 | ENDIAN_BEFORE = 0 17 | 18 | map_arch_ks = { 19 | "x86": KS_ARCH_X86, 20 | "ARM": KS_ARCH_ARM, 21 | "MIPS": KS_ARCH_MIPS, 22 | "Sparc": KS_ARCH_SPARC, 23 | "PowerPC": KS_ARCH_PPC 24 | } 25 | 26 | map_arch_cs = { 27 | "x86": CS_ARCH_X86, 28 | "ARM": CS_ARCH_ARM, 29 | "MIPS": CS_ARCH_MIPS, 30 | "Sparc": CS_ARCH_SPARC, 31 | "PowerPC": CS_ARCH_PPC 32 | } 33 | 34 | map_mode = { 35 | "16bit": 2, 36 | "32bit": 4, 37 | "64bit": 8 38 | } 39 | 40 | map_endian_ks = { 41 | "Little Endian": KS_MODE_LITTLE_ENDIAN, 42 | "小端": KS_MODE_LITTLE_ENDIAN, 43 | "Big Endian": KS_MODE_BIG_ENDIAN, 44 | "大端": KS_MODE_BIG_ENDIAN 45 | } 46 | 47 | map_endian_cs = { 48 | "Little Endian": CS_MODE_LITTLE_ENDIAN, 49 | "小端": CS_MODE_LITTLE_ENDIAN, 50 | "Big Endian": CS_MODE_BIG_ENDIAN, 51 | "大端": CS_MODE_BIG_ENDIAN 52 | } -------------------------------------------------------------------------------- /util/ui_helper.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- encoding: utf-8 -*- 3 | ''' 4 | @File : ui_helper.py 5 | @Contact : https://github.com/liyansong2018/ReverseWidget 6 | @License : (C)Copyright 2021, liyansong 7 | ''' 8 | 9 | import html 10 | import re 11 | from PyQt5.Qt import * 12 | 13 | 14 | class UiHelper: 15 | all_widget = [] 16 | 17 | def __init__(self, ui, present_widget=None): 18 | self.ui = ui 19 | if present_widget: 20 | UiHelper.all_widget.append(present_widget) 21 | 22 | def combobox_item_disable(self, qcom_box, *args): 23 | """ 24 | Set qcombobox item to not optional 25 | :param qcom_box: qcombobox objection 26 | :param args: index 27 | :return: null 28 | """ 29 | for i in range(len(args)): 30 | qcom_box.setItemData(args[i] - 1, QVariant(0), Qt.UserRole - 1) 31 | 32 | def combobox_item_able(self, qcom_box, *args): 33 | """ 34 | Set qcombobox item to optional 35 | :param qcom_box: qcombobox objection 36 | :param args: index 37 | :return: null 38 | """ 39 | for i in range(len(args)): 40 | qcom_box.setItemData(args[i] - 1, QVariant(1 | 32), Qt.UserRole - 1) 41 | 42 | def groupbox_show(self, groupbox_show, groupbox_all): 43 | """ 44 | Show the UI of each tab 45 | :param groupbox_show: need to show 46 | :param groupbox_all: the entire UI covers all the goupbox that need to be changed 47 | :return: null 48 | """ 49 | for i in groupbox_all: 50 | if i not in groupbox_show: 51 | i.close() 52 | 53 | for i in groupbox_show: 54 | i.show() 55 | 56 | self.ui.welcomeGroupBox.close() 57 | self.ui.formGroupBox.show() 58 | 59 | 60 | def widget_show(self, widgets): 61 | """ 62 | Show target and close unnecessary widgets 63 | :param widgets: target widgets 64 | :return: null 65 | """ 66 | # add widget to all_widget 67 | # add widget to changeLayout 68 | for widget in widgets: 69 | if widget not in UiHelper.all_widget: 70 | UiHelper.all_widget.append(widget) 71 | self.ui.changeLayout.addWidget(widget, 0, 0, 1, 1) 72 | 73 | # close other widget 74 | for widget in UiHelper.all_widget: 75 | if widget not in widgets: 76 | widget.close() 77 | 78 | # show widget 79 | for widget in widgets: 80 | widget.show() 81 | 82 | class Helper: 83 | @staticmethod 84 | def get_version(): 85 | with open("VERSION") as fp: 86 | return (fp.readline(), fp.readline()) 87 | 88 | @staticmethod 89 | def font_bold(font): 90 | return "" + font + "" 91 | 92 | @classmethod 93 | def font_red(cls, info): 94 | """ 95 | Mark the error message in red 96 | :param info: error 97 | :return: red font 98 | """ 99 | return ' %s ' % html.escape(info) 100 | 101 | 102 | class string(str): 103 | def replace(self, regex, cls): 104 | self = re.sub(regex, cls, self) 105 | this = string(self) 106 | return this 107 | --------------------------------------------------------------------------------