├── .gitignore ├── .hgignore ├── Build-process.md ├── CMakeLists.txt ├── INSTALL ├── LICENCE ├── README.md ├── cmake_uninstall.cmake.in ├── cmdline ├── CMakeLists.txt ├── main.cpp ├── masterthread.cpp ├── masterthread.h └── pip3linecmd.pro ├── defaultplugins ├── baseplugins │ ├── CMakeLists.txt │ ├── FIX44.xml │ ├── base32.cpp │ ├── base32.h │ ├── base64.cpp │ ├── base64.h │ ├── baseplugin.json │ ├── baseplugins.cpp │ ├── baseplugins.h │ ├── baseplugins.pro │ ├── baseplugins_global.h │ ├── baseplugins_res.qrc │ ├── basex.cpp │ ├── basex.h │ ├── binary.cpp │ ├── binary.h │ ├── byterot.cpp │ ├── byterot.h │ ├── bytesinteger.cpp │ ├── bytesinteger.h │ ├── bytestofloat.cpp │ ├── bytestofloat.h │ ├── charencoding.cpp │ ├── charencoding.h │ ├── ciscosecret7.cpp │ ├── ciscosecret7.h │ ├── composed.qrc │ ├── composedxml │ │ ├── base64UrlEncode.xml │ │ ├── binarynumber.xml │ │ ├── hexanumber.xml │ │ └── octalnumber.xml │ ├── confgui │ │ ├── base32widget.cpp │ │ ├── base32widget.h │ │ ├── base32widget.ui │ │ ├── base64widget.cpp │ │ ├── base64widget.h │ │ ├── base64widget.ui │ │ ├── basexwidget.cpp │ │ ├── basexwidget.h │ │ ├── basexwidget.ui │ │ ├── binarywidget.cpp │ │ ├── binarywidget.h │ │ ├── binarywidget.ui │ │ ├── byteintegerwidget.cpp │ │ ├── byteintegerwidget.h │ │ ├── byteintegerwidget.ui │ │ ├── byterotwidget.cpp │ │ ├── byterotwidget.h │ │ ├── byterotwidget.ui │ │ ├── bytestofloatwdiget.cpp │ │ ├── bytestofloatwdiget.h │ │ ├── bytestofloatwdiget.ui │ │ ├── charencodingwidget.cpp │ │ ├── charencodingwidget.h │ │ ├── charencodingwidget.ui │ │ ├── crc32widget.cpp │ │ ├── crc32widget.h │ │ ├── crc32widget.ui │ │ ├── cutwidget.cpp │ │ ├── cutwidget.h │ │ ├── cutwidget.ui │ │ ├── hexencodewidget.cpp │ │ ├── hexencodewidget.h │ │ ├── hexencodewidget.ui │ │ ├── hieroglyphywidget.cpp │ │ ├── hieroglyphywidget.h │ │ ├── hieroglyphywidget.ui │ │ ├── hmactransformwidget.cpp │ │ ├── hmactransformwidget.h │ │ ├── hmactransformwidget.ui │ │ ├── htmlwidget.cpp │ │ ├── htmlwidget.h │ │ ├── htmlwidget.ui │ │ ├── iptranslateipv4widget.cpp │ │ ├── iptranslateipv4widget.h │ │ ├── iptranslateipv4widget.ui │ │ ├── microsofttimestampwidget.cpp │ │ ├── microsofttimestampwidget.h │ │ ├── microsofttimestampwidget.ui │ │ ├── ntlmsspwidget.cpp │ │ ├── ntlmsspwidget.h │ │ ├── ntlmsspwidget.ui │ │ ├── numbertocharwidget.cpp │ │ ├── numbertocharwidget.h │ │ ├── numbertocharwidget.ui │ │ ├── paddingwidget.cpp │ │ ├── paddingwidget.h │ │ ├── paddingwidget.ui │ │ ├── randomcasewidget.cpp │ │ ├── randomcasewidget.h │ │ ├── randomcasewidget.ui │ │ ├── regularexpwidget.cpp │ │ ├── regularexpwidget.h │ │ ├── regularexpwidget.ui │ │ ├── reversewidget.cpp │ │ ├── reversewidget.h │ │ ├── reversewidget.ui │ │ ├── rotxwidget.cpp │ │ ├── rotxwidget.h │ │ ├── rotxwidget.ui │ │ ├── splitwidget.cpp │ │ ├── splitwidget.h │ │ ├── splitwidget.ui │ │ ├── substitutionwidget.cpp │ │ ├── substitutionwidget.h │ │ ├── substitutionwidget.ui │ │ ├── timestampwidget.cpp │ │ ├── timestampwidget.h │ │ ├── timestampwidget.ui │ │ ├── urlencodewidget.cpp │ │ ├── urlencodewidget.h │ │ ├── urlencodewidget.ui │ │ ├── xmlquerywidget.cpp │ │ ├── xmlquerywidget.h │ │ ├── xmlquerywidget.ui │ │ ├── xorwidget.cpp │ │ ├── xorwidget.h │ │ ├── xorwidget.ui │ │ ├── zlibwidget.cpp │ │ ├── zlibwidget.h │ │ └── zlibwidget.ui │ ├── crc32.cpp │ ├── crc32.h │ ├── cut.cpp │ ├── cut.h │ ├── fixprotocol.cpp │ ├── fixprotocol.h │ ├── hexencode.cpp │ ├── hexencode.h │ ├── hieroglyphy.cpp │ ├── hieroglyphy.h │ ├── hmactransform.cpp │ ├── hmactransform.h │ ├── html.cpp │ ├── html.h │ ├── iptranslateipv4.cpp │ ├── iptranslateipv4.h │ ├── javascriptconcat.cpp │ ├── javascriptconcat.h │ ├── md4.cpp │ ├── md4.h │ ├── md5.cpp │ ├── md5.h │ ├── microsofttimestamp.cpp │ ├── microsofttimestamp.h │ ├── mssqlconcat.cpp │ ├── mssqlconcat.h │ ├── mysqlconcat.cpp │ ├── mysqlconcat.h │ ├── mysqlconcatv2.cpp │ ├── mysqlconcatv2.h │ ├── networkmaskipv4.cpp │ ├── networkmaskipv4.h │ ├── networkmaskipv6.cpp │ ├── networkmaskipv6.h │ ├── ntlmssp.cpp │ ├── ntlmssp.h │ ├── numbertochar.cpp │ ├── numbertochar.h │ ├── opensslhashes.cpp │ ├── opensslhashes.h │ ├── oracleconcat.cpp │ ├── oracleconcat.h │ ├── padding.cpp │ ├── padding.h │ ├── postgresconcat.cpp │ ├── postgresconcat.h │ ├── randomcase.cpp │ ├── randomcase.h │ ├── regularexp.cpp │ ├── regularexp.h │ ├── reverse.cpp │ ├── reverse.h │ ├── rotx.cpp │ ├── rotx.h │ ├── sha1.cpp │ ├── sha1.h │ ├── sha224.cpp │ ├── sha224.h │ ├── sha256.cpp │ ├── sha256.h │ ├── sha384.cpp │ ├── sha384.h │ ├── sha3_224.cpp │ ├── sha3_224.h │ ├── sha3_256.cpp │ ├── sha3_256.h │ ├── sha3_384.cpp │ ├── sha3_384.h │ ├── sha3_512.cpp │ ├── sha3_512.h │ ├── sha512.cpp │ ├── sha512.h │ ├── split.cpp │ ├── split.h │ ├── substitution.cpp │ ├── substitution.h │ ├── timestamp.cpp │ ├── timestamp.h │ ├── urlencode.cpp │ ├── urlencode.h │ ├── xmlquery.cpp │ ├── xmlquery.h │ ├── xor.cpp │ ├── xor.h │ ├── zlib.cpp │ └── zlib.h ├── distormplugin │ ├── CMakeLists.txt │ ├── distorm.pro │ ├── distorm_global.h │ ├── distormplugin.cpp │ ├── distormplugin.h │ ├── distormplugin.json │ ├── distormtransf.cpp │ ├── distormtransf.h │ ├── distormwidget.cpp │ ├── distormwidget.h │ └── distormwidget.ui ├── exampleplugin │ ├── CMakeLists.txt │ ├── exampleplugin.cpp │ ├── exampleplugin.h │ ├── exampleplugin.json │ ├── exampleplugin.pro │ ├── exampleplugin_global.h │ ├── identity.cpp │ └── identity.h ├── opensslplugin │ ├── CMakeLists.txt │ ├── opensslhashes.cpp │ ├── opensslhashes.h │ ├── opensslplugin.cpp │ ├── opensslplugin.h │ ├── opensslplugin.json │ ├── opensslplugin.pro │ └── opensslplugin_global.h ├── python27plugin │ └── CMakeLists.txt └── pythonplugin │ ├── CMakeLists.txt │ ├── pythonmodules.cpp │ ├── pythonmodules.h │ ├── pythonplugin.cpp │ ├── pythonplugin.h │ ├── pythonplugin.json │ ├── pythonplugin.pro │ ├── pythonplugin_global.h │ ├── pythontransform.cpp │ └── pythontransform.h ├── extras ├── burp_plugin │ ├── .project │ ├── .settings │ │ └── org.eclipse.jdt.core.prefs │ └── src │ │ └── burp │ │ ├── BurpExtender.java │ │ ├── PayloadProcessor.java │ │ ├── Pip3lineContextMenu.java │ │ └── Pip3lineTab.java ├── gentoo_package │ ├── metadata.xml │ └── pip3line-TEMPLATE.ebuild ├── python_scripts_example │ ├── bz2_python27.py │ ├── gzip_python3.py │ ├── mytransform_TEMPLATE.py │ └── pip3line.py └── sublime_text_3_plugin │ ├── Context.sublime-menu │ ├── README │ ├── pip3line.sublime-settings │ └── sendtopip3line.py ├── gui ├── CMakeLists.txt ├── aboutdialog.cpp ├── aboutdialog.h ├── aboutdialog.ui ├── analysedialog.cpp ├── analysedialog.h ├── analysedialog.ui ├── appdialog.cpp ├── appdialog.h ├── comparisondialog.cpp ├── comparisondialog.h ├── comparisondialog.ui ├── crossplatform.h ├── debugdialog.cpp ├── debugdialog.h ├── debugdialog.ui ├── defaultsxml │ ├── base32decode.xml │ ├── base64decode.xml │ ├── cstylearray.xml │ ├── escapedhexadecimal.xml │ ├── escapedhexadecimalmixed.xml │ ├── hexadecimal.xml │ ├── int16lesign.xml │ ├── int32lesign.xml │ ├── int64lesign.xml │ ├── int64leunsign.xml │ ├── int8lesign.xml │ ├── urlencoded.xml │ └── utf16le.xml ├── downloadmanager.cpp ├── downloadmanager.h ├── floatingdialog.cpp ├── floatingdialog.h ├── floatingdialog.ui ├── gui_res.qrc ├── guihelper.cpp ├── guihelper.h ├── icons │ ├── application-exit-4.png │ ├── application-x-executable.png │ ├── arrow-left-3.png │ ├── arrow-right-3-mod.png │ ├── arrow-right-double-3.png │ ├── configure-5.png │ ├── dialog-cancel-3.png │ ├── dialog-important.png │ ├── dialog-more.png │ ├── document-new-3.png │ ├── document-open-8.png │ ├── document-properties.png │ ├── document-save-5.png │ ├── edit-clear-2.png │ ├── edit-copy-3.png │ ├── edit-copy-4.png │ ├── edit-delete-4.png │ ├── edit-find-10.png │ ├── edit-find-7.png │ ├── edit-find-and-replace-2.png │ ├── edit-find-and-replace.png │ ├── edit-redo-8.png │ ├── edit-undo-8.png │ ├── go-bottom-3.png │ ├── go-last-2.png │ ├── go-next-4.png │ ├── go-previous-4.png │ ├── go-top-3.png │ ├── irc-close-channel.png │ ├── media-playback-start.png │ ├── media-playback-stop-7.png │ ├── media-seek-forward-7.png │ ├── object-flip-horizontal.png │ ├── object-rotate-right.png │ ├── object-rotate-right_out.png │ ├── pip3line.ico │ ├── pip3line.png │ ├── system-search-2.png │ ├── system-switch-user-3.png │ ├── tab-duplicate-2.png │ ├── view-fullscreen-4.png │ ├── view-refresh.png │ ├── view-restore-2.png │ └── window-new-7.png ├── infodialog.cpp ├── infodialog.h ├── infodialog.ui ├── insertdialog.ui ├── loggerwidget.cpp ├── loggerwidget.h ├── loggerwidget.ui ├── main.cpp ├── maintabs.cpp ├── maintabs.h ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── massprocessingdialog.cpp ├── massprocessingdialog.h ├── massprocessingdialog.ui ├── messagedialog.cpp ├── messagedialog.h ├── messagedialog.ui ├── newbytedialog.cpp ├── newbytedialog.h ├── newbytedialog.ui ├── pip3line.desktop ├── pip3line.pro ├── pluginconfwidget.cpp ├── pluginconfwidget.h ├── pluginconfwidget.ui ├── quickviewdialog.cpp ├── quickviewdialog.h ├── quickviewdialog.ui ├── quickviewitem.cpp ├── quickviewitem.h ├── quickviewitem.ui ├── quickviewitemconfig.cpp ├── quickviewitemconfig.h ├── quickviewitemconfig.ui ├── regexphelpdialog.cpp ├── regexphelpdialog.h ├── regexphelpdialog.ui ├── release.txt ├── screeniodevice.cpp ├── screeniodevice.h ├── settingsdialog.cpp ├── settingsdialog.h ├── settingsdialog.ui ├── shared │ ├── bytesourceguibutton.cpp │ ├── bytesourceguibutton.h │ ├── clearallmarkingsbutton.cpp │ ├── clearallmarkingsbutton.h │ ├── detachtabbutton.cpp │ ├── detachtabbutton.h │ ├── guiconst.h │ ├── hexwidget.cpp │ ├── hexwidget.h │ ├── hexwidget.ui │ ├── messagepanelwidget.cpp │ ├── messagepanelwidget.h │ ├── messagepanelwidget.ui │ ├── offsetgotowidget.cpp │ ├── offsetgotowidget.h │ ├── readonlybutton.cpp │ ├── readonlybutton.h │ ├── searchresultswidget.cpp │ ├── searchresultswidget.h │ ├── searchresultswidget.ui │ ├── searchwidget.cpp │ ├── searchwidget.h │ ├── universalreceiverbutton.cpp │ └── universalreceiverbutton.h ├── sources │ ├── basicsource.cpp │ ├── basicsource.h │ ├── blocksources │ │ ├── blockssource.cpp │ │ ├── blockssource.h │ │ ├── rawtcplistener.cpp │ │ ├── rawtcplistener.h │ │ ├── tcplistener.cpp │ │ ├── tcplistener.h │ │ ├── tcpserverlistener.cpp │ │ ├── tcpserverlistener.h │ │ ├── udplistener.cpp │ │ └── udplistener.h │ ├── bytesourceabstract.cpp │ ├── bytesourceabstract.h │ ├── currentmemorysource.cpp │ ├── currentmemorysource.h │ ├── filewidget.cpp │ ├── filewidget.h │ ├── filewidget.ui │ ├── intercept │ │ ├── intercepsource.cpp │ │ ├── intercepsource.h │ │ ├── interceptorchestratorabstract.cpp │ │ ├── interceptorchestratorabstract.h │ │ ├── interceptorproxy.cpp │ │ ├── interceptorproxy.h │ │ ├── interceptsetupwidget.cpp │ │ ├── interceptsetupwidget.h │ │ ├── interceptsetupwidget.ui │ │ ├── interceptwidget.cpp │ │ ├── interceptwidget.h │ │ ├── interceptwidget.ui │ │ ├── payload.cpp │ │ ├── payload.h │ │ ├── payloadmodel.cpp │ │ └── payloadmodel.h │ ├── intermediatesource.cpp │ ├── intermediatesource.h │ ├── largefile.cpp │ ├── largefile.h │ ├── largerandomaccesssource.cpp │ ├── largerandomaccesssource.h │ ├── memorywidget.cpp │ ├── memorywidget.h │ ├── memorywidget.ui │ ├── networkclientwidget.cpp │ ├── networkclientwidget.h │ ├── networkclientwidget.ui │ ├── networkconfwidget.cpp │ ├── networkconfwidget.h │ ├── networkconfwidget.ui │ ├── pcapsource.cpp │ ├── pcapsource.h │ ├── searchabstract.cpp │ └── searchabstract.h ├── state │ ├── basestateabstract.cpp │ ├── basestateabstract.h │ ├── closingstate.cpp │ ├── closingstate.h │ ├── statedialog.cpp │ ├── statedialog.h │ ├── statedialog.ui │ ├── stateorchestrator.cpp │ ├── stateorchestrator.h │ ├── statestatuswidget.cpp │ ├── statestatuswidget.h │ └── statestatuswidget.ui ├── tabs │ ├── generictab.cpp │ ├── generictab.h │ ├── generictab.ui │ ├── randomaccesstab.cpp │ ├── randomaccesstab.h │ ├── randomaccesstab.ui │ ├── tababstract.cpp │ ├── tababstract.h │ ├── transformsgui.cpp │ ├── transformsgui.h │ └── transformsgui.ui ├── textinputdialog.cpp ├── textinputdialog.h ├── textinputdialog.ui ├── transformwidget.cpp ├── transformwidget.h ├── transformwidget.ui ├── views │ ├── byteitemmodel.cpp │ ├── byteitemmodel.h │ ├── bytetableview.cpp │ ├── bytetableview.h │ ├── foldedview.cpp │ ├── foldedview.h │ ├── foldedview.ui │ ├── hexview.cpp │ ├── hexview.h │ ├── hexview.ui │ ├── singleviewabstract.cpp │ ├── singleviewabstract.h │ ├── textview.cpp │ ├── textview.h │ └── textview.ui └── win.rc ├── libtransform ├── CMakeLists.txt ├── LibTransform ├── commonstrings.h ├── composedtransform.cpp ├── composedtransform.h ├── deleteablelistitem.cpp ├── deleteablelistitem.h ├── deleteablelistitem.ui ├── libtransform.pro ├── libtransform_global.h ├── modulesmanagement.cpp ├── modulesmanagement.h ├── modulesmanagementwidget.cpp ├── modulesmanagementwidget.h ├── modulesmanagementwidget.ui ├── moduletransformwidget.cpp ├── moduletransformwidget.h ├── moduletransformwidget.ui ├── pip3linecallback.cpp ├── pip3linecallback.h ├── scripttransformabstract.cpp ├── scripttransformabstract.h ├── threadedprocessor.cpp ├── threadedprocessor.h ├── transformabstract.cpp ├── transformabstract.h ├── transformchain.cpp ├── transformchain.h ├── transformfactoryplugininterface.h ├── transformmgmt.cpp └── transformmgmt.h ├── todo ├── tools ├── binaryprocessor.cpp ├── binaryprocessor.h ├── pipeserver.cpp ├── pipeserver.h ├── processingstats.cpp ├── processingstats.h ├── processor.cpp ├── processor.h ├── serverabstract.cpp ├── serverabstract.h ├── streamprocessor.cpp ├── streamprocessor.h ├── tcpserver.cpp ├── tcpserver.h ├── textprocessor.cpp ├── textprocessor.h └── todo ├── unittests └── unittests │ ├── tst_unitteststest.cpp │ └── unittests.pro ├── version.h └── win_package.bat /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | *.txt.user 4 | *.pro.user* 5 | moc_* 6 | ui_* 7 | *~ 8 | Makefile* 9 | build/* 10 | bin/* 11 | lib/* 12 | *.so* 13 | qrc_* 14 | scripts/__pycache__/* 15 | *.pyc 16 | *.jar 17 | unittests/unittests-build-* 18 | unittests/build-* 19 | pip3line.kdev4 20 | extras/burp_plugin/bin 21 | *.jardesc 22 | extras/burp_plugin/.classpath 23 | -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | *.o 4 | *.so 5 | *.txt.user 6 | *.pro.user* 7 | moc_* 8 | ui_* 9 | *~ 10 | Makefile* 11 | build/* 12 | bin/* 13 | lib/* 14 | plugins/ExamplePlugin/libExamplePlugin.so* 15 | qrc_* 16 | scripts/__pycache__/* 17 | *.pyc 18 | *.jar 19 | unittests/unittests-build-* 20 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 3 | # https://github.com/nccgroup/pip3line 4 | # Released under AGPL see LICENSE for more information 5 | 6 | For installation instructions see the github wiki. 7 | 8 | https://github.com/nccgroup/pip3line/wiki/ 9 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | pip3line 2 | ======== 3 | 4 | Raw bytes manipulation utility, able to apply well known and less well known transformations. 5 | 6 | The developpement and main page as moved to : 7 | 8 | https://github.com/metrodango/pip3line 9 | 10 | -------------------------------------------------------------------------------- /cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 3 | # https://github.com/nccgroup/pip3line 4 | # Released under AGPL see LICENSE for more information 5 | 6 | if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 7 | message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") 8 | endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 9 | 10 | file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) 11 | string(REGEX REPLACE "\n" ";" files "${files}") 12 | list(REVERSE files) 13 | foreach (file ${files}) 14 | message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") 15 | if (EXISTS "$ENV{DESTDIR}${file}") 16 | execute_process( 17 | COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}" 18 | OUTPUT_VARIABLE rm_out 19 | RESULT_VARIABLE rm_retval 20 | ) 21 | if(NOT ${rm_retval} EQUAL 0) 22 | message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") 23 | endif (NOT ${rm_retval} EQUAL 0) 24 | else (EXISTS "$ENV{DESTDIR}${file}") 25 | message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") 26 | endif (EXISTS "$ENV{DESTDIR}${file}") 27 | endforeach(file) 28 | -------------------------------------------------------------------------------- /cmdline/pip3linecmd.pro: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | QT += core gui 10 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 11 | 12 | VERSION = 1.2 13 | 14 | TARGET = pip3linecmd 15 | CONFIG += console release 16 | CONFIG -= app_bundle 17 | DESTDIR = ../bin 18 | TEMPLATE = app 19 | 20 | INCLUDEPATH += "../libtransform" 21 | 22 | unix { 23 | LIBS += -L"../bin" -ltransform 24 | } 25 | 26 | win32 { 27 | LIBS += -L"../lib" -ltransform 28 | } 29 | 30 | SOURCES += main.cpp \ 31 | ../tools/processor.cpp \ 32 | masterthread.cpp \ 33 | ../tools/binaryprocessor.cpp \ 34 | ../tools/textprocessor.cpp 35 | 36 | HEADERS += \ 37 | ../tools/processor.h \ 38 | masterthread.h \ 39 | ../tools/binaryprocessor.h \ 40 | ../tools/textprocessor.h 41 | 42 | 43 | unix { 44 | ROOT_PATH = /usr/local 45 | target.path = $$ROOT_PATH/bin/ 46 | INSTALLS += target 47 | } 48 | 49 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/baseplugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "BasePlugins" ] 3 | } 4 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/baseplugins_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BASEPLUGINS_GLOBAL_H 12 | #define BASEPLUGINS_GLOBAL_H 13 | 14 | #include 15 | 16 | #if defined(BASEPLUGINS_LIBRARY) 17 | # define BASEPLUGINSSHARED_EXPORT Q_DECL_EXPORT 18 | #else 19 | # define BASEPLUGINSSHARED_EXPORT Q_DECL_IMPORT 20 | #endif 21 | 22 | #endif // BASEPLUGINS_GLOBAL_H 23 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/baseplugins_res.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | FIX44.xml 4 | 5 | 6 | composedxml/base64UrlEncode.xml 7 | composedxml/binarynumber.xml 8 | composedxml/hexanumber.xml 9 | composedxml/octalnumber.xml 10 | 11 | 12 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/basex.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BASEX_H 12 | #define BASEX_H 13 | 14 | #include 15 | #include 16 | 17 | class BaseX : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | public: 21 | static const QString id; 22 | static const int MINBASE = 2; 23 | static const int MAXBASE = 36; 24 | explicit BaseX(int base = 10); 25 | ~BaseX(); 26 | QString name() const; 27 | QString description() const; 28 | void transform(const QByteArray &input, QByteArray &output); 29 | bool isTwoWays(); 30 | QHash getConfiguration(); 31 | bool setConfiguration(QHash propertiesList); 32 | QWidget * requestGui(QWidget * parent); 33 | QString help() const; 34 | 35 | int getBase() const; 36 | bool getUppercase() const; 37 | bool setBase(int val); 38 | void setUppercase(bool val); 39 | private: 40 | int base; 41 | bool uppercase; 42 | }; 43 | 44 | #endif // BASEX_H 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/binary.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BINARY_H 12 | #define BINARY_H 13 | 14 | 15 | #include "transformabstract.h" 16 | 17 | class Binary : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | 21 | public: 22 | static const QByteArray BINARYCHAR; 23 | static const int MINBLOCKSIZE = 0; 24 | static const int MAXBLOCKSIZE = 1024; 25 | explicit Binary(); 26 | ~Binary(); 27 | QString name() const; 28 | QString description() const; 29 | void transform(const QByteArray &input, QByteArray &output); 30 | bool isTwoWays(); 31 | QHash getConfiguration(); 32 | bool setConfiguration(QHash propertiesList); 33 | QWidget * requestGui(QWidget * parent); 34 | static const QString id; 35 | QString help() const; 36 | 37 | int getBlockSize(); 38 | bool setBlockSize(int val); 39 | 40 | private: 41 | int blockSize; 42 | }; 43 | 44 | #endif // BINARY_H 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/byterot.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTEROT_H 12 | #define BYTEROT_H 13 | 14 | #include 15 | 16 | class ByteRot : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit ByteRot(); 21 | ~ByteRot(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | QWidget * requestGui(QWidget * parent); 27 | QString help() const; 28 | QHash getConfiguration(); 29 | bool setConfiguration(QHash propertiesList); 30 | static const QString id; 31 | 32 | int getRotation() const; 33 | void setRotation(int rot); 34 | 35 | private: 36 | int rotation; 37 | 38 | }; 39 | 40 | #endif // BYTEROT_H 41 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/bytestofloat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTESTOFLOAT_H 12 | #define BYTESTOFLOAT_H 13 | 14 | #include 15 | 16 | class BytesToFloat : public TransformAbstract 17 | { 18 | public: 19 | enum FloatSize { F32bits = 4, F64bits = 8 }; 20 | explicit BytesToFloat(); 21 | ~BytesToFloat(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | QWidget * requestGui(QWidget * parent); 27 | static const QString id; 28 | QHash getConfiguration(); 29 | bool setConfiguration(QHash propertiesList); 30 | 31 | bool isLittleEndian() const; 32 | void setLittleEndian(bool val); 33 | 34 | FloatSize getFloatSize() const; 35 | void setFloatSize(FloatSize val); 36 | 37 | int getPrecision() const; 38 | void setPrecision(int val); 39 | private: 40 | bool littleendian; 41 | FloatSize floatSize; 42 | int precision; 43 | }; 44 | 45 | #endif // BYTESTOFLOAT_H 46 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/ciscosecret7.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CISCOSECRET7_H 12 | #define CISCOSECRET7_H 13 | 14 | #include 15 | 16 | class CiscoSecret7 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit CiscoSecret7(); 21 | ~CiscoSecret7() {} 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | unsigned int getSeed() const; 29 | bool setSeed(unsigned int seed); 30 | private: 31 | unsigned int seed; 32 | void cipher(unsigned int seed, const QByteArray &data, QByteArray &output); 33 | static const QByteArray ckey; 34 | static const unsigned int MAXSEED; 35 | }; 36 | 37 | #endif // CISCOSECRET7_H 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/composed.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | hardcodedComposed/base64UrlEncode.xml 4 | hardcodedComposed/octalnumber.xml 5 | hardcodedComposed/binarynumber.xml 6 | hardcodedComposed/hexanumber.xml 7 | 8 | 9 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/composedxml/base64UrlEncode.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/composedxml/binarynumber.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/composedxml/hexanumber.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/composedxml/octalnumber.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/base32widget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BASE32WIDGET_H 12 | #define BASE32WIDGET_H 13 | 14 | #include 15 | #include "../base32.h" 16 | 17 | namespace Ui { 18 | class Base32Widget; 19 | } 20 | 21 | class Base32Widget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit Base32Widget(Base32 *transform, QWidget *parent = 0); 27 | ~Base32Widget(); 28 | 29 | private slots: 30 | void onVariantchange(int newVariant); 31 | void onPaddingChange(QString val); 32 | void onIncludePaddingToggled(bool val); 33 | private: 34 | Ui::Base32Widget *ui; 35 | Base32 *transform; 36 | }; 37 | 38 | #endif // BASE32WIDGET_H 39 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/base64widget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BASE64WIDGET_H 12 | #define BASE64WIDGET_H 13 | 14 | #include 15 | #include "../base64.h" 16 | 17 | namespace Ui { 18 | class Base64Widget; 19 | } 20 | 21 | class Base64Widget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit Base64Widget(Base64 *transform, QWidget *parent = 0); 27 | ~Base64Widget(); 28 | 29 | private slots: 30 | void onChangeVariant(int variant); 31 | void verifyChar62(QString nchar); 32 | void verifyChar63(QString nchar); 33 | void verifyCharPadding(QString nchar); 34 | void onCustomConf(); 35 | private: 36 | Ui::Base64Widget *ui; 37 | Base64 *transform; 38 | }; 39 | 40 | #endif // BASE64WIDGET_H 41 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/basexwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "basexwidget.h" 12 | #include "ui_basexwidget.h" 13 | 14 | BaseXWidget::BaseXWidget(BaseX *ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::BaseXWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::BaseXWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | ui->baseSpinBox->setValue(transform->getBase()); 24 | ui->uppercaseCheckBox->setChecked(transform->getUppercase()); 25 | connect(ui->baseSpinBox,SIGNAL(valueChanged(int)), this, SLOT(onBaseChange(int))); 26 | connect(ui->uppercaseCheckBox,SIGNAL(toggled(bool)), this, SLOT(onUpperCaseChange(bool))); 27 | } 28 | 29 | BaseXWidget::~BaseXWidget() 30 | { 31 | delete ui; 32 | } 33 | 34 | void BaseXWidget::onBaseChange(int val) 35 | { 36 | transform->setBase(val); 37 | } 38 | 39 | void BaseXWidget::onUpperCaseChange(bool val) 40 | { 41 | transform->setUppercase(val); 42 | } 43 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/basexwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BASEXWIDGET_H 12 | #define BASEXWIDGET_H 13 | 14 | #include 15 | #include "../basex.h" 16 | 17 | namespace Ui { 18 | class BaseXWidget; 19 | } 20 | 21 | class BaseXWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit BaseXWidget(BaseX *transform, QWidget *parent = 0); 27 | ~BaseXWidget(); 28 | private slots: 29 | void onBaseChange(int val); 30 | void onUpperCaseChange(bool val); 31 | private: 32 | Ui::BaseXWidget *ui; 33 | BaseX *transform; 34 | }; 35 | 36 | #endif // BASEXWIDGET_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/binarywidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "binarywidget.h" 12 | #include "ui_binarywidget.h" 13 | 14 | BinaryWidget::BinaryWidget(Binary *ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::BinaryWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::BinaryWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | 24 | ui->groupBySpinBox->setValue(transform->getBlockSize()); 25 | ui->groupBySpinBox->setMinimum(Binary::MINBLOCKSIZE); 26 | ui->groupBySpinBox->setMaximum(Binary::MAXBLOCKSIZE); 27 | connect(ui->groupBySpinBox,SIGNAL(valueChanged(int)), this, SLOT(onChangeGroupBy(int))); 28 | } 29 | 30 | BinaryWidget::~BinaryWidget() 31 | { 32 | delete ui; 33 | } 34 | 35 | void BinaryWidget::onChangeGroupBy(int value) 36 | { 37 | ui->groupBySpinBox->blockSignals(true); 38 | if (!transform->setBlockSize(value)) { 39 | if (value < Binary::MINBLOCKSIZE) { 40 | ui->groupBySpinBox->setValue(Binary::MINBLOCKSIZE); 41 | } else { 42 | ui->groupBySpinBox->setValue(Binary::MAXBLOCKSIZE); 43 | } 44 | } 45 | ui->groupBySpinBox->blockSignals(false); 46 | } 47 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/binarywidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BINARYWIDGET_H 12 | #define BINARYWIDGET_H 13 | 14 | #include 15 | #include "../binary.h" 16 | 17 | namespace Ui { 18 | class BinaryWidget; 19 | } 20 | 21 | class BinaryWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit BinaryWidget(Binary *ntransform, QWidget *parent = 0); 27 | ~BinaryWidget(); 28 | private slots: 29 | void onChangeGroupBy(int value); 30 | private: 31 | Ui::BinaryWidget *ui; 32 | Binary *transform; 33 | }; 34 | 35 | #endif // BINARYWIDGET_H 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/byteintegerwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTEINTEGERWIDGET_H 12 | #define BYTEINTEGERWIDGET_H 13 | 14 | #include 15 | #include "../bytesinteger.h" 16 | 17 | namespace Ui { 18 | class ByteIntegerWidget; 19 | } 20 | 21 | class ByteIntegerWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit ByteIntegerWidget(BytesInteger * transform,QWidget *parent = 0); 27 | ~ByteIntegerWidget(); 28 | 29 | private slots: 30 | void signedChanged(bool val); 31 | void bytesOrderChanged(bool val); 32 | void sizeChanged(); 33 | 34 | private: 35 | Ui::ByteIntegerWidget *ui; 36 | BytesInteger * transform; 37 | }; 38 | 39 | #endif // BYTEINTEGERWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/byterotwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "byterotwidget.h" 12 | #include "ui_byterotwidget.h" 13 | #include "../byterot.h" 14 | 15 | ByteRotWidget::ByteRotWidget(ByteRot * transf, QWidget *parent) : 16 | QWidget(parent) 17 | { 18 | ui = new(std::nothrow) Ui::ByteRotWidget(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::ByteRotWidget X{"); 21 | } 22 | 23 | ui->setupUi(this); 24 | transform = transf; 25 | ui->spinBox->setValue(transform->getRotation()); 26 | 27 | connect(ui->spinBox, SIGNAL(valueChanged(int)), SLOT(onRotationChanged(int))); 28 | } 29 | 30 | ByteRotWidget::~ByteRotWidget() 31 | { 32 | delete ui; 33 | } 34 | 35 | void ByteRotWidget::onRotationChanged(int val) 36 | { 37 | transform->setRotation(val); 38 | } 39 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/byterotwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTEROTWIDGET_H 12 | #define BYTEROTWIDGET_H 13 | 14 | #include 15 | 16 | namespace Ui { 17 | class ByteRotWidget; 18 | } 19 | 20 | class ByteRot; 21 | 22 | class ByteRotWidget : public QWidget 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit ByteRotWidget(ByteRot * transf, QWidget *parent = 0); 28 | ~ByteRotWidget(); 29 | private slots: 30 | void onRotationChanged(int val); 31 | private: 32 | Ui::ByteRotWidget *ui; 33 | ByteRot *transform; 34 | }; 35 | 36 | #endif // BYTEROTWIDGET_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/byterotwidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | * Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | * 6 | * Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 7 | * 8 | * https://github.com/nccgroup/pip3line 9 | * 10 | * Released under AGPL see LICENSE for more information 11 | 12 | ByteRotWidget 13 | 14 | 15 | 16 | 0 17 | 0 18 | 400 19 | 300 20 | 21 | 22 | 23 | Form 24 | 25 | 26 | 27 | 28 | 29 | rotation value 30 | 31 | 32 | 33 | 34 | 35 | 36 | -256 37 | 38 | 39 | 255 40 | 41 | 42 | 13 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/bytestofloatwdiget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTESTOFLOATWDIGET_H 12 | #define BYTESTOFLOATWDIGET_H 13 | 14 | #include 15 | #include "../bytestofloat.h" 16 | 17 | namespace Ui { 18 | class BytesToFloatWdiget; 19 | } 20 | 21 | class BytesToFloatWdiget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit BytesToFloatWdiget(BytesToFloat *transform,QWidget *parent = 0); 27 | ~BytesToFloatWdiget(); 28 | 29 | private slots: 30 | void onLittleEndianChange(bool checked); 31 | void on32BitSizeChanged(bool checked); 32 | void onPrecisionChanged(int val); 33 | 34 | private: 35 | Ui::BytesToFloatWdiget *ui; 36 | BytesToFloat *transform; 37 | }; 38 | 39 | #endif // BYTESTOFLOATWDIGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/charencodingwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CHARENCODINGWIDGET_H 12 | #define CHARENCODINGWIDGET_H 13 | 14 | #include 15 | #include "../charencoding.h" 16 | 17 | namespace Ui { 18 | class CharEncodingWidget; 19 | } 20 | 21 | class CharEncodingWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit CharEncodingWidget(CharEncoding *ntransform, QWidget *parent = 0); 27 | ~CharEncodingWidget(); 28 | private slots: 29 | void onCodecChange(); 30 | void on_UTF16PushButton_clicked(); 31 | void on_latin1PushButton_clicked(); 32 | void onUTF8Clicked(); 33 | void onInsertBOMChanged(bool val); 34 | void onConvertInvalidToNullChanged(bool val); 35 | 36 | private: 37 | Ui::CharEncodingWidget *ui; 38 | CharEncoding *transform; 39 | }; 40 | 41 | #endif // CHARENCODINGWIDGET_H 42 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/crc32widget.h: -------------------------------------------------------------------------------- 1 | #ifndef CRC32WIDGET_H 2 | #define CRC32WIDGET_H 3 | 4 | #include 5 | #include "../crc32.h" 6 | 7 | namespace Ui { 8 | class Crc32Widget; 9 | } 10 | 11 | class Crc32Widget : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit Crc32Widget(Crc32 *transform, QWidget *parent = 0); 17 | ~Crc32Widget(); 18 | private slots: 19 | void onLittleendianToggled(bool checked); 20 | void onHexaRadioButtonToggled(bool checked); 21 | void onAppendCheckBoxToggled(bool checked); 22 | private: 23 | Ui::Crc32Widget *ui; 24 | Crc32 *transform; 25 | }; 26 | 27 | #endif // CRC32WIDGET_H 28 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/cutwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CUTWIDGET_H 12 | #define CUTWIDGET_H 13 | 14 | #include 15 | #include "../cut.h" 16 | 17 | namespace Ui { 18 | class CutWidget; 19 | } 20 | 21 | class CutWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit CutWidget(Cut *ntransform, QWidget *parent = 0); 27 | ~CutWidget(); 28 | private slots: 29 | void onFromChange(int value); 30 | void onLengthChange(int value); 31 | void onEverythingChange(bool); 32 | void onCutToggled(bool checked); 33 | void onLineByLineToggled(bool checked); 34 | private: 35 | Ui::CutWidget *ui; 36 | Cut *transform; 37 | }; 38 | 39 | #endif // CUTWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/hexencodewidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HEXENCODEWIDGET_H 12 | #define HEXENCODEWIDGET_H 13 | 14 | #include 15 | #include "../hexencode.h" 16 | 17 | namespace Ui { 18 | class HexEncodeWidget; 19 | } 20 | 21 | class HexEncodeWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit HexEncodeWidget(HexEncode *ntransform, QWidget *parent = 0); 27 | ~HexEncodeWidget(); 28 | private slots: 29 | void onTypeChange(); 30 | void onAddPrefixChanged(bool val); 31 | private: 32 | Ui::HexEncodeWidget *ui; 33 | HexEncode *transform; 34 | }; 35 | 36 | #endif // HEXENCODEWIDGET_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/hieroglyphywidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "hieroglyphywidget.h" 12 | #include "ui_hieroglyphywidget.h" 13 | 14 | HieroglyphyWidget::HieroglyphyWidget(Hieroglyphy * ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::HieroglyphyWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::HieroglyphyWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | 24 | ui->btoaCheckBox->setChecked(transform->isBtoaInUse()); 25 | } 26 | 27 | HieroglyphyWidget::~HieroglyphyWidget() 28 | { 29 | delete ui; 30 | } 31 | 32 | void HieroglyphyWidget::on_btoaCheckBox_clicked() 33 | { 34 | transform->setUseBtoa(ui->btoaCheckBox->isChecked()); 35 | } 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/hieroglyphywidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HIEROGLYPHYWIDGET_H 12 | #define HIEROGLYPHYWIDGET_H 13 | 14 | #include 15 | #include "../hieroglyphy.h" 16 | 17 | namespace Ui { 18 | class HieroglyphyWidget; 19 | } 20 | 21 | class HieroglyphyWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit HieroglyphyWidget(Hieroglyphy * transform, QWidget *parent = 0); 27 | ~HieroglyphyWidget(); 28 | 29 | private slots: 30 | void on_btoaCheckBox_clicked(); 31 | 32 | private: 33 | Ui::HieroglyphyWidget *ui; 34 | Hieroglyphy *transform; 35 | }; 36 | 37 | #endif // HIEROGLYPHYWIDGET_H 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/hmactransformwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HMACTRANSFORMWIDGET_H 12 | #define HMACTRANSFORMWIDGET_H 13 | 14 | #include 15 | 16 | namespace Ui { 17 | class HMACTransformWidget; 18 | } 19 | 20 | class HMACTransform; 21 | 22 | class HMACTransformWidget : public QWidget 23 | { 24 | Q_OBJECT 25 | public: 26 | explicit HMACTransformWidget(HMACTransform *transform, QWidget *parent = 0); 27 | ~HMACTransformWidget(); 28 | 29 | private slots: 30 | void onHashSelected(int index); 31 | void onKeyLineReturn(); 32 | 33 | private: 34 | Ui::HMACTransformWidget *ui; 35 | HMACTransform *transform; 36 | }; 37 | 38 | #endif // HMACTRANSFORMWIDGET_H 39 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/htmlwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HTMLWIDGET_H 12 | #define HTMLWIDGET_H 13 | 14 | #include 15 | #include "../html.h" 16 | 17 | namespace Ui { 18 | class HtmlWidget; 19 | } 20 | 21 | class HtmlWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit HtmlWidget(Html *ntransform, QWidget *parent = 0); 27 | ~HtmlWidget(); 28 | private slots: 29 | void onChangeScope(); 30 | void onChangeType(); 31 | void onChangeUseName(); 32 | 33 | private: 34 | Ui::HtmlWidget *ui; 35 | Html *transform; 36 | }; 37 | 38 | #endif // HTMLWIDGET_H 39 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/iptranslateipv4widget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef IPTRANSLATEWIDGET_H 12 | #define IPTRANSLATEWIDGET_H 13 | 14 | #include 15 | #include "../iptranslateipv4.h" 16 | 17 | namespace Ui { 18 | class IPTranslateIPv4Widget; 19 | } 20 | 21 | class IPTranslateIPv4Widget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit IPTranslateIPv4Widget(IPTranslateIPv4 *transform, QWidget *parent = 0); 27 | ~IPTranslateIPv4Widget(); 28 | 29 | private slots: 30 | void endianChanged(); 31 | void caseChanged(); 32 | void baseChanged(); 33 | 34 | private: 35 | Ui::IPTranslateIPv4Widget *ui; 36 | IPTranslateIPv4 *transform; 37 | }; 38 | 39 | #endif // IPTRANSLATEWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/microsofttimestampwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MICROSOFTTIMESTAMPWIDGET_H 12 | #define MICROSOFTTIMESTAMPWIDGET_H 13 | 14 | #include 15 | #include "../microsofttimestamp.h" 16 | 17 | namespace Ui { 18 | class MicrosoftTimestampWidget; 19 | } 20 | 21 | class MicrosoftTimestampWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit MicrosoftTimestampWidget(MicrosoftTimestamp * transform, QWidget *parent = 0); 27 | ~MicrosoftTimestampWidget(); 28 | 29 | private slots: 30 | void formatChanged(QString format); 31 | void onNSChanged(QString nsString); 32 | void localTzToggled(bool checked); 33 | 34 | private: 35 | Ui::MicrosoftTimestampWidget *ui; 36 | MicrosoftTimestamp * transform; 37 | }; 38 | 39 | #endif // MICROSOFTTIMESTAMPWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/ntlmsspwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "ntlmsspwidget.h" 12 | #include "ui_ntlmsspwidget.h" 13 | 14 | NtlmsspWidget::NtlmsspWidget(Ntlmssp *ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::NtlmsspWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::NtlmsspWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | ui->decodeCheckBox->setChecked(transform->decodeBase64()); 24 | 25 | connect(ui->decodeCheckBox, SIGNAL(toggled(bool)), this, SLOT(onDecode(bool))); 26 | } 27 | 28 | NtlmsspWidget::~NtlmsspWidget() 29 | { 30 | delete ui; 31 | } 32 | 33 | void NtlmsspWidget::onDecode(bool checked) 34 | { 35 | transform->setDecodeBase64(checked); 36 | } 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/ntlmsspwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NTLMSSPWIDGET_H 12 | #define NTLMSSPWIDGET_H 13 | 14 | #include 15 | #include "../ntlmssp.h" 16 | 17 | namespace Ui { 18 | class NtlmsspWidget; 19 | } 20 | 21 | class NtlmsspWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit NtlmsspWidget(Ntlmssp * transform, QWidget *parent = 0); 27 | ~NtlmsspWidget(); 28 | private slots: 29 | void onDecode(bool checked); 30 | private: 31 | Ui::NtlmsspWidget *ui; 32 | Ntlmssp * transform; 33 | }; 34 | 35 | #endif // NTLMSSPWIDGET_H 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/numbertocharwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NUMBERTOCHARWIDGET_H 12 | #define NUMBERTOCHARWIDGET_H 13 | 14 | #include 15 | #include "../numbertochar.h" 16 | 17 | namespace Ui { 18 | class NumberToCharWidget; 19 | } 20 | 21 | class NumberToCharWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit NumberToCharWidget(NumberToChar * transform,QWidget *parent = 0); 27 | ~NumberToCharWidget(); 28 | 29 | private slots: 30 | void onSeparatorChanged(QString val); 31 | 32 | private: 33 | Ui::NumberToCharWidget *ui; 34 | NumberToChar * transform; 35 | }; 36 | 37 | #endif // NUMBERTOCHARWIDGET_H 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/paddingwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef PADDINGWIDGET_H 12 | #define PADDINGWIDGET_H 13 | 14 | #include 15 | #include "../padding.h" 16 | 17 | namespace Ui { 18 | class PaddingWidget; 19 | } 20 | 21 | class PaddingWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit PaddingWidget(Padding *ntransform, QWidget *parent = 0); 27 | ~PaddingWidget(); 28 | private slots: 29 | void onTypeChange(int index); 30 | void onPaddingCharChange(QString); 31 | void onBlockSizeChange(int size); 32 | private: 33 | Ui::PaddingWidget *ui; 34 | Padding *transform; 35 | }; 36 | 37 | #endif // PADDINGWIDGET_H 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/randomcasewidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "randomcasewidget.h" 12 | #include "ui_randomcasewidget.h" 13 | #include 14 | 15 | RandomCaseWidget::RandomCaseWidget(RandomCase *ntransform, QWidget *parent) : 16 | QWidget(parent) 17 | { 18 | ui = new(std::nothrow) Ui::RandomCaseWidget(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::RandomCaseWidget X{"); 21 | } 22 | transform = ntransform; 23 | ui->setupUi(this); 24 | } 25 | 26 | RandomCaseWidget::~RandomCaseWidget() 27 | { 28 | delete ui; 29 | } 30 | 31 | void RandomCaseWidget::onRerandomize() 32 | { 33 | transform->reRandomize(); 34 | } 35 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/randomcasewidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef RANDOMCASEWIDGET_H 12 | #define RANDOMCASEWIDGET_H 13 | 14 | #include 15 | #include "../randomcase.h" 16 | 17 | namespace Ui { 18 | class RandomCaseWidget; 19 | } 20 | 21 | class RandomCaseWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit RandomCaseWidget(RandomCase *ntransform, QWidget *parent = 0); 27 | ~RandomCaseWidget(); 28 | private slots: 29 | void onRerandomize(); 30 | private: 31 | Ui::RandomCaseWidget *ui; 32 | RandomCase *transform; 33 | }; 34 | 35 | #endif // RANDOMCASEWIDGET_H 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/regularexpwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef REGULAREXPWIDGET_H 12 | #define REGULAREXPWIDGET_H 13 | 14 | #include 15 | #include "../regularexp.h" 16 | 17 | namespace Ui { 18 | class RegularExpWidget; 19 | } 20 | 21 | class RegularExpWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit RegularExpWidget(RegularExp *ntransform, QWidget *parent = 0); 27 | ~RegularExpWidget(); 28 | private slots: 29 | void onActionTypeChange(int val); 30 | void onGreedyChange(bool val); 31 | void onRegularExpressionChange(QString val); 32 | void onCaseInsensitiveChange(bool val); 33 | void onGroupChange(int val); 34 | void onAllGroupsChange(bool val); 35 | void onReplacementStringChange(QString val); 36 | void onLinByLineChange(bool val); 37 | private: 38 | Ui::RegularExpWidget *ui; 39 | RegularExp *transform; 40 | bool eventFilter(QObject *o, QEvent *e); 41 | }; 42 | 43 | #endif // REGULAREXPWIDGET_H 44 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/reversewidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef REVERSEWIDGET_H 12 | #define REVERSEWIDGET_H 13 | 14 | #include 15 | #include "../reverse.h" 16 | 17 | namespace Ui { 18 | class ReverseWidget; 19 | } 20 | 21 | class ReverseWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit ReverseWidget(Reverse *transform, QWidget *parent = 0); 27 | ~ReverseWidget(); 28 | private slots: 29 | void onBlockSizeChange(int); 30 | void onEntireCheckBoxChange(bool); 31 | private: 32 | Ui::ReverseWidget *ui; 33 | Reverse *transform; 34 | }; 35 | 36 | #endif // REVERSEWIDGET_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/rotxwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "rotxwidget.h" 12 | #include "ui_rotxwidget.h" 13 | 14 | RotXWidget::RotXWidget(Rotx *ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::RotXWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::RotXWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | ui->typeComboBox->setCurrentIndex(transform->getRotVariant()); 24 | connect(ui->typeComboBox,SIGNAL(currentIndexChanged(int)), this,SLOT(onUpdateType(int))); 25 | } 26 | 27 | RotXWidget::~RotXWidget() 28 | { 29 | delete ui; 30 | } 31 | 32 | void RotXWidget::onUpdateType(int val) 33 | { 34 | transform->setRotVariant((Rotx::RotVariant)val); 35 | } 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/rotxwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef ROTXWIDGET_H 12 | #define ROTXWIDGET_H 13 | 14 | #include 15 | #include "../rotx.h" 16 | 17 | namespace Ui { 18 | class RotXWidget; 19 | } 20 | 21 | class RotXWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit RotXWidget(Rotx *ntransform, QWidget *parent = 0); 27 | ~RotXWidget(); 28 | private slots: 29 | void onUpdateType(int val); 30 | private: 31 | Ui::RotXWidget *ui; 32 | Rotx *transform; 33 | }; 34 | 35 | #endif // ROTXWIDGET_H 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/splitwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SPLITWIDGET_H 12 | #define SPLITWIDGET_H 13 | 14 | #include 15 | #include "../split.h" 16 | 17 | namespace Ui { 18 | class SplitWidget; 19 | } 20 | 21 | class SplitWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit SplitWidget(Split *ntransform, QWidget *parent = 0); 27 | ~SplitWidget(); 28 | private slots: 29 | void onSeparatorChange(QString); 30 | void onGroupChange(int); 31 | void onAllGroupChange(bool); 32 | void onTrimChange(bool val); 33 | void onProcLineChanged(bool val); 34 | private: 35 | Ui::SplitWidget *ui; 36 | Split *transform; 37 | }; 38 | 39 | #endif // SPLITWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/timestampwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef TIMESTAMPWIDGET_H 12 | #define TIMESTAMPWIDGET_H 13 | 14 | #include 15 | #include "../timestamp.h" 16 | 17 | namespace Ui { 18 | class TimestampWidget; 19 | } 20 | 21 | class TimestampWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit TimestampWidget(TimeStamp *transform, QWidget *parent = 0); 27 | ~TimestampWidget(); 28 | 29 | private slots: 30 | void formatChanged(QString format); 31 | void outBoundTZLocalChanged(bool checked); 32 | 33 | private: 34 | Ui::TimestampWidget *ui; 35 | TimeStamp *transform; 36 | }; 37 | 38 | #endif // TIMESTAMPWIDGET_H 39 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/urlencodewidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | #ifndef URLENCODEWIDGET_H 11 | #define URLENCODEWIDGET_H 12 | 13 | #include 14 | #include "../urlencode.h" 15 | 16 | namespace Ui { 17 | class UrlEncodeWidget; 18 | } 19 | 20 | class UrlEncodeWidget : public QWidget 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit UrlEncodeWidget(UrlEncode *ntransform, QWidget *parent = 0); 26 | ~UrlEncodeWidget(); 27 | private slots: 28 | void onIncludeAll(); 29 | void onExcludeChange(QString vals); 30 | void onIncludeChange(QString vals); 31 | void onPercentChange(QString character); 32 | private: 33 | Ui::UrlEncodeWidget *ui; 34 | UrlEncode *transform; 35 | }; 36 | 37 | #endif // URLENCODEWIDGET_H 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/xmlquerywidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "xmlquerywidget.h" 12 | #include "ui_xmlquerywidget.h" 13 | 14 | XmlQueryWidget::XmlQueryWidget(XmlQuery *ntransform, QWidget *parent) : 15 | QWidget(parent) 16 | { 17 | ui = new(std::nothrow) Ui::XmlQueryWidget(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::XmlQueryWidget X{"); 20 | } 21 | transform = ntransform; 22 | ui->setupUi(this); 23 | ui->queryPlainTextEdit->appendPlainText(transform->getQueryString()); 24 | connect(ui->submitPushButton, SIGNAL(clicked()), this, SLOT(onQuerySubmit())); 25 | } 26 | 27 | XmlQueryWidget::~XmlQueryWidget() 28 | { 29 | delete ui; 30 | } 31 | 32 | void XmlQueryWidget::onQuerySubmit() 33 | { 34 | if (!ui->queryPlainTextEdit->toPlainText().isEmpty()) { 35 | transform->setQueryString(ui->queryPlainTextEdit->toPlainText()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/xmlquerywidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef XMLQUERYWIDGET_H 12 | #define XMLQUERYWIDGET_H 13 | 14 | #include 15 | #include "../xmlquery.h" 16 | 17 | namespace Ui { 18 | class XmlQueryWidget; 19 | } 20 | 21 | class XmlQueryWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit XmlQueryWidget(XmlQuery *transform, QWidget *parent = 0); 27 | ~XmlQueryWidget(); 28 | public slots: 29 | void onQuerySubmit(); 30 | 31 | private: 32 | Ui::XmlQueryWidget *ui; 33 | XmlQuery *transform; 34 | }; 35 | 36 | #endif // XMLQUERYWIDGET_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/xorwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef XORWIDGET_H 12 | #define XORWIDGET_H 13 | 14 | #include 15 | #include "../xor.h" 16 | 17 | namespace Ui { 18 | class XorWidget; 19 | } 20 | 21 | class XorWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit XorWidget(Xor *ntransform, QWidget *parent = 0); 27 | ~XorWidget(); 28 | 29 | private slots: 30 | void onFromHexChange(bool val); 31 | void onKeyChange(); 32 | void onTypeChange(int index); 33 | private: 34 | Ui::XorWidget *ui; 35 | Xor *transform; 36 | bool eventFilter(QObject *o, QEvent *e); 37 | void focusOutEvent ( QFocusEvent * event ); 38 | }; 39 | 40 | #endif // XORWIDGET_H 41 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/zlibwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "zlibwidget.h" 12 | #include "ui_zlibwidget.h" 13 | 14 | 15 | ZlibWidget::ZlibWidget(Zlib *ntransform, QWidget *parent) : 16 | QWidget(parent) 17 | { 18 | ui = new(std::nothrow) Ui::ZlibWidget(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::ZlibWidget X{"); 21 | } 22 | transform = ntransform; 23 | ui->setupUi(this); 24 | ui->compressionSpinBox->setValue(transform->getCompression()); 25 | ui->removeHeaderCheckBox->setChecked(transform->doRemoveHeader()); 26 | } 27 | 28 | ZlibWidget::~ZlibWidget() 29 | { 30 | delete ui; 31 | } 32 | 33 | void ZlibWidget::on_compressionSpinBox_valueChanged(int value) 34 | { 35 | if (!transform->setCompression(value)) { 36 | ui->compressionSpinBox->setValue(transform->getCompression()); 37 | } 38 | } 39 | 40 | void ZlibWidget::on_removeHeaderCheckBox_toggled(bool checked) 41 | { 42 | transform->setRemoveHeader(checked); 43 | } 44 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/confgui/zlibwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef ZLIBWIDGET_H 12 | #define ZLIBWIDGET_H 13 | 14 | #include 15 | #include "../zlib.h" 16 | 17 | namespace Ui { 18 | class ZlibWidget; 19 | } 20 | 21 | class ZlibWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit ZlibWidget(Zlib * transform, QWidget *parent = 0); 27 | ~ZlibWidget(); 28 | 29 | private slots: 30 | void on_compressionSpinBox_valueChanged(int value); 31 | 32 | void on_removeHeaderCheckBox_toggled(bool checked); 33 | 34 | private: 35 | Ui::ZlibWidget *ui; 36 | Zlib * transform; 37 | }; 38 | 39 | #endif // ZLIBWIDGET_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/crc32.h: -------------------------------------------------------------------------------- 1 | #ifndef CRC32_H 2 | #define CRC32_H 3 | 4 | #include 5 | 6 | class Crc32 : public TransformAbstract 7 | { 8 | Q_OBJECT 9 | public: 10 | static const QString id; 11 | static const quint32 crctable[]; 12 | explicit Crc32(); 13 | ~Crc32(); 14 | QString name() const; 15 | QString description() const; 16 | void transform(const QByteArray &input, QByteArray &output); 17 | bool isTwoWays(); 18 | QWidget * requestGui(QWidget * parent); 19 | QString help() const; 20 | QHash getConfiguration(); 21 | bool setConfiguration(QHash propertiesList); 22 | 23 | bool isLittleendian() const; 24 | void setLittleendian(bool value); 25 | bool getAppendToInput() const; 26 | void setAppendToInput(bool value); 27 | bool isHexOutput() const; 28 | void setHexOutput(bool value); 29 | 30 | private: 31 | bool littleendian; 32 | bool hexOutput; 33 | bool appendToInput; 34 | }; 35 | 36 | #endif // CRC32_H 37 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/cut.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CUT_H 12 | #define CUT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Cut : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit Cut(); 22 | ~Cut(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | QHash getConfiguration(); 28 | bool setConfiguration(QHash propertiesList); 29 | QWidget * requestGui(QWidget * parent); 30 | static const QString id; 31 | QString help() const; 32 | 33 | int getFromPos(); 34 | int getLength(); 35 | bool doCutEverything(); 36 | bool setFromPos(int val); 37 | bool setLength(int val); 38 | void setCutEverything(bool val); 39 | bool isClassicCut() const; 40 | void setClassicCut(bool value); 41 | bool isLineByLine() const; 42 | void setLineByLine(bool value); 43 | 44 | private: 45 | int from; 46 | int length; 47 | bool everything; 48 | bool classicCut; 49 | bool lineByLine; 50 | }; 51 | 52 | #endif // CUT_H 53 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/fixprotocol.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef FIXPROTOCOL_H 12 | #define FIXPROTOCOL_H 13 | 14 | #include 15 | #include 16 | 17 | class FixProtocol : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit FixProtocol(); 22 | ~FixProtocol(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | static const QString id; 28 | QString help() const; 29 | private: 30 | QByteArray translateField(QByteArray val); 31 | QXmlQuery query; 32 | }; 33 | 34 | #endif // FIXPROTOCOL_H 35 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/hexencode.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HEXENCODE_H 12 | #define HEXENCODE_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class HexEncode : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | enum Type {NORMAL = 0, ESCAPED = 1, CSTYLE = 2, CSV = 3, ESCAPED_MIXED = 4}; 21 | explicit HexEncode(); 22 | ~HexEncode(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | QHash getConfiguration(); 28 | bool setConfiguration(QHash propertiesList); 29 | QWidget * requestGui(QWidget * parent); 30 | static const QString id; 31 | QString help() const; 32 | 33 | Type getType(); 34 | void setType(Type ntype); 35 | bool getAddHexPrefix() const; 36 | void setAddHexPrefix(bool value); 37 | 38 | private: 39 | static const QString XML_ADDPREFIX; 40 | Type type; 41 | bool addHexPrefix; 42 | }; 43 | 44 | #endif // HEXENCODE_H 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/hmactransform.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HMACTRANSFORM_H 12 | #define HMACTRANSFORM_H 13 | 14 | #include 15 | #include 16 | 17 | class HMACTransform : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | public: 21 | static const QMap hashes; 22 | explicit HMACTransform(); 23 | ~HMACTransform(); 24 | QString name() const; 25 | QString description() const; 26 | void transform(const QByteArray &input, QByteArray &output); 27 | bool isTwoWays(); 28 | QWidget * requestGui(QWidget * parent); 29 | QHash getConfiguration(); 30 | bool setConfiguration(QHash propertiesList); 31 | static const QString id; 32 | int getSelectedHash() const; 33 | void setSelectedHash(int value); 34 | QByteArray getKey() const; 35 | void setKey(const QByteArray &value); 36 | QString help() const; 37 | private: 38 | static const QMap initHash(); 39 | int getBlocksize(int hash); 40 | int selectedHash; 41 | QByteArray key; 42 | }; 43 | 44 | #endif // HMACTRANSFORM_H 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/javascriptconcat.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "javascriptconcat.h" 12 | 13 | const QString JavaScriptConcat::id = "JavaScript concat"; 14 | 15 | QString JavaScriptConcat::name() const { 16 | return id; 17 | } 18 | 19 | QString JavaScriptConcat::description() const { 20 | return tr("Produce an JavaScript concatenated string"); 21 | } 22 | 23 | bool JavaScriptConcat::isTwoWays() { 24 | return false; 25 | } 26 | 27 | QString JavaScriptConcat::help() const 28 | { 29 | QString help; 30 | help.append("

Produce an JavaScript concatenated string from the input (UTF-8)

This version is using String.fromCharCode()

"); 31 | return help; 32 | } 33 | 34 | void JavaScriptConcat::transform(const QByteArray &input, QByteArray &output) { 35 | output.clear(); 36 | if (input.isEmpty()) 37 | return; 38 | 39 | output.append("String.fromCharCode("); 40 | for (int i = 0; i < input.size(); i++) { 41 | output.append(QByteArray::number(uchar(input.at(i)), 10)).append(","); 42 | } 43 | output.chop(1); 44 | output.append(")"); 45 | } 46 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/javascriptconcat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef JAVASCRIPTCONCAT_H 12 | #define JAVASCRIPTCONCAT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class JavaScriptConcat : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit JavaScriptConcat() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // JAVASCRIPTCONCAT_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/md4.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "md4.h" 12 | #include 13 | 14 | const QString Md4::id = "MD4"; 15 | 16 | QString Md4::name() const { 17 | return id; 18 | } 19 | 20 | QString Md4::description() const { 21 | return tr("Classic Md4 hash function"); 22 | } 23 | 24 | bool Md4::isTwoWays() { 25 | return false; 26 | } 27 | 28 | QString Md4::help() const 29 | { 30 | QString help; 31 | help.append("

Classic MD4 hash

This transformation is using the QT internal hash function.

"); 32 | return help; 33 | } 34 | 35 | void Md4::transform(const QByteArray &input, QByteArray &output) { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Md4); 37 | } 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/md4.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MD4_H 12 | #define MD4_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Md4 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit Md4() {} 22 | ~Md4() {} 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | static const QString id; 28 | 29 | QString help() const; 30 | 31 | }; 32 | 33 | #endif // MD4_H 34 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/md5.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "md5.h" 12 | #include 13 | 14 | const QString Md5::id = "MD5"; 15 | 16 | QString Md5::name() const { 17 | return id; 18 | } 19 | 20 | QString Md5::description() const { 21 | return tr("Classic MD5 hash function"); 22 | } 23 | 24 | bool Md5::isTwoWays() { 25 | return false; 26 | } 27 | 28 | QString Md5::help() const 29 | { 30 | QString help; 31 | help.append("

Classic MD5 hash

This transformation is using the QT internal hash function.

"); 32 | return help; 33 | } 34 | 35 | void Md5::transform(const QByteArray &input, QByteArray &output) { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Md5); 37 | } 38 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/md5.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MD5_H 12 | #define MD5_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Md5 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit Md5() {} 22 | ~Md5() {} 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | static const QString id; 28 | QString help() const; 29 | }; 30 | 31 | #endif // MD5_H 32 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mssqlconcat.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "mssqlconcat.h" 12 | 13 | const QString MSSqlConcat::id = "MSSql concat"; 14 | 15 | QString MSSqlConcat::name() const { 16 | return id; 17 | } 18 | 19 | QString MSSqlConcat::description() const { 20 | return tr("Produce an MSSql concatenated string"); 21 | } 22 | 23 | bool MSSqlConcat::isTwoWays() { 24 | return false; 25 | } 26 | 27 | QString MSSqlConcat::help() const 28 | { 29 | QString help; 30 | help.append("

Produce an MSSql concatenated string from the input (UTF-8)

"); 31 | return help; 32 | } 33 | 34 | void MSSqlConcat::transform(const QByteArray &input, QByteArray &output) { 35 | output.clear(); 36 | if (input.isEmpty()) 37 | return; 38 | 39 | for (int i = 0; i < input.size(); i++) { 40 | output.append("char(").append(QByteArray::number(uchar(input.at(i)), 10)).append(")+"); 41 | } 42 | output.chop(1); 43 | } 44 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mssqlconcat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MSSQLCONCAT_H 12 | #define MSSQLCONCAT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class MSSqlConcat : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit MSSqlConcat() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // MSSQLCONCAT_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mysqlconcat.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "mysqlconcat.h" 12 | 13 | const QString MysqlConcat::id = "MySql concat"; 14 | 15 | QString MysqlConcat::name() const { 16 | return id; 17 | } 18 | 19 | QString MysqlConcat::description() const { 20 | return tr("Produce an MySql concatenated string"); 21 | } 22 | 23 | bool MysqlConcat::isTwoWays() { 24 | return false; 25 | } 26 | 27 | QString MysqlConcat::help() const 28 | { 29 | QString help; 30 | help.append("

Produce an MySql concatenated string from the input (UTF-8)

This version uses char()

"); 31 | return help; 32 | } 33 | 34 | void MysqlConcat::transform(const QByteArray &input, QByteArray &output) { 35 | output.clear(); 36 | if (input.isEmpty()) 37 | return; 38 | 39 | output.append("concat("); 40 | for (int i = 0; i < input.size(); i++) { 41 | output.append("char(").append(QByteArray::number(uchar(input.at(i)), 10)).append("),"); 42 | } 43 | output.chop(1); 44 | output.append(")"); 45 | } 46 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mysqlconcat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MYSQLCONCAT_H 12 | #define MYSQLCONCAT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class MysqlConcat : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit MysqlConcat() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // MYSQLCONCAT_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mysqlconcatv2.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "mysqlconcatv2.h" 12 | 13 | const QString MySqlConcatv2::id = "MySql concat v2"; 14 | 15 | QString MySqlConcatv2::name() const { 16 | return id; 17 | } 18 | 19 | QString MySqlConcatv2::description() const { 20 | return tr("Produce an MySql concatenated string (2nd version)"); 21 | } 22 | 23 | void MySqlConcatv2::transform(const QByteArray &input, QByteArray &output) 24 | { 25 | output.clear(); 26 | if (input.isEmpty()) 27 | return; 28 | 29 | output.append("0x").append(input.toHex()); 30 | 31 | } 32 | 33 | bool MySqlConcatv2::isTwoWays() { 34 | return false; 35 | } 36 | 37 | QString MySqlConcatv2::help() const 38 | { 39 | QString help; 40 | help.append("

Produce an MySql concatenated string from the input (UTF-8)

This version uses the hexadecimal representation

"); 41 | return help; 42 | } 43 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/mysqlconcatv2.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MYSQLCONCATV2_H 12 | #define MYSQLCONCATV2_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class MySqlConcatv2 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit MySqlConcatv2() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // MYSQLCONCATV2_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/networkmaskipv4.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NETWORKMASK_H 12 | #define NETWORKMASK_H 13 | 14 | #include 15 | 16 | class NetworkMaskIPv4 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit NetworkMaskIPv4(); 21 | ~NetworkMaskIPv4() {} 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString inboundString() const; 28 | QString outboundString() const; 29 | QString help() const; 30 | }; 31 | 32 | #endif // NETWORKMASK_H 33 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/networkmaskipv6.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NETWORKMASKIPV6_H 12 | #define NETWORKMASKIPV6_H 13 | 14 | #include 15 | 16 | class NetworkMaskIPv6 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit NetworkMaskIPv6(); 21 | ~NetworkMaskIPv6() {} 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString inboundString() const; 28 | QString outboundString() const; 29 | QString help() const; 30 | }; 31 | 32 | #endif // NETWORKMASKIPV6_H 33 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/numbertochar.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NUMBERTOCHAR_H 12 | #define NUMBERTOCHAR_H 13 | 14 | #include 15 | 16 | class NumberToChar : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit NumberToChar(); 21 | ~NumberToChar(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | QWidget * requestGui(QWidget * parent); 29 | QHash getConfiguration(); 30 | bool setConfiguration(QHash propertiesList); 31 | QString inboundString() const; 32 | QString outboundString() const; 33 | 34 | char getSeparator() const; 35 | bool setSeparator(char c); 36 | 37 | private: 38 | static const char DEFAULT_SEPARATOR; 39 | char separator; 40 | bool signedShort; 41 | }; 42 | 43 | #endif // NUMBERTOCHAR_H 44 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/oracleconcat.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "oracleconcat.h" 12 | 13 | 14 | const QString OracleConcat::id = "Oracle concat"; 15 | 16 | QString OracleConcat::name() const { 17 | return id; 18 | } 19 | 20 | QString OracleConcat::description() const { 21 | return tr("Produce an Oracle concatenated string"); 22 | } 23 | 24 | bool OracleConcat::isTwoWays() { 25 | return false; 26 | } 27 | 28 | void OracleConcat::transform(const QByteArray &input, QByteArray &output) { 29 | output.clear(); 30 | if (input.isEmpty()) 31 | return; 32 | 33 | for (int i = 0; i < input.size(); i++) { 34 | output.append("chr(").append(QByteArray::number(uchar(input.at(i)), 10)).append(")||"); 35 | } 36 | output.chop(2); 37 | } 38 | 39 | QString OracleConcat::help() const 40 | { 41 | QString help; 42 | help.append("

Produce an Oracle concatenated string from the input (UTF-8)

"); 43 | return help; 44 | } 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/oracleconcat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef ORACLECONCAT_H 12 | #define ORACLECONCAT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class OracleConcat : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit OracleConcat() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // ORACLECONCAT_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/postgresconcat.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "postgresconcat.h" 12 | 13 | const QString PostgresConcat::id = "Postgres concat"; 14 | 15 | QString PostgresConcat::name() const { 16 | return id; 17 | } 18 | 19 | QString PostgresConcat::description() const { 20 | return tr("Produce an Postgres concatenated string"); 21 | } 22 | 23 | bool PostgresConcat::isTwoWays() { 24 | return false; 25 | } 26 | 27 | QString PostgresConcat::help() const 28 | { 29 | QString help; 30 | help.append("

Produce an Postgres concatenated string from the input (UTF-8)

"); 31 | return help; 32 | } 33 | 34 | void PostgresConcat::transform(const QByteArray &input, QByteArray &output) { 35 | output.clear(); 36 | if (input.isEmpty()) 37 | return; 38 | 39 | for (int i = 0; i < input.size(); i++) { 40 | output.append("CHR(").append(QByteArray::number(uchar(input.at(i)), 10)).append(")||"); 41 | } 42 | output.chop(2); 43 | } 44 | 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/postgresconcat.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef POSTGRESCONCAT_H 12 | #define POSTGRESCONCAT_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class PostgresConcat : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit PostgresConcat() {} 21 | QString name() const; 22 | QString description() const; 23 | void transform(const QByteArray &input, QByteArray &output); 24 | bool isTwoWays(); 25 | static const QString id; 26 | QString help() const; 27 | }; 28 | 29 | #endif // POSTGRESCONCAT_H 30 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/randomcase.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef RANDOMCASE_H 12 | #define RANDOMCASE_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class RandomCase : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit RandomCase(); 22 | ~RandomCase() {} 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | QWidget * requestGui(QWidget * parent); 28 | static const QString id; 29 | QString help() const; 30 | public slots: 31 | void reRandomize(); 32 | 33 | }; 34 | 35 | #endif // RANDOMCASE_H 36 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/reverse.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef REVERSE_H 12 | #define REVERSE_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Reverse : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | static const int MINBLOCKSIZE = 2; 22 | static const int MAXBLOCKSIZE = 1024; 23 | explicit Reverse(); 24 | ~Reverse(); 25 | QString name() const; 26 | QString description() const; 27 | void transform(const QByteArray &input, QByteArray &output); 28 | bool isTwoWays(); 29 | QHash getConfiguration(); 30 | bool setConfiguration(QHash propertiesList); 31 | QWidget *requestGui(QWidget *parent); 32 | static const QString id; 33 | QString help() const; 34 | 35 | int getBlocksize(); 36 | bool getNoBlock(); 37 | bool setBlocksize(int val); 38 | void setNoBlock(bool val); 39 | private: 40 | int blockSize; 41 | bool noBlock; 42 | }; 43 | 44 | #endif // REVERSE_H 45 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/rotx.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | #ifndef ROTX_H 11 | #define ROTX_H 12 | 13 | #include "transformabstract.h" 14 | 15 | class Rotx : public TransformAbstract 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | enum RotVariant {ROT13 = 0, ROT5 = 1, ROT47 = 2}; 21 | explicit Rotx(); 22 | ~Rotx(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | QHash getConfiguration(); 28 | bool setConfiguration(QHash propertiesList); 29 | QWidget * requestGui(QWidget * parent); 30 | static const QString id; 31 | QString help() const; 32 | 33 | RotVariant getRotVariant(); 34 | void setRotVariant(RotVariant val); 35 | private: 36 | RotVariant choosenVariant; 37 | }; 38 | 39 | #endif // ROTX_H 40 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha1.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha1.h" 12 | #include 13 | 14 | const QString Sha1::id = "SHA1"; 15 | 16 | Sha1::Sha1() 17 | { 18 | 19 | } 20 | 21 | Sha1::~Sha1() 22 | { 23 | } 24 | 25 | QString Sha1::name() const { 26 | return id; 27 | } 28 | 29 | QString Sha1::description() const { 30 | return tr("Classic Sha1 hash"); 31 | } 32 | 33 | bool Sha1::isTwoWays() { 34 | return false; 35 | } 36 | 37 | QString Sha1::help() const 38 | { 39 | QString help; 40 | help.append("

Classic Sha1 hash

This transformation is using the QT internal hash function.

"); 41 | return help; 42 | } 43 | 44 | void Sha1::transform(const QByteArray &input, QByteArray &output) { 45 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha1); 46 | } 47 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha1.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA1_H 12 | #define SHA1_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha1 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | explicit Sha1(); 22 | ~Sha1(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | static const QString id; 28 | QString help() const; 29 | }; 30 | 31 | #endif // SHA1_H 32 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha224.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha224.h" 12 | #include 13 | 14 | const QString Sha224::id = "SHA224"; 15 | 16 | Sha224::Sha224() 17 | { 18 | } 19 | 20 | Sha224::~Sha224() 21 | { 22 | } 23 | 24 | QString Sha224::name() const 25 | { 26 | return id; 27 | } 28 | 29 | QString Sha224::description() const 30 | { 31 | return tr("Classic Sha224 hash"); 32 | } 33 | 34 | void Sha224::transform(const QByteArray &input, QByteArray &output) 35 | { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha224); 37 | } 38 | 39 | bool Sha224::isTwoWays() 40 | { 41 | return false; 42 | } 43 | 44 | QString Sha224::help() const 45 | { 46 | QString help; 47 | help.append("

Classic Sha224 hash

This transformation is using the QT internal hash function.

"); 48 | return help; 49 | } 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha224.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA224_H 12 | #define SHA224_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha224 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha224(); 21 | ~Sha224(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA224_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha256.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha256.h" 12 | #include 13 | 14 | const QString Sha256::id = "SHA256"; 15 | 16 | Sha256::Sha256() 17 | { 18 | } 19 | 20 | Sha256::~Sha256() 21 | { 22 | } 23 | 24 | QString Sha256::name() const 25 | { 26 | return id; 27 | } 28 | 29 | QString Sha256::description() const 30 | { 31 | return tr("Classic Sha256 hash"); 32 | } 33 | 34 | void Sha256::transform(const QByteArray &input, QByteArray &output) 35 | { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha256); 37 | } 38 | 39 | bool Sha256::isTwoWays() 40 | { 41 | return false; 42 | } 43 | 44 | QString Sha256::help() const 45 | { 46 | QString help; 47 | help.append("

Classic Sha256 hash

This transformation is using the QT internal hash function.

"); 48 | return help; 49 | } 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha256.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA256_H 12 | #define SHA256_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha256 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha256(); 21 | ~Sha256(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA256_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha384.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha384.h" 12 | #include 13 | 14 | const QString Sha384::id = "SHA384"; 15 | 16 | Sha384::Sha384() 17 | { 18 | } 19 | 20 | Sha384::~Sha384() 21 | { 22 | } 23 | 24 | QString Sha384::name() const 25 | { 26 | return id; 27 | } 28 | 29 | QString Sha384::description() const 30 | { 31 | return tr("Classic Sha384 hash"); 32 | } 33 | 34 | void Sha384::transform(const QByteArray &input, QByteArray &output) 35 | { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha384); 37 | } 38 | 39 | bool Sha384::isTwoWays() 40 | { 41 | return false; 42 | } 43 | 44 | QString Sha384::help() const 45 | { 46 | QString help; 47 | help.append("

Classic Sha384 hash

This transformation is using the QT internal hash function.

"); 48 | return help; 49 | } 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha384.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA384_H 12 | #define SHA384_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha384 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha384(); 21 | ~Sha384(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA384_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_224.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha3_224.h" 12 | #include 13 | 14 | const QString Sha3_224::id = "SHA3-224"; 15 | 16 | Sha3_224::Sha3_224() 17 | { 18 | 19 | } 20 | 21 | Sha3_224::~Sha3_224() 22 | { 23 | 24 | } 25 | 26 | QString Sha3_224::name() const 27 | { 28 | return id; 29 | } 30 | 31 | QString Sha3_224::description() const { 32 | return tr("Sha3-224 hash"); 33 | } 34 | 35 | bool Sha3_224::isTwoWays() { 36 | return false; 37 | } 38 | 39 | QString Sha3_224::help() const 40 | { 41 | QString help; 42 | help.append("

Sha3-224 hash (Keccak)

This transformation is using the QT internal hash function.

"); 43 | return help; 44 | } 45 | 46 | void Sha3_224::transform(const QByteArray &input, QByteArray &output) { 47 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha3_224); 48 | } 49 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_224.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA3_224_H 12 | #define SHA3_224_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha3_224 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha3_224(); 21 | ~Sha3_224(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA3_224_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_256.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha3_256.h" 12 | #include 13 | 14 | const QString Sha3_256::id = "SHA3-256"; 15 | 16 | Sha3_256::Sha3_256() 17 | { 18 | 19 | } 20 | 21 | Sha3_256::~Sha3_256() 22 | { 23 | 24 | } 25 | 26 | QString Sha3_256::name() const 27 | { 28 | return id; 29 | } 30 | 31 | QString Sha3_256::description() const { 32 | return tr("Sha3-256 hash"); 33 | } 34 | 35 | bool Sha3_256::isTwoWays() { 36 | return false; 37 | } 38 | 39 | QString Sha3_256::help() const 40 | { 41 | QString help; 42 | help.append("

Sha3-256 hash (Keccak)

This transformation is using the QT internal hash function.

"); 43 | return help; 44 | } 45 | 46 | void Sha3_256::transform(const QByteArray &input, QByteArray &output) { 47 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha3_256); 48 | } 49 | 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_256.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | 12 | #ifndef SHA3_256_H 13 | #define SHA3_256_H 14 | 15 | #include "transformabstract.h" 16 | 17 | class Sha3_256 : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit Sha3_256(); 22 | ~Sha3_256(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | static const QString id; 28 | QString help() const; 29 | }; 30 | 31 | #endif // SHA3_256_H 32 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_384.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha3_384.h" 12 | #include 13 | 14 | const QString Sha3_384::id = "SHA3-384"; 15 | 16 | Sha3_384::Sha3_384() 17 | { 18 | 19 | } 20 | 21 | Sha3_384::~Sha3_384() 22 | { 23 | 24 | } 25 | 26 | QString Sha3_384::name() const 27 | { 28 | return id; 29 | } 30 | 31 | QString Sha3_384::description() const { 32 | return tr("Sha3-384 hash"); 33 | } 34 | 35 | bool Sha3_384::isTwoWays() { 36 | return false; 37 | } 38 | 39 | QString Sha3_384::help() const 40 | { 41 | QString help; 42 | help.append("

Sha3-384 hash (Keccak)

This transformation is using the QT internal hash function.

"); 43 | return help; 44 | } 45 | 46 | void Sha3_384::transform(const QByteArray &input, QByteArray &output) { 47 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha3_384); 48 | } 49 | 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_384.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA3_384_H 12 | #define SHA3_384_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha3_384 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha3_384(); 21 | ~Sha3_384(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA3_384_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_512.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha3_512.h" 12 | #include 13 | 14 | const QString Sha3_512::id = "SHA3-512"; 15 | 16 | Sha3_512::Sha3_512() 17 | { 18 | 19 | } 20 | 21 | Sha3_512::~Sha3_512() 22 | { 23 | 24 | } 25 | 26 | QString Sha3_512::name() const 27 | { 28 | return id; 29 | } 30 | 31 | QString Sha3_512::description() const { 32 | return tr("Sha3-512 hash"); 33 | } 34 | 35 | bool Sha3_512::isTwoWays() { 36 | return false; 37 | } 38 | 39 | QString Sha3_512::help() const 40 | { 41 | QString help; 42 | help.append("

Sha3-512 hash (Keccak)

This transformation is using the QT internal hash function.

"); 43 | return help; 44 | } 45 | 46 | void Sha3_512::transform(const QByteArray &input, QByteArray &output) { 47 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha3_512); 48 | } 49 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha3_512.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA3_512_H 12 | #define SHA3_512_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha3_512 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | explicit Sha3_512(); 21 | ~Sha3_512(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA3_512_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha512.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "sha512.h" 12 | #include 13 | 14 | const QString Sha512::id = "SHA512"; 15 | 16 | Sha512::Sha512() 17 | { 18 | } 19 | 20 | Sha512::~Sha512() 21 | { 22 | } 23 | 24 | QString Sha512::name() const 25 | { 26 | return id; 27 | } 28 | 29 | QString Sha512::description() const 30 | { 31 | return tr("Classic Sha512 hash"); 32 | } 33 | 34 | void Sha512::transform(const QByteArray &input, QByteArray &output) 35 | { 36 | output = QCryptographicHash::hash(input,QCryptographicHash::Sha512); 37 | } 38 | 39 | bool Sha512::isTwoWays() 40 | { 41 | return false; 42 | } 43 | 44 | QString Sha512::help() const 45 | { 46 | QString help; 47 | help.append("

Classic Sha512 hash

This transformation is using the QT internal hash function.

"); 48 | return help; 49 | } 50 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/sha512.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SHA512_H 12 | #define SHA512_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class Sha512 : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | Sha512(); 21 | ~Sha512(); 22 | QString name() const; 23 | QString description() const; 24 | void transform(const QByteArray &input, QByteArray &output); 25 | bool isTwoWays(); 26 | static const QString id; 27 | QString help() const; 28 | }; 29 | 30 | #endif // SHA512_H 31 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/urlencode.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef URLENCODE_H 12 | #define URLENCODE_H 13 | 14 | #include "transformabstract.h" 15 | 16 | class UrlEncode : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | 20 | public: 21 | static const QByteArray TEXTCHAR; 22 | explicit UrlEncode(); 23 | ~UrlEncode(); 24 | QString name() const; 25 | QString description() const; 26 | void transform(const QByteArray &input, QByteArray &output); 27 | bool isTwoWays(); 28 | QHash getConfiguration(); 29 | bool setConfiguration(QHash propertiesList); 30 | QWidget * requestGui(QWidget * parent); 31 | static const QString id; 32 | QString help() const; 33 | 34 | char getPercentSign(); 35 | QByteArray getExclude(); 36 | QByteArray getInclude(); 37 | void setPercentSign(char val); 38 | void setExclude(QByteArray vals); 39 | void setInclude(QByteArray vals); 40 | private: 41 | char percentSign; 42 | QByteArray exclude; 43 | QByteArray include; 44 | }; 45 | 46 | #endif // URLENCODE_H 47 | -------------------------------------------------------------------------------- /defaultplugins/baseplugins/zlib.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef ZLIB_H 12 | #define ZLIB_H 13 | 14 | #include 15 | 16 | class Zlib : public TransformAbstract 17 | { 18 | Q_OBJECT 19 | public: 20 | static const QString id; 21 | static const QString XMLREMOVEHEADER; 22 | explicit Zlib(); 23 | ~Zlib() {} 24 | QString name() const; 25 | QString description() const; 26 | void transform(const QByteArray &input, QByteArray &output); 27 | bool isTwoWays(); 28 | QHash getConfiguration(); 29 | bool setConfiguration(QHash propertiesList); 30 | QWidget * requestGui(QWidget * parent); 31 | QString help() const; 32 | QString inboundString() const; 33 | QString outboundString() const; 34 | 35 | bool setCompression(int level); 36 | int getCompression(); 37 | void setRemoveHeader(bool flag); 38 | bool doRemoveHeader(); 39 | 40 | private: 41 | int compressionLevel; 42 | bool removeHeader; 43 | 44 | }; 45 | 46 | #endif // ZLIB_H 47 | -------------------------------------------------------------------------------- /defaultplugins/distormplugin/distorm.pro: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | QT += svg 10 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 11 | 12 | TARGET = distormplugin 13 | TEMPLATE = lib 14 | CONFIG += plugin 15 | 16 | DEFINES += DISTORM_LIBRARY 17 | 18 | SOURCES += distormplugin.cpp \ 19 | distormwidget.cpp \ 20 | distormtransf.cpp 21 | 22 | HEADERS += distormplugin.h\ 23 | distorm_global.h \ 24 | distormwidget.h \ 25 | distormtransf.h 26 | 27 | unix { 28 | LIBS += -L"../../bin/" -ltransform -L"../../../distorm/build/lib/distorm3/" -ldistorm3 29 | } 30 | 31 | win32 { 32 | QMAKE_LFLAGS_WINDOWS += /FS 33 | LIBS += -L"../../lib/" -ltransform -L"../../../distorm/" -ldistorm 34 | } 35 | 36 | INCLUDEPATH += ../../libtransform/ ../../../distorm/include/ 37 | DESTDIR = ../../bin/plugins 38 | 39 | OTHER_FILES += \ 40 | distormplugin.json 41 | 42 | FORMS += \ 43 | distormwidget.ui 44 | -------------------------------------------------------------------------------- /defaultplugins/distormplugin/distorm_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DISTORM_GLOBAL_H 12 | #define DISTORM_GLOBAL_H 13 | 14 | #include 15 | 16 | #if defined(DISTORM_LIBRARY) 17 | # define DISTORMSHARED_EXPORT Q_DECL_EXPORT 18 | #else 19 | # define DISTORMSHARED_EXPORT Q_DECL_IMPORT 20 | #endif 21 | 22 | #endif // DISTORM_GLOBAL_H 23 | -------------------------------------------------------------------------------- /defaultplugins/distormplugin/distormplugin.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DISTORMPLUGIN_H 12 | #define DISTORMPLUGIN_H 13 | 14 | #include "distorm_global.h" 15 | #include 16 | 17 | class DISTORMSHARED_EXPORT DistormPlugin : public QObject, public TransformFactoryPluginInterface 18 | { 19 | Q_OBJECT 20 | #if QT_VERSION >= 0x050000 21 | Q_PLUGIN_METADATA(IID pluginIID FILE "distormplugin.json") 22 | #endif 23 | Q_INTERFACES(TransformFactoryPluginInterface) 24 | public: 25 | DistormPlugin(); 26 | ~DistormPlugin(); 27 | void setCallBack(Pip3lineCallback * callback); 28 | QString pluginName() const; 29 | QString compiledWithQTversion() const; 30 | TransformAbstract * getTransform(QString name); 31 | const QStringList getTransformList(QString typeName); 32 | QWidget * getConfGui(QWidget * parent); 33 | const QStringList getTypesList(); 34 | int getLibTransformVersion() const; 35 | QString pluginVersion() const; 36 | private: 37 | QWidget * gui; 38 | Pip3lineCallback *callback; 39 | }; 40 | 41 | #endif // DISTORMPLUGIN_H 42 | -------------------------------------------------------------------------------- /defaultplugins/distormplugin/distormplugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "DistormPlugin" ] 3 | } 4 | -------------------------------------------------------------------------------- /defaultplugins/distormplugin/distormwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DISTORMWIDGET_H 12 | #define DISTORMWIDGET_H 13 | 14 | #include 15 | #include 16 | #include "distormtransf.h" 17 | 18 | namespace Ui { 19 | class DistormWidget; 20 | } 21 | 22 | class DistormWidget : public QWidget 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit DistormWidget(DistormTransf * transform, QWidget *parent = 0); 28 | ~DistormWidget(); 29 | private slots: 30 | void onMaxInstruc(int val); 31 | void onOffset(QString val); 32 | void onType(int val); 33 | void onShowOffset(bool val); 34 | void onShowOpcodes(bool val); 35 | private: 36 | Q_DISABLE_COPY(DistormWidget) 37 | static const QStringList asmTypeStrings; 38 | Ui::DistormWidget *ui; 39 | DistormTransf * transform; 40 | }; 41 | 42 | #endif // DISTORMWIDGET_H 43 | -------------------------------------------------------------------------------- /defaultplugins/exampleplugin/exampleplugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "ExamplePlugin" ] 3 | } 4 | -------------------------------------------------------------------------------- /defaultplugins/exampleplugin/exampleplugin.pro: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | QT += svg gui 10 | 11 | TARGET = exampleplugin 12 | TEMPLATE = lib 13 | CONFIG += plugin release 14 | 15 | unix { 16 | LIBS += -L"../../bin/" -ltransform 17 | } 18 | 19 | win32 { 20 | QMAKE_LFLAGS_WINDOWS += /FS 21 | LIBS += -L"../../lib/" -ltransform 22 | } 23 | 24 | INCLUDEPATH += ../../libtransform/ 25 | DESTDIR = ../../bin/plugins 26 | 27 | DEFINES += EXAMPLEPLUGIN_LIBRARY 28 | 29 | SOURCES += exampleplugin.cpp \ 30 | identity.cpp 31 | 32 | HEADERS += exampleplugin.h\ 33 | exampleplugin_global.h \ 34 | identity.h 35 | 36 | OTHER_FILES += \ 37 | exampleplugin.json 38 | 39 | -------------------------------------------------------------------------------- /defaultplugins/exampleplugin/exampleplugin_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef EXAMPLEPLUGIN_GLOBAL_H 12 | #define EXAMPLEPLUGIN_GLOBAL_H 13 | 14 | // That's a default file created by QTCreator 15 | // It is automatically created when you choose the library template 16 | // Don't touch anything here, unless you now exactly what you are doing 17 | 18 | #include 19 | 20 | #if defined(EXAMPLEPLUGIN_LIBRARY) 21 | # define EXAMPLEPLUGINSHARED_EXPORT Q_DECL_EXPORT 22 | #else 23 | # define EXAMPLEPLUGINSHARED_EXPORT Q_DECL_IMPORT 24 | #endif 25 | 26 | #endif // EXAMPLEPLUGIN_GLOBAL_H 27 | -------------------------------------------------------------------------------- /defaultplugins/exampleplugin/identity.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef IDENTITY_H 12 | #define IDENTITY_H 13 | 14 | #include 15 | 16 | // Example Transform class which will return the input as the output 17 | // nothing really exciting, more detailed comments in the cpp file. 18 | 19 | class QWidget; 20 | 21 | class Identity : public TransformAbstract 22 | { 23 | public: 24 | Identity(); 25 | ~Identity(); 26 | QString name() const; 27 | QString description() const; 28 | void transform(const QByteArray &input, QByteArray &output); 29 | bool isTwoWays(); 30 | static const QString id; 31 | QHash getConfiguration(); 32 | bool setConfiguration(QHash propertiesList); 33 | QWidget * requestGui(QWidget * parent); 34 | private: 35 | Q_DISABLE_COPY(Identity) // just to avoid stupidity 36 | }; 37 | 38 | #endif // IDENTITY_H 39 | -------------------------------------------------------------------------------- /defaultplugins/opensslplugin/opensslhashes.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef OPENSSLHASHES_H 12 | #define OPENSSLHASHES_H 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | class OpenSSLHashes : public TransformAbstract 20 | { 21 | Q_OBJECT 22 | 23 | public: 24 | static QStringList hashList; 25 | explicit OpenSSLHashes(const QString &hashName = QString()); 26 | ~OpenSSLHashes(); 27 | QString name() const; 28 | QString description() const; 29 | void transform(const QByteArray &input, QByteArray &output); 30 | bool isTwoWays(); 31 | QHash getConfiguration(); 32 | bool setConfiguration(QHash propertiesList); 33 | static const QString id; 34 | 35 | QString getHashName(); 36 | bool setHashName(QString name); 37 | QString help() const; 38 | private: 39 | Q_DISABLE_COPY(OpenSSLHashes) 40 | QString hashName; 41 | EVP_MD_CTX *mdctx; 42 | const EVP_MD *md; 43 | }; 44 | #endif // OPENSSLHASHES_H 45 | -------------------------------------------------------------------------------- /defaultplugins/opensslplugin/opensslplugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "OpensslPlugin" ] 3 | } 4 | -------------------------------------------------------------------------------- /defaultplugins/opensslplugin/opensslplugin.pro: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | QT += gui 10 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 11 | 12 | TARGET = opensslplugin 13 | TEMPLATE = lib 14 | CONFIG += plugin release 15 | DEFINES += OPENSSLPLUGIN_LIBRARY 16 | 17 | SOURCES += opensslplugin.cpp \ 18 | opensslhashes.cpp 19 | 20 | HEADERS += opensslplugin.h\ 21 | opensslplugin_global.h \ 22 | opensslhashes.h 23 | 24 | unix { 25 | LIBS += -L"../../bin/" -ltransform 26 | } 27 | 28 | win32 { 29 | QMAKE_LFLAGS_WINDOWS += /FS 30 | LIBS += -L"../../lib/" -ltransform 31 | } 32 | 33 | INCLUDEPATH += ../../libtransform/ 34 | 35 | DESTDIR = ../../bin/plugins 36 | 37 | unix { 38 | LIBS += -lcrypto 39 | } 40 | 41 | win32 { 42 | INCLUDEPATH +="C:\\OpenSSL-Win32\\include\\" 43 | LIBS += -L"C:\\OpenSSL-Win32\\lib\\" -llibeay32 44 | } 45 | 46 | OTHER_FILES += \ 47 | opensslplugin.json 48 | -------------------------------------------------------------------------------- /defaultplugins/opensslplugin/opensslplugin_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef OPENSSLPLUGIN_GLOBAL_H 12 | #define OPENSSLPLUGIN_GLOBAL_H 13 | 14 | #include 15 | 16 | #if defined(OPENSSLPLUGIN_LIBRARY) 17 | # define OPENSSLPLUGINSHARED_EXPORT Q_DECL_EXPORT 18 | #else 19 | # define OPENSSLPLUGINSHARED_EXPORT Q_DECL_IMPORT 20 | #endif 21 | 22 | #endif // OPENSSLPLUGIN_GLOBAL_H 23 | -------------------------------------------------------------------------------- /defaultplugins/pythonplugin/pythonplugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keys": [ "PythonPlugin" ] 3 | } 4 | -------------------------------------------------------------------------------- /defaultplugins/pythonplugin/pythonplugin_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef PYTHONPLUGIN_GLOBAL_H 12 | #define PYTHONPLUGIN_GLOBAL_H 13 | 14 | #include 15 | 16 | #if defined(PYTHONPLUGIN_LIBRARY) 17 | # define PYTHONPLUGINSHARED_EXPORT Q_DECL_EXPORT 18 | #else 19 | # define PYTHONPLUGINSHARED_EXPORT Q_DECL_IMPORT 20 | #endif 21 | 22 | #endif // PYTHONPLUGIN_GLOBAL_H 23 | -------------------------------------------------------------------------------- /extras/burp_plugin/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | pip3lineplugin 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /extras/burp_plugin/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 5 | org.eclipse.jdt.core.compiler.compliance=1.7 6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 11 | org.eclipse.jdt.core.compiler.source=1.7 12 | -------------------------------------------------------------------------------- /extras/gentoo_package/metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | forensics 5 | 6 | Compile the OpenSSL plugin 7 | Compile the python 2.7 plugin 8 | Compile the python 3 plugin 9 | 10 | 11 | -------------------------------------------------------------------------------- /extras/gentoo_package/pip3line-TEMPLATE.ebuild: -------------------------------------------------------------------------------- 1 | # $Header: $ 2 | # 3 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 4 | # 5 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 6 | # 7 | # https://github.com/nccgroup/pip3line 8 | # 9 | # Released under AGPL see LICENSE for more information 10 | # 11 | 12 | EAPI=5 13 | 14 | inherit cmake-utils 15 | 16 | DESCRIPTION="Pip3line Raw bytes manipulation and transformation and more" 17 | HOMEPAGE="https://github.com/nccgroup/pip3line" 18 | SRC_URI="https://github.com/nccgroup/pip3line/files/${P}.tar.gz" 19 | 20 | LICENSE="GPL-3" 21 | SLOT="0" 22 | KEYWORDS="amd64 ~x86" 23 | IUSE="openssl python27 python3" 24 | 25 | DEPEND="openssl? ( dev-libs/openssl ) 26 | python27? ( dev-lang/python:2.7 ) 27 | python3? ( dev-lang/python:3.2 ) 28 | dev-qt/qtcore 29 | dev-qt/qtgui 30 | dev-qt/qtsvg 31 | dev-qt/qtxmlpatterns" 32 | 33 | RDEPEND="${DEPEND}" 34 | 35 | src_configure() { 36 | local mycmakeargs=( 37 | $(cmake-utils_use_with openssl OPENSSL) 38 | $(cmake-utils_use_with python27 PYTHON27) 39 | $(cmake-utils_use_with python3 PYTHON3) 40 | ) 41 | cmake-utils_src_configure 42 | } 43 | -------------------------------------------------------------------------------- /extras/python_scripts_example/bz2_python27.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | #-*- coding: UTF-8 -*- 3 | 4 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 6 | # https://github.com/nccgroup/pip3line 7 | # Released under AGPL see LICENSE for more information 8 | 9 | 10 | import bz2 11 | 12 | Pip3line_is_two_ways = True 13 | 14 | def pip3line_transform(inputData): 15 | ret = None 16 | if (Pip3line_INBOUND): 17 | ret = bytearray(bz2.compress(inputData)) 18 | else: 19 | ret = bytearray(bz2.decompress(inputData)) 20 | return ret 21 | 22 | -------------------------------------------------------------------------------- /extras/python_scripts_example/gzip_python3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | #-*- coding: UTF-8 -*- 3 | 4 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 6 | # https://github.com/nccgroup/pip3line 7 | # Released under AGPL see LICENSE for more information 8 | 9 | import gzip 10 | 11 | Pip3line_is_two_ways = True 12 | 13 | def pip3line_transform(inputData): 14 | ret = None 15 | if (Pip3line_INBOUND): 16 | ret = bytearray(gzip.compress(inputData)) 17 | else: 18 | ret = bytearray(gzip.decompress(inputData)) 19 | return ret 20 | 21 | -------------------------------------------------------------------------------- /extras/python_scripts_example/mytransform_TEMPLATE.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #-*- coding: UTF-8 -*- 3 | 4 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 6 | # https://github.com/nccgroup/pip3line 7 | # Released under AGPL see LICENSE for more information 8 | 9 | # [Optional] you can precise that this transformation is bidirectional and check for the 10 | # Pip3line_INBOUND module attribute later on (see gzip and bz2 for examples) 11 | Pip3line_is_two_ways = False 12 | 13 | # [Optional] one can also define default parameter names like this 14 | # (they have to be unicode strings, if not they will be ignored) 15 | Pip3line_params_names = ["param1", "param2"] 16 | 17 | # You need to implement a function with this exact name 18 | 19 | def pip3line_transform(inputData): 20 | """ Take a bytearray as input and needs to return a bytearray""" 21 | # if you need to convert to a python 'string' 22 | string = inputData.decode('utf-8') 23 | string = string[::-1] 24 | 25 | # if there was paramters defined in the gui, here they are as a unicode string dict 26 | print(str(Pip3line_params)) 27 | 28 | # just remember to convert it back to a bytearray 29 | return bytearray(string, 'utf-8') 30 | 31 | 32 | -------------------------------------------------------------------------------- /extras/sublime_text_3_plugin/Context.sublime-menu: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "caption": "-" 4 | }, 5 | { 6 | "command": "send_to_pip3line", 7 | "args": {}, 8 | "caption": "Send to pip3line" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /extras/sublime_text_3_plugin/README: -------------------------------------------------------------------------------- 1 | To use in Sublime Text 3 , copy this directory in 2 | 3 | %[sublime user configuration dir]/Packages/ 4 | -------------------------------------------------------------------------------- /extras/sublime_text_3_plugin/pip3line.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | // Enable debugging 3 | "debug": false, 4 | 5 | // Default pip3line address and port 6 | "ipaddress" : "127.0.0.1", 7 | "port" : 40000 , 8 | "separator" : "0a" 9 | } 10 | -------------------------------------------------------------------------------- /gui/aboutdialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef ABOUTDIALOG_H 12 | #define ABOUTDIALOG_H 13 | 14 | #include "appdialog.h" 15 | 16 | namespace Ui { 17 | class AboutDialog; 18 | } 19 | 20 | class AboutDialog : public AppDialog 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit AboutDialog(GuiHelper * guiHelper, QWidget *parent = 0); 26 | ~AboutDialog(); 27 | 28 | private: 29 | Q_DISABLE_COPY(AboutDialog) 30 | Ui::AboutDialog *ui; 31 | }; 32 | 33 | #endif // ABOUTDIALOG_H 34 | -------------------------------------------------------------------------------- /gui/crossplatform.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CROSSPLATFORM_H 12 | #define CROSSPLATFORM_H 13 | 14 | #ifdef Q_OS_WIN 15 | #define LONG_LONG_MAX _I64_MAX 16 | #define ULONG_LONG_MAX _UI64_MAX 17 | #endif 18 | 19 | //#define P_INT64_MAX LONG_LONG_MAX 20 | //#define P_UINT64_MAX ULONG_LONG_MAX 21 | //#define P_INT32_MAX INT_MAX 22 | //#define P_UINT32_MAX UINT_MAX 23 | 24 | #endif // CROSSPLATFORM_H 25 | -------------------------------------------------------------------------------- /gui/debugdialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DEBUGDIALOG_H 12 | #define DEBUGDIALOG_H 13 | 14 | #include "appdialog.h" 15 | #include 16 | 17 | namespace Ui { 18 | class DebugDialog; 19 | } 20 | 21 | class GuiHelper; 22 | class HexView; 23 | class CurrentMemorysource; 24 | class QEvent; 25 | 26 | 27 | class DebugDialog : public AppDialog 28 | { 29 | Q_OBJECT 30 | public: 31 | explicit DebugDialog(GuiHelper* helper, QWidget *parent = 0); 32 | ~DebugDialog(); 33 | 34 | void closeEvent(QCloseEvent *event); 35 | private slots: 36 | void onLoad(); 37 | void refreshTransformInstances(); 38 | void onInstanceClick(QModelIndex index); 39 | private: 40 | Q_DISABLE_COPY(DebugDialog) 41 | void loadQObject(QObject * obj); 42 | bool eventFilter(QObject *o, QEvent *event); 43 | Ui::DebugDialog *ui; 44 | HexView *hexview; 45 | CurrentMemorysource *source; 46 | }; 47 | 48 | #endif // DEBUGDIALOG_H 49 | -------------------------------------------------------------------------------- /gui/defaultsxml/base32decode.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/base64decode.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/cstylearray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/escapedhexadecimal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/escapedhexadecimalmixed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/hexadecimal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/int16lesign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/int32lesign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/int64lesign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/int64leunsign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/int8lesign.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/urlencoded.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/defaultsxml/utf16le.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gui/floatingdialog.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "floatingdialog.h" 12 | #include "ui_floatingdialog.h" 13 | #include 14 | #include 15 | 16 | FloatingDialog::FloatingDialog(GuiHelper * guiHelper, QWidget * widget, QWidget *parent) : 17 | AppDialog(guiHelper, parent) 18 | { 19 | allowReject = true; 20 | ui = new(std::nothrow) Ui::FloatingDialog(); 21 | if (ui == NULL) { 22 | qFatal("Cannot allocate memory for Ui::FloatingDialog X{"); 23 | } 24 | ui->setupUi(this); 25 | setModal(false); 26 | ui->verticalLayout->addWidget(widget); 27 | widget->setVisible(true); 28 | } 29 | 30 | FloatingDialog::~FloatingDialog() 31 | { 32 | delete ui; 33 | } 34 | 35 | void FloatingDialog::setAllowReject(bool val) 36 | { 37 | allowReject = val; 38 | } 39 | 40 | void FloatingDialog::closeEvent(QCloseEvent *event) 41 | { 42 | if (allowReject) { 43 | reject(); 44 | } 45 | //emit hiding(); ?? 46 | event->accept(); 47 | 48 | } 49 | -------------------------------------------------------------------------------- /gui/floatingdialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef FLOATINGDIALOG_H 12 | #define FLOATINGDIALOG_H 13 | 14 | #include "appdialog.h" 15 | 16 | namespace Ui { 17 | class FloatingDialog; 18 | } 19 | 20 | class FloatingDialog : public AppDialog 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit FloatingDialog(GuiHelper * guiHelper, QWidget *widget, QWidget *parent = 0); 26 | ~FloatingDialog(); 27 | void setAllowReject(bool val); 28 | public slots: 29 | void closeEvent(QCloseEvent * event); 30 | 31 | private: 32 | Q_DISABLE_COPY(FloatingDialog) 33 | Ui::FloatingDialog *ui; 34 | bool allowReject; 35 | }; 36 | 37 | #endif // FLOATINGDIALOG_H 38 | -------------------------------------------------------------------------------- /gui/floatingdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | * Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | * 6 | * Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 7 | * 8 | * https://github.com/nccgroup/pip3line 9 | * 10 | * Released under AGPL see LICENSE for more information 11 | 12 | FloatingDialog 13 | 14 | 15 | 16 | 0 17 | 0 18 | 835 19 | 555 20 | 21 | 22 | 23 | Dialog 24 | 25 | 26 | 27 | 0 28 | 29 | 30 | 0 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /gui/icons/application-exit-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/application-exit-4.png -------------------------------------------------------------------------------- /gui/icons/application-x-executable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/application-x-executable.png -------------------------------------------------------------------------------- /gui/icons/arrow-left-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/arrow-left-3.png -------------------------------------------------------------------------------- /gui/icons/arrow-right-3-mod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/arrow-right-3-mod.png -------------------------------------------------------------------------------- /gui/icons/arrow-right-double-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/arrow-right-double-3.png -------------------------------------------------------------------------------- /gui/icons/configure-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/configure-5.png -------------------------------------------------------------------------------- /gui/icons/dialog-cancel-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/dialog-cancel-3.png -------------------------------------------------------------------------------- /gui/icons/dialog-important.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/dialog-important.png -------------------------------------------------------------------------------- /gui/icons/dialog-more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/dialog-more.png -------------------------------------------------------------------------------- /gui/icons/document-new-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/document-new-3.png -------------------------------------------------------------------------------- /gui/icons/document-open-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/document-open-8.png -------------------------------------------------------------------------------- /gui/icons/document-properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/document-properties.png -------------------------------------------------------------------------------- /gui/icons/document-save-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/document-save-5.png -------------------------------------------------------------------------------- /gui/icons/edit-clear-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-clear-2.png -------------------------------------------------------------------------------- /gui/icons/edit-copy-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-copy-3.png -------------------------------------------------------------------------------- /gui/icons/edit-copy-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-copy-4.png -------------------------------------------------------------------------------- /gui/icons/edit-delete-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-delete-4.png -------------------------------------------------------------------------------- /gui/icons/edit-find-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-find-10.png -------------------------------------------------------------------------------- /gui/icons/edit-find-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-find-7.png -------------------------------------------------------------------------------- /gui/icons/edit-find-and-replace-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-find-and-replace-2.png -------------------------------------------------------------------------------- /gui/icons/edit-find-and-replace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-find-and-replace.png -------------------------------------------------------------------------------- /gui/icons/edit-redo-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-redo-8.png -------------------------------------------------------------------------------- /gui/icons/edit-undo-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/edit-undo-8.png -------------------------------------------------------------------------------- /gui/icons/go-bottom-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/go-bottom-3.png -------------------------------------------------------------------------------- /gui/icons/go-last-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/go-last-2.png -------------------------------------------------------------------------------- /gui/icons/go-next-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/go-next-4.png -------------------------------------------------------------------------------- /gui/icons/go-previous-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/go-previous-4.png -------------------------------------------------------------------------------- /gui/icons/go-top-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/go-top-3.png -------------------------------------------------------------------------------- /gui/icons/irc-close-channel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/irc-close-channel.png -------------------------------------------------------------------------------- /gui/icons/media-playback-start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/media-playback-start.png -------------------------------------------------------------------------------- /gui/icons/media-playback-stop-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/media-playback-stop-7.png -------------------------------------------------------------------------------- /gui/icons/media-seek-forward-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/media-seek-forward-7.png -------------------------------------------------------------------------------- /gui/icons/object-flip-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/object-flip-horizontal.png -------------------------------------------------------------------------------- /gui/icons/object-rotate-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/object-rotate-right.png -------------------------------------------------------------------------------- /gui/icons/object-rotate-right_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/object-rotate-right_out.png -------------------------------------------------------------------------------- /gui/icons/pip3line.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/pip3line.ico -------------------------------------------------------------------------------- /gui/icons/pip3line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/pip3line.png -------------------------------------------------------------------------------- /gui/icons/system-search-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/system-search-2.png -------------------------------------------------------------------------------- /gui/icons/system-switch-user-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/system-switch-user-3.png -------------------------------------------------------------------------------- /gui/icons/tab-duplicate-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/tab-duplicate-2.png -------------------------------------------------------------------------------- /gui/icons/view-fullscreen-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/view-fullscreen-4.png -------------------------------------------------------------------------------- /gui/icons/view-refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/view-refresh.png -------------------------------------------------------------------------------- /gui/icons/view-restore-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/view-restore-2.png -------------------------------------------------------------------------------- /gui/icons/window-new-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nccgroup/pip3line/5e271955256bcd03f34de12a63bdac290e4d7c49/gui/icons/window-new-7.png -------------------------------------------------------------------------------- /gui/infodialog.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "infodialog.h" 12 | #include 13 | #include "ui_infodialog.h" 14 | 15 | InfoDialog::InfoDialog(GuiHelper * guiHelper, TransformAbstract *ntransform, QWidget *parent) : 16 | AppDialog(guiHelper, parent) 17 | { 18 | ui = new(std::nothrow) Ui::InfoDialog(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::InfoDialog X{"); 21 | } 22 | transform = ntransform; 23 | ui->setupUi(this); 24 | 25 | ui->helpTextEdit->setHtml(transform->help()); 26 | if (!transform->credits().isEmpty()) { 27 | ui->creditsTextEdit->setHtml(transform->credits()); 28 | } else { 29 | ui->creditsTab->setVisible(false); 30 | } 31 | } 32 | 33 | InfoDialog::~InfoDialog() 34 | { 35 | delete ui; 36 | } 37 | 38 | TransformAbstract *InfoDialog::getTransform() 39 | { 40 | return transform; 41 | } 42 | -------------------------------------------------------------------------------- /gui/infodialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef INFODIALOG_H 12 | #define INFODIALOG_H 13 | 14 | #include "appdialog.h" 15 | 16 | namespace Ui { 17 | class InfoDialog; 18 | } 19 | 20 | class TransformAbstract; 21 | 22 | class InfoDialog : public AppDialog 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit InfoDialog(GuiHelper * guiHelper, TransformAbstract *transform, QWidget *parent = 0); 28 | ~InfoDialog(); 29 | TransformAbstract * getTransform(); 30 | 31 | private: 32 | Q_DISABLE_COPY(InfoDialog) 33 | Ui::InfoDialog *ui; 34 | TransformAbstract * transform; 35 | }; 36 | 37 | #endif // INFODIALOG_H 38 | -------------------------------------------------------------------------------- /gui/loggerwidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | * Released as open source by NCC Group Plc - http://www.nccgroup.com/ 5 | * 6 | * Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 7 | * 8 | * https://github.com/nccgroup/pip3line 9 | * 10 | * Released under AGPL see LICENSE for more information 11 | 12 | LoggerWidget 13 | 14 | 15 | 16 | 0 17 | 0 18 | 666 19 | 270 20 | 21 | 22 | 23 | 24 | 0 25 | 0 26 | 27 | 28 | 29 | 30 | 0 31 | 0 32 | 33 | 34 | 35 | Form 36 | 37 | 38 | 39 | 40 | 41 | true 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /gui/messagedialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MESSAGEDIALOG_H 12 | #define MESSAGEDIALOG_H 13 | 14 | #include "appdialog.h" 15 | #include 16 | #include 17 | 18 | namespace Ui { 19 | class MessageDialog; 20 | } 21 | 22 | class MessageDialog : public AppDialog 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit MessageDialog(GuiHelper * guiHelper, QWidget *parent = 0); 28 | ~MessageDialog(); 29 | long errors(); 30 | long warnings(); 31 | bool hasMessages(); 32 | void setJustShowMessages(bool flag); 33 | 34 | public slots: 35 | void logWarning(const QString message, const QString source = QString()); 36 | void logError(const QString message, const QString source = QString()); 37 | void clearMessages(); 38 | 39 | private: 40 | Q_DISABLE_COPY(MessageDialog) 41 | void addMessage(const QString &message, QColor color); 42 | QMutex lock; 43 | Ui::MessageDialog *ui; 44 | long warningCount; 45 | long errorCount; 46 | }; 47 | 48 | #endif // MESSAGEDIALOG_H 49 | -------------------------------------------------------------------------------- /gui/newbytedialog.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "newbytedialog.h" 12 | #include "ui_newbytedialog.h" 13 | 14 | NewByteDialog::NewByteDialog(GuiHelper * guiHelper, QWidget *parent, bool isSimple) : 15 | AppDialog(guiHelper, parent) 16 | { 17 | ui = new(std::nothrow) Ui::NewByteDialog(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::NewByteDialog X{"); 20 | } 21 | ui->setupUi(this); 22 | if (isSimple) { 23 | ui->countLabel->setVisible(false); 24 | ui->countSpinBox->setVisible(false); 25 | } 26 | } 27 | 28 | NewByteDialog::~NewByteDialog() 29 | { 30 | delete ui; 31 | } 32 | 33 | int NewByteDialog::byteCount() 34 | { 35 | return ui->countSpinBox->value(); 36 | } 37 | 38 | char NewByteDialog::getChar() 39 | { 40 | return ui->hexWidget->getChar(); 41 | } 42 | 43 | void NewByteDialog::closeEvent(QCloseEvent *event) 44 | { 45 | reject(); 46 | QDialog::closeEvent(event); 47 | } 48 | -------------------------------------------------------------------------------- /gui/newbytedialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef NEWBYTEDIALOG_H 12 | #define NEWBYTEDIALOG_H 13 | 14 | #include "appdialog.h" 15 | 16 | namespace Ui { 17 | class NewByteDialog; 18 | } 19 | 20 | class NewByteDialog : public AppDialog 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit NewByteDialog(GuiHelper * guiHelper, QWidget *parent = 0, bool isSimple = false); 26 | ~NewByteDialog(); 27 | int byteCount(); 28 | char getChar(); 29 | void closeEvent(QCloseEvent *event); 30 | 31 | private: 32 | Q_DISABLE_COPY(NewByteDialog) 33 | Ui::NewByteDialog *ui; 34 | }; 35 | 36 | #endif // NEWBYTEDIALOG_H 37 | -------------------------------------------------------------------------------- /gui/pip3line.desktop: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | [Desktop Entry] 10 | #Encoding=UTF-8 Deprecated 11 | Name=Pip3line 12 | Type=Application 13 | Exec=pip3line 14 | Icon=/usr/share/icons/hicolor/128x128/apps/pip3line.png 15 | Terminal=false 16 | GenericName=Pip3line 17 | Comment=Application to decode/encode bytes blocks 18 | Categories=Qt;Utility; 19 | -------------------------------------------------------------------------------- /gui/pluginconfwidget.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "pluginconfwidget.h" 12 | #include "ui_pluginconfwidget.h" 13 | #include 14 | 15 | PluginConfWidget::PluginConfWidget(TransformFactoryPluginInterface *nplugin, QWidget *parent) : 16 | QWidget(parent) 17 | { 18 | ui = new(std::nothrow) Ui::PluginConfWidget(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::PluginConfWidget X{"); 21 | } 22 | plugin = nplugin; 23 | ui->setupUi(this); 24 | ui->pluginNamelabel->setText(plugin->pluginName()); 25 | 26 | QWidget * gui = plugin->getConfGui(this); 27 | 28 | if (gui != NULL) { 29 | ui->mainLayout->addWidget(gui); 30 | } 31 | 32 | QStringList typesList = plugin->getTypesList(); 33 | 34 | QString types; 35 | for (int i = 0; i < typesList.size(); i++) { 36 | types.append(typesList.at(i)).append(": "); 37 | types.append(QString::number(plugin->getTransformList(typesList.at(i)).size())); 38 | types.append("\n"); 39 | } 40 | 41 | ui->pluginTransformLabel->setText(types); 42 | } 43 | 44 | PluginConfWidget::~PluginConfWidget() 45 | { 46 | delete ui; 47 | } 48 | -------------------------------------------------------------------------------- /gui/pluginconfwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef PLUGINCONFWIDGET_H 12 | #define PLUGINCONFWIDGET_H 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | namespace Ui { 19 | class PluginConfWidget; 20 | } 21 | 22 | class PluginConfWidget : public QWidget 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit PluginConfWidget(TransformFactoryPluginInterface * plugin, QWidget *parent = 0); 28 | ~PluginConfWidget(); 29 | private: 30 | Q_DISABLE_COPY(PluginConfWidget) 31 | Ui::PluginConfWidget *ui; 32 | TransformFactoryPluginInterface * plugin; 33 | }; 34 | 35 | #endif // PLUGINCONFWIDGET_H 36 | -------------------------------------------------------------------------------- /gui/regexphelpdialog.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "regexphelpdialog.h" 12 | #include "ui_regexphelpdialog.h" 13 | 14 | RegExpHelpDialog::RegExpHelpDialog(GuiHelper * nguiHelper,QWidget *parent) : 15 | AppDialog(nguiHelper,parent) 16 | { 17 | ui = new(std::nothrow) Ui::RegExpHelpDialog(); 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::RegExpHelpDialog X{"); 20 | } 21 | ui->setupUi(this); 22 | } 23 | 24 | RegExpHelpDialog::~RegExpHelpDialog() 25 | { 26 | delete ui; 27 | } 28 | -------------------------------------------------------------------------------- /gui/regexphelpdialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef REGEXPHELPDIALOG_H 12 | #define REGEXPHELPDIALOG_H 13 | 14 | #include "appdialog.h" 15 | 16 | namespace Ui { 17 | class RegExpHelpDialog; 18 | } 19 | 20 | class RegExpHelpDialog : public AppDialog 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit RegExpHelpDialog(GuiHelper *nguiHelper, QWidget *parent = 0); 26 | ~RegExpHelpDialog(); 27 | 28 | private: 29 | Q_DISABLE_COPY(RegExpHelpDialog) 30 | Ui::RegExpHelpDialog *ui; 31 | }; 32 | 33 | #endif // REGEXPHELPDIALOG_H 34 | -------------------------------------------------------------------------------- /gui/release.txt: -------------------------------------------------------------------------------- 1 | 3.1.1 2 | -------------------------------------------------------------------------------- /gui/screeniodevice.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SCREENIODEVICE_H 12 | #define SCREENIODEVICE_H 13 | 14 | #include 15 | #include 16 | 17 | class ScreenIODevice : public QIODevice 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit ScreenIODevice(QPlainTextEdit *outWidget, QObject *parent = 0); 22 | 23 | bool atEnd() const; 24 | qint64 bytesAvailable() const; 25 | qint64 bytesToWrite() const; 26 | bool canReadLine() const; 27 | bool seek(qint64 pos); 28 | qint64 size() const; 29 | bool waitForBytesWritten(int); 30 | bool waitForReadyRead(int); 31 | 32 | void setWidget(QPlainTextEdit * outWidget); 33 | signals: 34 | void packet(QString packet); 35 | private slots: 36 | void processPacket(QString packet); 37 | 38 | private: 39 | Q_DISABLE_COPY(ScreenIODevice) 40 | qint64 writeData(const char * src, qint64 maxSize); 41 | qint64 readData(char * dest, qint64 maxSize); 42 | QPlainTextEdit * widget; 43 | }; 44 | 45 | #endif // SCREENIODEVICE_H 46 | -------------------------------------------------------------------------------- /gui/shared/bytesourceguibutton.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BYTESOURCEGUIBUTTON_H 12 | #define BYTESOURCEGUIBUTTON_H 13 | 14 | #include 15 | #include 16 | 17 | class ByteSourceAbstract; 18 | class GuiHelper; 19 | class FloatingDialog; 20 | class QAction; 21 | 22 | class ByteSourceGuiButton : public QPushButton 23 | { 24 | Q_OBJECT 25 | public: 26 | explicit ByteSourceGuiButton(ByteSourceAbstract *bytesource,GuiHelper *guiHelper, QWidget *parent = 0); 27 | ~ByteSourceGuiButton(); 28 | 29 | public slots: 30 | void refreshState(); 31 | 32 | private slots: 33 | void onGuiDelete(); 34 | void onToggle(bool val); 35 | void onGuiHiding(); 36 | private: 37 | ByteSourceAbstract *byteSource; 38 | GuiHelper *guiHelper; 39 | QWidget * gui; 40 | FloatingDialog *guidia; 41 | QAction *localAction; 42 | 43 | }; 44 | 45 | #endif // BYTESOURCEGUIBUTTON_H 46 | -------------------------------------------------------------------------------- /gui/shared/clearallmarkingsbutton.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "clearallmarkingsbutton.h" 12 | #include "../sources/bytesourceabstract.h" 13 | #include 14 | 15 | ClearAllMarkingsButton::ClearAllMarkingsButton(ByteSourceAbstract *bytesource, QWidget *parent) : 16 | QPushButton(parent) 17 | { 18 | setIcon(QIcon(":/Images/icons/irc-close-channel.png")); 19 | setFlat(true); 20 | setMaximumWidth(25); 21 | setToolTip(tr("Clear all markings")); 22 | setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M)); 23 | byteSource = bytesource; 24 | connect(this, SIGNAL(clicked()), byteSource, SLOT(clearAllMarkings())); 25 | } 26 | -------------------------------------------------------------------------------- /gui/shared/clearallmarkingsbutton.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CLEARALLMARKINGSBUTTON_H 12 | #define CLEARALLMARKINGSBUTTON_H 13 | 14 | #include 15 | class ByteSourceAbstract; 16 | 17 | class ClearAllMarkingsButton : public QPushButton 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit ClearAllMarkingsButton(ByteSourceAbstract *bytesource, QWidget *parent = 0); 22 | 23 | private: 24 | ByteSourceAbstract *byteSource; 25 | 26 | }; 27 | 28 | #endif // CLEARALLMARKINGSBUTTON_H 29 | -------------------------------------------------------------------------------- /gui/shared/detachtabbutton.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "detachtabbutton.h" 12 | #include "../tabs/tababstract.h" 13 | 14 | DetachTabButton::DetachTabButton(TabAbstract * tab) : 15 | QPushButton(tab) 16 | { 17 | curtab = tab; 18 | setIcon(QIcon(":/Images/icons/tab-duplicate-2.png")); 19 | setFlat(true); 20 | setMaximumWidth(25); 21 | setToolTip(tr("Detach/attach tab")); 22 | connect(this, SIGNAL(clicked()), curtab, SLOT(onDetach())); 23 | } 24 | -------------------------------------------------------------------------------- /gui/shared/detachtabbutton.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DETACHTABBUTTON_H 12 | #define DETACHTABBUTTON_H 13 | 14 | #include 15 | class TabAbstract; 16 | 17 | class DetachTabButton : public QPushButton 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit DetachTabButton(TabAbstract *tab); 22 | private: 23 | TabAbstract * curtab; 24 | 25 | }; 26 | 27 | #endif // DETACHTABBUTTON_H 28 | -------------------------------------------------------------------------------- /gui/shared/hexwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef HEXWIDGET_H 12 | #define HEXWIDGET_H 13 | 14 | #include 15 | 16 | namespace Ui { 17 | class HexWidget; 18 | } 19 | 20 | class HexWidget : public QWidget 21 | { 22 | Q_OBJECT 23 | 24 | public: 25 | explicit HexWidget(QWidget *parent = 0); 26 | ~HexWidget(); 27 | char getChar(); 28 | void setChar(char c); 29 | signals: 30 | void charChanged(char c); 31 | private slots: 32 | void onHexChanged(); 33 | private: 34 | Q_DISABLE_COPY(HexWidget) 35 | Ui::HexWidget *ui; 36 | }; 37 | 38 | #endif // HEXWIDGET_H 39 | -------------------------------------------------------------------------------- /gui/shared/messagepanelwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MESSAGEPANELWIDGET_H 12 | #define MESSAGEPANELWIDGET_H 13 | 14 | #include 15 | #include 16 | 17 | namespace Ui { 18 | class MessagePanelWidget; 19 | } 20 | 21 | class MessagePanelWidget : public QWidget 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit MessagePanelWidget(QWidget *parent = 0); 27 | ~MessagePanelWidget(); 28 | QString toHTML(); 29 | void setHTML(QString html); 30 | public slots: 31 | void logWarning(const QString message, const QString source = QString()); 32 | void logError(const QString message, const QString source = QString()); 33 | void logStatus(const QString message, const QString source = QString()); 34 | void log(QString mess,QString source,Pip3lineConst::LOGLEVEL level); 35 | void addMessage(const QString &message, QColor color); 36 | void closeWidget(); 37 | void clear(); 38 | private: 39 | Ui::MessagePanelWidget *ui; 40 | }; 41 | 42 | #endif // MESSAGEPANELWIDGET_H 43 | -------------------------------------------------------------------------------- /gui/shared/offsetgotowidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef OFFSETGOTOWIDGET_H 12 | #define OFFSETGOTOWIDGET_H 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | class GuiHelper; 20 | 21 | class OffsetValidator : public QValidator 22 | { 23 | Q_OBJECT 24 | public: 25 | explicit OffsetValidator(QObject *parent = 0); 26 | QValidator::State validate(QString & input, int & pos) const; 27 | 28 | }; 29 | 30 | class OffsetGotoWidget : public QLineEdit 31 | { 32 | Q_OBJECT 33 | public: 34 | static const QRegExp offsetRegexp; 35 | explicit OffsetGotoWidget(GuiHelper *guiHelper,QWidget *parent = 0); 36 | signals: 37 | void gotoRequest(quint64 offset, bool absolute, bool sign, bool select); 38 | void error(QString mess); 39 | private slots: 40 | void onGoto(QString offsetString, bool select); 41 | private: 42 | static const QString TOOLTIP_TEXT; 43 | static const QString PLACEHOLDER_TEXT; 44 | void keyPressEvent(QKeyEvent * event); 45 | void focusInEvent(QFocusEvent * event); 46 | GuiHelper *guiHelper; 47 | 48 | }; 49 | 50 | #endif // OFFSETGOTOWIDGET_H 51 | -------------------------------------------------------------------------------- /gui/shared/readonlybutton.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef READONLYBUTTON_H 12 | #define READONLYBUTTON_H 13 | 14 | #include 15 | 16 | class ByteSourceAbstract; 17 | 18 | class ReadOnlyButton : public QPushButton 19 | { 20 | Q_OBJECT 21 | public: 22 | explicit ReadOnlyButton(ByteSourceAbstract * bytesource, QWidget *parent = 0); 23 | signals: 24 | void logError(QString message); 25 | public slots: 26 | void refreshStateValue(); 27 | void onToggle(bool val); 28 | 29 | private: 30 | ByteSourceAbstract *byteSource; 31 | static const QString ReadWrite; 32 | static const QString ReadOnly; 33 | static const QString ButtonToolTipRW; 34 | static const QString ButtonToolTipRO; 35 | static const QString CAP_WRITE_DISABLED_ToolTip; 36 | }; 37 | 38 | #endif // READONLYBUTTON_H 39 | -------------------------------------------------------------------------------- /gui/shared/universalreceiverbutton.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef UNIVERSALRECEIVERBUTTON_H 12 | #define UNIVERSALRECEIVERBUTTON_H 13 | 14 | #include 15 | #include 16 | 17 | class TabAbstract; 18 | class GuiHelper; 19 | 20 | class CommonUniversalReceiverListener : public QObject 21 | { 22 | Q_OBJECT 23 | public: 24 | explicit CommonUniversalReceiverListener(); 25 | public slots: 26 | void onReceiverConfigured(); 27 | signals: 28 | void taken(); 29 | private: 30 | Q_DISABLE_COPY(CommonUniversalReceiverListener) 31 | }; 32 | 33 | class UniversalReceiverButton : public QPushButton 34 | { 35 | Q_OBJECT 36 | public: 37 | explicit UniversalReceiverButton(TabAbstract *tab, GuiHelper *guiHelper); 38 | ~UniversalReceiverButton(); 39 | public slots: 40 | void reset(); 41 | private slots: 42 | void onClicked(bool checked); 43 | signals: 44 | void tookReceiver(); 45 | private: 46 | GuiHelper * guiHelper; 47 | TabAbstract *attachedTab; 48 | static CommonUniversalReceiverListener staticListener; 49 | bool taken; 50 | 51 | }; 52 | 53 | #endif // UNIVERSALRECEIVERBUTTON_H 54 | -------------------------------------------------------------------------------- /gui/sources/filewidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef FILEWIDGET_H 12 | #define FILEWIDGET_H 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | namespace Ui { 20 | class FileWidget; 21 | } 22 | 23 | class LargeFile; 24 | 25 | class FileWidget : public QWidget 26 | { 27 | Q_OBJECT 28 | 29 | public: 30 | explicit FileWidget(LargeFile *fsource, QWidget *parent = 0); 31 | ~FileWidget(); 32 | QSize sizeHint() const; 33 | 34 | signals: 35 | void readonlyChange(bool val); 36 | private slots: 37 | void refresh(); 38 | private: 39 | Ui::FileWidget *ui; 40 | LargeFile *source; 41 | }; 42 | 43 | #endif // FILEWIDGET_H 44 | -------------------------------------------------------------------------------- /gui/sources/intercept/interceptorproxy.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef INTERCEPTORPROXY_H 12 | #define INTERCEPTORPROXY_H 13 | 14 | #include 15 | #include 16 | #include 17 | #include "payload.h" 18 | #include "interceptorchestratorabstract.h" 19 | 20 | class InterceptorProxy : public InterceptOrchestratorAbstract 21 | { 22 | Q_OBJECT 23 | public: 24 | explicit InterceptorProxy(QObject *parent = 0); 25 | ~InterceptorProxy(); 26 | BlocksSource *getLeft() const; 27 | void setLeft(BlocksSource *value); 28 | BlocksSource *getRight() const; 29 | void setRight(BlocksSource *value); 30 | void forwardStandbyPayload(); 31 | int requiredNumOfSources(); 32 | quint16 acceptablesSourcesTypes(); 33 | public slots: 34 | void receiveBlock(Block *block); 35 | private: 36 | bool verifySanity(); 37 | void registerBlockSource(BlocksSource *bs); 38 | void timerEvent(QTimerEvent *event); 39 | void flushQueue(); 40 | BlocksSource *left; 41 | BlocksSource *right; 42 | QHash translationTable; 43 | QQueue packetQueue; 44 | int timer; 45 | }; 46 | 47 | #endif // INTERCEPTORPROXY_H 48 | -------------------------------------------------------------------------------- /gui/sources/intercept/interceptsetupwidget.h: -------------------------------------------------------------------------------- 1 | #ifndef INTERCEPTSETUPWIDGET_H 2 | #define INTERCEPTSETUPWIDGET_H 3 | 4 | #include 5 | #include 6 | #include "../blocksources/blockssource.h" 7 | #include "interceptorchestratorabstract.h" 8 | 9 | namespace Ui { 10 | class InterceptSetUpWidget; 11 | } 12 | 13 | class InterceptSetUpWidget : public QWidget 14 | { 15 | Q_OBJECT 16 | 17 | public: 18 | explicit InterceptSetUpWidget(QWidget *parent = 0); 19 | ~InterceptSetUpWidget(); 20 | QStringList getUnaryList(bool includeReflexive = true); 21 | 22 | private: 23 | Ui::InterceptSetUpWidget *ui; 24 | static const QStringList TypeList; 25 | QStringList UnaryList; 26 | InterceptOrchestratorAbstract *leftSource; 27 | }; 28 | 29 | #endif // INTERCEPTSETUPWIDGET_H 30 | -------------------------------------------------------------------------------- /gui/sources/intercept/payloadmodel.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef PAYLOADMODEL_H 12 | #define PAYLOADMODEL_H 13 | 14 | #include "payload.h" 15 | #include 16 | #include 17 | 18 | class PayloadModel : public QAbstractTableModel 19 | { 20 | Q_OBJECT 21 | public: 22 | static const int TIMESPTAMP_COLUMN; 23 | static const int DIRECTION_COLUMN; 24 | static const int PAYLOAD_COLUMN; 25 | explicit PayloadModel(QObject * parent = 0); 26 | ~PayloadModel(); 27 | int rowCount ( const QModelIndex & parent = QModelIndex() ) const; 28 | int columnCount(const QModelIndex &parent = QModelIndex()) const; 29 | QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const; 30 | QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const; 31 | void addPayload(Payload * payload); 32 | Payload *getPayload(int i); 33 | QStringList getColumnNames() const; 34 | void setColumnNames(const QStringList &value); 35 | public slots: 36 | void clear(); 37 | private: 38 | QList payloadList; 39 | QStringList columnNames; 40 | 41 | }; 42 | 43 | #endif // PAYLOADMODEL_H 44 | -------------------------------------------------------------------------------- /gui/sources/memorywidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MEMORYWIDGET_H 12 | #define MEMORYWIDGET_H 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | namespace Ui { 20 | class MemoryWidget; 21 | } 22 | 23 | class CurrentMemorysource; 24 | class QMenu; 25 | class QAction; 26 | 27 | class MemoryWidget : public QWidget 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | explicit MemoryWidget(CurrentMemorysource *source, QWidget *parent = 0); 33 | ~MemoryWidget(); 34 | void setProcSelection(bool val); 35 | QSize sizeHint() const; 36 | private slots: 37 | void onDoubleClick(QModelIndex index); 38 | void onRefreshToggled(bool val); 39 | void onRightClick(QPoint pos); 40 | void contextMenuAction(QAction * action); 41 | void onSearch(QByteArray item, QBitArray mask, bool maybetext); 42 | private: 43 | static const QString GOTOSTART; 44 | static const QString GOTOEND; 45 | void initContextMenu(); 46 | Ui::MemoryWidget *ui; 47 | CurrentMemorysource * msource; 48 | QMenu * contextMenu; 49 | }; 50 | 51 | #endif // MEMORYWIDGET_H 52 | -------------------------------------------------------------------------------- /gui/sources/networkclientwidget.h: -------------------------------------------------------------------------------- 1 | #ifndef NETWORKCLIENTWIDGET_H 2 | #define NETWORKCLIENTWIDGET_H 3 | 4 | #include 5 | #include 6 | #include "blocksources/rawtcplistener.h" 7 | 8 | namespace Ui { 9 | class NetworkClientWidget; 10 | } 11 | 12 | class NetworkClientWidget : public QWidget 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit NetworkClientWidget(RawTcpListener * listener, QWidget *parent = 0); 18 | ~NetworkClientWidget(); 19 | QHostAddress getIPAddress(); 20 | quint16 getPort(); 21 | public slots: 22 | void reset(); 23 | private slots: 24 | void onStartStop(); 25 | void onRestart(); 26 | signals: 27 | void start(); 28 | void stop(); 29 | void restart(); 30 | 31 | private: 32 | static const QString START_STRING; 33 | static const QString STOP_STRING; 34 | Ui::NetworkClientWidget *ui; 35 | RawTcpListener * listener; 36 | }; 37 | 38 | #endif // NETWORKCLIENTWIDGET_H 39 | -------------------------------------------------------------------------------- /gui/state/closingstate.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "closingstate.h" 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | ClosingState::ClosingState() 18 | { 19 | name = metaObject()->className(); 20 | // qDebug() << "Create" << this; 21 | } 22 | 23 | ClosingState::~ClosingState() 24 | { 25 | 26 | } 27 | 28 | void ClosingState::run() 29 | { 30 | genCloseElement(); 31 | } 32 | 33 | 34 | -------------------------------------------------------------------------------- /gui/state/closingstate.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef CLOSINGSTATE_H 12 | #define CLOSINGSTATE_H 13 | 14 | #include "basestateabstract.h" 15 | 16 | /** 17 | * @brief The ClosingState class 18 | * 19 | * Utility class used to perform close actions such as closing group 20 | * or array open on the state file, or clearing the state file object 21 | * 22 | */ 23 | 24 | class ClosingState : public BaseStateAbstract 25 | { 26 | Q_OBJECT 27 | public: 28 | explicit ClosingState(); 29 | virtual ~ClosingState(); 30 | virtual void run(); 31 | }; 32 | 33 | #endif // CLOSINGSTATE_H 34 | -------------------------------------------------------------------------------- /gui/state/statedialog.cpp: -------------------------------------------------------------------------------- 1 | #include "statedialog.h" 2 | #include "ui_statedialog.h" 3 | #include 4 | #include 5 | #include 6 | 7 | StateDialog::StateDialog(QWidget *parent) : 8 | QDialog(parent), 9 | ui(new Ui::StateDialog) 10 | { 11 | ui->setupUi(this); 12 | ui->progressBar->setMinimum(0); 13 | ui->progressBar->setMaximum(50); 14 | ui->progressBar->setValue(0); 15 | 16 | const QRect screen = QApplication::desktop()->screenGeometry(); 17 | move(screen.center() - this->rect().center()); 18 | } 19 | 20 | StateDialog::~StateDialog() 21 | { 22 | delete ui; 23 | } 24 | 25 | void StateDialog::log(QString message, QString , Pip3lineConst::LOGLEVEL ) 26 | { 27 | ui->logLabel->setText(message); 28 | ui->progressBar->setValue((ui->progressBar->value() + 1) % 50); 29 | } 30 | -------------------------------------------------------------------------------- /gui/state/statedialog.h: -------------------------------------------------------------------------------- 1 | #ifndef STATEDIALOG_H 2 | #define STATEDIALOG_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Ui { 8 | class StateDialog; 9 | } 10 | 11 | class StateDialog : public QDialog 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit StateDialog(QWidget *parent = 0); 17 | ~StateDialog(); 18 | 19 | public slots: 20 | void log(QString message, QString source, Pip3lineConst::LOGLEVEL level); 21 | private: 22 | Ui::StateDialog *ui; 23 | }; 24 | 25 | #endif // STATEDIALOG_H 26 | -------------------------------------------------------------------------------- /gui/state/statedialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | StateDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 180 10 | 48 11 | 12 | 13 | 14 | State management 15 | 16 | 17 | 18 | 19 | 20 | Restoring 21 | 22 | 23 | Qt::AlignCenter 24 | 25 | 26 | 27 | 28 | 29 | 30 | 0 31 | 32 | 33 | -1 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /gui/state/statestatuswidget.cpp: -------------------------------------------------------------------------------- 1 | #include "statestatuswidget.h" 2 | #include "ui_statestatuswidget.h" 3 | 4 | StateStatusWidget::StateStatusWidget(QWidget *parent) : 5 | QWidget(parent), 6 | ui(new Ui::StateStatusWidget) 7 | { 8 | ui->setupUi(this); 9 | ui->progressBar->setMinimum(0); 10 | ui->progressBar->setMaximum(50); 11 | ui->progressBar->setValue(0); 12 | } 13 | 14 | StateStatusWidget::~StateStatusWidget() 15 | { 16 | delete ui; 17 | } 18 | 19 | void StateStatusWidget::log(QString , QString , Pip3lineConst::LOGLEVEL ) 20 | { 21 | ui->progressBar->setValue((ui->progressBar->value() + 1) % 50); 22 | } 23 | -------------------------------------------------------------------------------- /gui/state/statestatuswidget.h: -------------------------------------------------------------------------------- 1 | #ifndef STATESTATUSWIDGET_H 2 | #define STATESTATUSWIDGET_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Ui { 8 | class StateStatusWidget; 9 | } 10 | 11 | class StateStatusWidget : public QWidget 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit StateStatusWidget(QWidget *parent = 0); 17 | ~StateStatusWidget(); 18 | public slots: 19 | void log(QString, QString, Pip3lineConst::LOGLEVEL); 20 | private: 21 | Ui::StateStatusWidget *ui; 22 | }; 23 | 24 | #endif // STATESTATUSWIDGET_H 25 | -------------------------------------------------------------------------------- /gui/state/statestatuswidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | StateStatusWidget 4 | 5 | 6 | 7 | 0 8 | 0 9 | 400 10 | 300 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 0 19 | 20 | 21 | 0 22 | 23 | 24 | 25 | 26 | Saving 27 | 28 | 29 | 30 | 31 | 32 | 33 | 24 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /gui/textinputdialog.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "textinputdialog.h" 12 | #include "ui_textinputdialog.h" 13 | 14 | TextInputDialog::TextInputDialog(QWidget *parent) : 15 | QDialog(parent) 16 | { 17 | ui = new(std::nothrow) Ui::textInputDialog; 18 | if (ui == NULL) { 19 | qFatal("Cannot allocate memory for Ui::textInputDialog X{"); 20 | } 21 | ui->setupUi(this); 22 | } 23 | 24 | TextInputDialog::~TextInputDialog() 25 | { 26 | delete ui; 27 | } 28 | 29 | void TextInputDialog::setTextLabel(QString text) 30 | { 31 | ui->inputLabel->setText(text); 32 | } 33 | 34 | void TextInputDialog::setPixLabel(QPixmap pix) 35 | { 36 | ui->inputLabel->setPixmap(pix); 37 | } 38 | 39 | QString TextInputDialog::getInputText() const 40 | { 41 | return ui->inputLineEdit->text(); 42 | } 43 | 44 | void TextInputDialog::setText(QString text) 45 | { 46 | ui->inputLineEdit->setText(text); 47 | ui->inputLineEdit->selectAll(); 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /gui/textinputdialog.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef TEXTINPUTDIALOG_H 12 | #define TEXTINPUTDIALOG_H 13 | 14 | #include 15 | #include 16 | 17 | namespace Ui { 18 | class textInputDialog; 19 | } 20 | 21 | class TextInputDialog : public QDialog 22 | { 23 | Q_OBJECT 24 | 25 | public: 26 | explicit TextInputDialog(QWidget *parent = 0); 27 | ~TextInputDialog(); 28 | void setTextLabel(QString text); 29 | void setPixLabel(QPixmap pix); 30 | QString getInputText() const; 31 | void setText(QString text); 32 | 33 | private: 34 | Q_DISABLE_COPY(TextInputDialog) 35 | Ui::textInputDialog *ui; 36 | }; 37 | 38 | #endif // TEXTINPUTDIALOG_H 39 | -------------------------------------------------------------------------------- /gui/views/foldedview.cpp: -------------------------------------------------------------------------------- 1 | #include "foldedview.h" 2 | #include "ui_foldedview.h" 3 | 4 | FoldedView::FoldedView(TransformWidget * transformWidget, QWidget *parent) : 5 | QFrame(parent), 6 | ui(new Ui::FoldedView), 7 | transformWidget(transformWidget) 8 | { 9 | ui->setupUi(this); 10 | ui->descLabel->setText(transformWidget->getDescription()); 11 | } 12 | 13 | FoldedView::~FoldedView() 14 | { 15 | delete ui; 16 | transformWidget = NULL; 17 | } 18 | 19 | TransformWidget *FoldedView::getTransformWidget() const 20 | { 21 | return transformWidget; 22 | } 23 | 24 | void FoldedView::mouseDoubleClickEvent(QMouseEvent *event) 25 | { 26 | if (event->button() == Qt::LeftButton) { 27 | emit unfoldRequested(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /gui/views/foldedview.h: -------------------------------------------------------------------------------- 1 | #ifndef FOLDEDVIEW_H 2 | #define FOLDEDVIEW_H 3 | 4 | #include 5 | #include "transformwidget.h" 6 | 7 | class QMouseEvent; 8 | 9 | namespace Ui { 10 | class FoldedView; 11 | } 12 | 13 | class FoldedView : public QFrame 14 | { 15 | Q_OBJECT 16 | 17 | public: 18 | explicit FoldedView(TransformWidget * transformWidget, QWidget *parent = 0); 19 | ~FoldedView(); 20 | TransformWidget *getTransformWidget() const; 21 | signals: 22 | void unfoldRequested(); 23 | private: 24 | void mouseDoubleClickEvent(QMouseEvent * event); 25 | Ui::FoldedView *ui; 26 | TransformWidget * transformWidget; 27 | }; 28 | 29 | #endif // FOLDEDVIEW_H 30 | -------------------------------------------------------------------------------- /gui/views/singleviewabstract.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "singleviewabstract.h" 12 | #include "../loggerwidget.h" 13 | #include "../guihelper.h" 14 | #include "../sources/bytesourceabstract.h" 15 | #include 16 | #include 17 | #include 18 | 19 | SingleViewAbstract::SingleViewAbstract(ByteSourceAbstract *dataModel,GuiHelper *nguiHelper, QWidget *parent, bool takeByteSourceOwnership) : 20 | QWidget(parent), 21 | hasSourceOwnership(takeByteSourceOwnership) 22 | { 23 | byteSource = dataModel; 24 | guiHelper = nguiHelper; 25 | logger = guiHelper->getLogger(); 26 | } 27 | 28 | SingleViewAbstract::~SingleViewAbstract() 29 | { 30 | if (hasSourceOwnership) { 31 | delete byteSource; 32 | } 33 | byteSource = NULL; 34 | logger = NULL; 35 | } 36 | 37 | void SingleViewAbstract::searchAgain() 38 | { 39 | return search(previousSearch,previousMask); 40 | } 41 | ByteSourceAbstract *SingleViewAbstract::getByteSource() const 42 | { 43 | return byteSource; 44 | } 45 | 46 | -------------------------------------------------------------------------------- /gui/views/singleviewabstract.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef SINGLEVIEWABSTRACT_H 12 | #define SINGLEVIEWABSTRACT_H 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | class ByteSourceAbstract; 19 | class GuiHelper; 20 | class LoggerWidget; 21 | using namespace Pip3lineConst; 22 | 23 | class SingleViewAbstract : public QWidget 24 | { 25 | Q_OBJECT 26 | public: 27 | explicit SingleViewAbstract(ByteSourceAbstract *dataModel, GuiHelper *guiHelper, QWidget *parent = 0, bool takeByteSourceOwnership = false); 28 | virtual ~SingleViewAbstract(); 29 | ByteSourceAbstract *getByteSource() const; 30 | public slots: 31 | virtual void search(QByteArray item, QBitArray mask) = 0; 32 | virtual void searchAgain(); 33 | signals: 34 | void askForFileLoad(); 35 | protected: 36 | void internalUpdateData(const QByteArray &rawdata); 37 | void internalUpdateMessages(Messages messages); 38 | ByteSourceAbstract *byteSource; 39 | GuiHelper * guiHelper; 40 | LoggerWidget *logger; 41 | QByteArray previousSearch; 42 | QBitArray previousMask; 43 | bool hasSourceOwnership; 44 | 45 | }; 46 | 47 | #endif // SINGLEVIEWABSTRACT_H 48 | -------------------------------------------------------------------------------- /gui/win.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "icons/pip3line.ico" 2 | -------------------------------------------------------------------------------- /libtransform/LibTransform: -------------------------------------------------------------------------------- 1 | #include "libtransform/transformfactoryplugininterface.h" 2 | #include "libtransform/commonstrings.h" 3 | #include "libtransform/transformabstract.h" 4 | #include "libtransform/transformmgmt.h" 5 | -------------------------------------------------------------------------------- /libtransform/composedtransform.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef COMPOSEDTRANSFORM_H 12 | #define COMPOSEDTRANSFORM_H 13 | 14 | #include "transformabstract.h" 15 | #include "transformchain.h" 16 | 17 | class LIBTRANSFORMSHARED_EXPORT ComposedTransform : public TransformAbstract 18 | { 19 | Q_OBJECT 20 | public: 21 | explicit ComposedTransform(TransformChain transformChain); 22 | ~ComposedTransform(); 23 | QString name() const; 24 | QString description() const; 25 | void transform(const QByteArray &input, QByteArray &output); 26 | bool isTwoWays(); 27 | QWidget * getGui(QWidget * parent); 28 | QString help() const; 29 | static const QString id; 30 | private: 31 | Q_DISABLE_COPY(ComposedTransform) 32 | TransformChain chain; 33 | bool twoWaysFlag; 34 | QList defaultWays; 35 | }; 36 | 37 | #endif // COMPOSEDTRANSFORM_H 38 | -------------------------------------------------------------------------------- /libtransform/deleteablelistitem.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "deleteablelistitem.h" 12 | #include "ui_deleteablelistitem.h" 13 | #include 14 | 15 | DeleteableListItem::DeleteableListItem(const QString &text, const QPixmap &im, QWidget *parent) : 16 | QWidget(parent) 17 | { 18 | ui = new(std::nothrow) Ui::DeleteableListItem(); 19 | if (ui == NULL) { 20 | qFatal("Cannot allocate memory for Ui::DeleteableListItem X{"); 21 | } 22 | ui->setupUi(this); 23 | ui->textLabel->setText(text); 24 | 25 | if (!im.isNull()) 26 | ui->pixLabel->setPixmap(im); 27 | connect(ui->deletePushButton, SIGNAL(clicked()), this, SLOT(onDelete())); 28 | } 29 | 30 | DeleteableListItem::~DeleteableListItem() 31 | { 32 | // qDebug() << "D3stroying " << this; 33 | delete ui; 34 | } 35 | 36 | QString DeleteableListItem::getName() 37 | { 38 | return ui->textLabel->text(); 39 | } 40 | 41 | void DeleteableListItem::setEnableDelete(bool val) 42 | { 43 | ui->deletePushButton->setEnabled(val); 44 | } 45 | 46 | 47 | void DeleteableListItem::onDelete() 48 | { 49 | emit itemDeleted(ui->textLabel->text()); 50 | deleteLater(); 51 | } 52 | -------------------------------------------------------------------------------- /libtransform/deleteablelistitem.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef DELETEABLELISTITEM_H 12 | #define DELETEABLELISTITEM_H 13 | 14 | #include "libtransform_global.h" 15 | #include 16 | #include 17 | 18 | namespace Ui { 19 | class DeleteableListItem; 20 | } 21 | 22 | class LIBTRANSFORMSHARED_EXPORT DeleteableListItem : public QWidget 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit DeleteableListItem(const QString &text, const QPixmap &im = QPixmap(), QWidget *parent = 0); 28 | ~DeleteableListItem(); 29 | QString getName(); 30 | void setEnableDelete(bool val); 31 | signals: 32 | void itemDeleted(QString name); 33 | private slots: 34 | void onDelete(); 35 | private: 36 | Q_DISABLE_COPY(DeleteableListItem) 37 | Ui::DeleteableListItem *ui; 38 | }; 39 | 40 | #endif // DELETEABLELISTITEM_H 41 | -------------------------------------------------------------------------------- /libtransform/libtransform_global.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef LIBTRANSFORM_GLOBAL_H 12 | #define LIBTRANSFORM_GLOBAL_H 13 | 14 | #include 15 | 16 | #if defined(LIBTRANSFORM_LIBRARY) 17 | # define LIBTRANSFORMSHARED_EXPORT Q_DECL_EXPORT 18 | #else 19 | # define LIBTRANSFORMSHARED_EXPORT Q_DECL_IMPORT 20 | #endif 21 | 22 | #endif // LIBTRANSFORM_GLOBAL_H 23 | -------------------------------------------------------------------------------- /libtransform/modulesmanagementwidget.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef MODULESMANAGEMENTWIDGET_H 12 | #define MODULESMANAGEMENTWIDGET_H 13 | 14 | #include 15 | #include "libtransform_global.h" 16 | 17 | namespace Ui { 18 | class ModulesManagementWidget; 19 | } 20 | 21 | class QListWidgetItem; 22 | class ModulesManagement; 23 | 24 | class LIBTRANSFORMSHARED_EXPORT ModulesManagementWidget : public QWidget 25 | { 26 | Q_OBJECT 27 | 28 | public: 29 | explicit ModulesManagementWidget(ModulesManagement * modulesMgmt, QWidget *parent = 0); 30 | ~ModulesManagementWidget(); 31 | 32 | private Q_SLOTS: 33 | void onManualClicked(); 34 | void loadModules(); 35 | void loadPaths(); 36 | void unload(QString name = QString()); 37 | void onModuleSelected(QListWidgetItem* item); 38 | private: 39 | Q_DISABLE_COPY(ModulesManagementWidget) 40 | QString moduleTitle; 41 | ModulesManagement * modulesMgmt; 42 | Ui::ModulesManagementWidget *ui; 43 | }; 44 | 45 | #endif // MODULESMANAGEMENTWIDGET_H 46 | -------------------------------------------------------------------------------- /libtransform/transformfactoryplugininterface.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef TRANSFORMFACTORYPLUGININTERFACE_H 12 | #define TRANSFORMFACTORYPLUGININTERFACE_H 13 | 14 | #include 15 | 16 | QT_BEGIN_NAMESPACE 17 | class QString; 18 | class QStringList; 19 | class QWidget; 20 | class Pip3lineCallback; 21 | class TransformAbstract; 22 | 23 | class TransformFactoryPluginInterface 24 | { 25 | public: 26 | virtual ~TransformFactoryPluginInterface() {} 27 | virtual void setCallBack(Pip3lineCallback *) = 0; 28 | virtual QString pluginName() const = 0; 29 | virtual TransformAbstract * getTransform(QString name) = 0; 30 | virtual const QStringList getTransformList(QString typeName) = 0; 31 | virtual const QStringList getTypesList() = 0; 32 | virtual QWidget * getConfGui(QWidget * parent) = 0; 33 | virtual QString compiledWithQTversion() const = 0; 34 | virtual int getLibTransformVersion() const = 0; 35 | virtual QString pluginVersion() const = 0; 36 | }; 37 | 38 | #define pluginIID "com.pip3line/1.2" 39 | Q_DECLARE_INTERFACE(TransformFactoryPluginInterface, pluginIID) 40 | QT_END_NAMESPACE 41 | 42 | #endif // TRANSFORMFACTORYPLUGININTERFACE_H 43 | -------------------------------------------------------------------------------- /todo: -------------------------------------------------------------------------------- 1 | implement memory search 2 | 3 | 4 | Ruby plugin ? 5 | Lua plugin ? 6 | 7 | upgrade the crappy mass processing implementation 8 | 9 | -------------------------------------------------------------------------------- /tools/binaryprocessor.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "binaryprocessor.h" 12 | 13 | const int BinaryProcessor::BLOCKSIZE = 4096; 14 | 15 | BinaryProcessor::BinaryProcessor(TransformMgmt * tFactory, QObject *parent) : 16 | Processor(tFactory, parent) 17 | { 18 | } 19 | 20 | BinaryProcessor::~BinaryProcessor() 21 | { 22 | 23 | } 24 | 25 | void BinaryProcessor::run() 26 | { 27 | QByteArray block; 28 | 29 | char buffer[BLOCKSIZE]; 30 | 31 | if (tlist.isEmpty()) { 32 | emit error(tr("Error: No transformation configured, exiting the process."), "Binary Processor"); 33 | return; 34 | } 35 | 36 | while (!in->atEnd()) { 37 | qint64 whatHasBeenDone = in->read(buffer,BLOCKSIZE); 38 | 39 | if (whatHasBeenDone == -1) { 40 | emit error(in->errorString(), "Binary Processor"); 41 | break; 42 | } 43 | block.append(buffer,whatHasBeenDone); 44 | if (block.size() > BLOCK_MAX_SIZE) { 45 | block.resize(BLOCK_MAX_SIZE); 46 | emit error("Data received from the pipe is too large, the block has been truncated.","BinaryProcessor"); 47 | break; 48 | } 49 | } 50 | 51 | writeBlock(block); 52 | 53 | } 54 | -------------------------------------------------------------------------------- /tools/binaryprocessor.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef BINARYPROCESSOR_H 12 | #define BINARYPROCESSOR_H 13 | 14 | #include "processor.h" 15 | 16 | class BinaryProcessor: public Processor 17 | { 18 | public: 19 | static const int BLOCKSIZE; 20 | explicit BinaryProcessor(TransformMgmt *tFactory, QObject * parent = 0); 21 | ~BinaryProcessor(); 22 | void run(); 23 | private: 24 | Q_DISABLE_COPY(BinaryProcessor) 25 | BinaryProcessor() {} 26 | }; 27 | 28 | #endif // BINARYPROCESSOR_H 29 | -------------------------------------------------------------------------------- /tools/processingstats.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef PROCESSINGSTATS_H 12 | #define PROCESSINGSTATS_H 13 | 14 | #include 15 | 16 | class ProcessingStats 17 | { 18 | public: 19 | explicit ProcessingStats(); 20 | ProcessingStats(const ProcessingStats& other); 21 | ProcessingStats &operator=(const ProcessingStats &other); 22 | ProcessingStats &operator+=(ProcessingStats & other); 23 | void reset(); 24 | 25 | quint64 getOutBlocks() const; 26 | quint64 getInBlocks() const; 27 | quint64 getErrorsCount() const; 28 | quint64 getWarningsCount() const; 29 | quint64 getStatusCount() const; 30 | 31 | void incrOutBlocks(quint64 val = 1); 32 | void incrInBlocks(quint64 val = 1); 33 | void incrErrorsCount(quint64 val = 1); 34 | void incrWarningsCount(quint64 val = 1); 35 | void incrStatusCount(quint64 val = 1); 36 | private: 37 | quint64 outBlocks; 38 | quint64 inBlocks; 39 | quint64 errorCounts; 40 | quint64 warningCounts; 41 | quint64 statusCounts; 42 | }; 43 | 44 | #endif // PROCESSINGSTATS_H 45 | -------------------------------------------------------------------------------- /tools/streamprocessor.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef STREAMPROCESSOR_H 12 | #define STREAMPROCESSOR_H 13 | 14 | #include "processor.h" 15 | #include 16 | #include 17 | 18 | class StreamProcessor : public Processor 19 | { 20 | Q_OBJECT 21 | public: 22 | explicit StreamProcessor(TransformMgmt * tFactory,QObject *parent = 0); 23 | virtual void run(); 24 | public slots: 25 | void stop(); 26 | protected: 27 | explicit StreamProcessor() {} 28 | QSemaphore runSem; 29 | private: 30 | Q_DISABLE_COPY(StreamProcessor) 31 | 32 | }; 33 | 34 | #endif // STREAMPROCESSOR_H 35 | -------------------------------------------------------------------------------- /tools/textprocessor.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #include "textprocessor.h" 12 | #include 13 | 14 | TextProcessor::TextProcessor(TransformMgmt * tFactory, QObject *parent) : 15 | Processor(tFactory, parent) 16 | { 17 | } 18 | 19 | TextProcessor::~TextProcessor() 20 | { 21 | } 22 | 23 | void TextProcessor::run() 24 | { 25 | if (in == NULL) { 26 | logError(tr("Input is not defined, TextProcessor will not run"), "TextProcessor"); 27 | return; 28 | } 29 | 30 | if (out == NULL) { 31 | logError(tr("output is not defined, TextProcessor will not run"), "TextProcessor"); 32 | return; 33 | } 34 | 35 | QByteArray temp; 36 | QTextStream ins(in); 37 | stats.reset(); 38 | 39 | while (!ins.atEnd()) { 40 | temp = ins.readLine().toUtf8(); 41 | 42 | writeBlock(temp); 43 | 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /tools/textprocessor.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef TEXTPROCESSOR_H 12 | #define TEXTPROCESSOR_H 13 | 14 | #include "processor.h" 15 | 16 | class TextProcessor: public Processor 17 | { 18 | public: 19 | explicit TextProcessor(TransformMgmt *tFactory, QObject * parent = 0); 20 | ~TextProcessor(); 21 | void run(); 22 | protected: 23 | TextProcessor() {} 24 | private: 25 | Q_DISABLE_COPY(TextProcessor) 26 | }; 27 | 28 | #endif // TEXTPROCESSOR_H 29 | -------------------------------------------------------------------------------- /tools/todo: -------------------------------------------------------------------------------- 1 | compare functionalities 2 | ability to save/load markings 3 | possibility to define byte "sources" : file on disk, disk , process memory, shared memory segment ... 4 | Ruby plugin ? 5 | Lua plugin ? 6 | 7 | -------------------------------------------------------------------------------- /unittests/unittests/unittests.pro: -------------------------------------------------------------------------------- 1 | # Released as open source by NCC Group Plc - http://www.nccgroup.com/ 2 | # 3 | # Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 4 | # 5 | # https://github.com/nccgroup/pip3line 6 | # 7 | # Released under AGPL see LICENSE for more information 8 | 9 | QT += network svg xml xmlpatterns testlib 10 | 11 | TARGET = tst_unitteststest 12 | CONFIG += console 13 | CONFIG -= app_bundle 14 | 15 | TEMPLATE = app 16 | 17 | 18 | SOURCES += tst_unitteststest.cpp 19 | DEFINES += SRCDIR=\\\"$$PWD/\\\" 20 | 21 | LIBS += -L"../../bin/" -ltransform 22 | INCLUDEPATH += ../../libtransform 23 | DESTDIR = ../../bin 24 | -------------------------------------------------------------------------------- /version.h: -------------------------------------------------------------------------------- 1 | /** 2 | Released as open source by NCC Group Plc - http://www.nccgroup.com/ 3 | 4 | Developed by Gabriel Caudrelier, gabriel dot caudrelier at nccgroup dot com 5 | 6 | https://github.com/nccgroup/pip3line 7 | 8 | Released under AGPL see LICENSE for more information 9 | **/ 10 | 11 | #ifndef VERSION_H 12 | #define VERSION_H 13 | 14 | #define APPNAME "pip3line" 15 | 16 | #define VERSION_STRING "2.7.1" 17 | #define VERSION_MAJOR 2 18 | #define VERSION_MINOR 7 19 | #define VERSION_REV 1 20 | 21 | #ifndef GIT_COMMIT 22 | #define GIT_COMMIT "Unkonwn" 23 | #endif // GIT_COMMIT 24 | 25 | #ifndef GIT_BRANCH 26 | #define GIT_BRANCH "Unkonwn" 27 | #endif // GIT_BRANCH 28 | 29 | #endif // VERSION_H 30 | --------------------------------------------------------------------------------