首页 > 编程语言 > 详细

Java工具开发手记

时间:2021-04-15 23:46:02      阅读:29      评论:0      收藏:0      [点我收藏+]

Java工具开发手记

前言

这段时间沉迷于工具开发方面,个人也比较倾向于gui的工具。使用在开发过程中避免的就是gui的一些框体,这里主要用于记录一些关键点。

工具开发

其实在前段时间编写的14882_exploit_Gui工具的时候,提出的一个问题。除了命令执行在工具里还有什么实用的功能模块。当时提出的一个proxy功能,并把他给实现了。

开发过程中其实具体在Gui框体的设计这块相对来说比较费时间。

代理模块核心实现代码

public Proxy createProxy_SOCKET() {
    Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(this.socket_ip_addr, this.socket_port));
    return proxy;
}

...
    Proxy proxy_socket = createProxy_SOCKET();
...
    HttpsURLConnection https = (HttpsURLConnection)url.openConnection(proxy_socket);

GUI设计

this.setResizable(false); //不可最大化设置
setLocationRelativeTo(null); //框体居中

proxy_setting 如何进行消息框弹出的问题解决

jDialog1.setVisible(rootPaneCheckingEnabled);

check_box选项框事件监听问题解决,且实现不勾选输入框无法使用功能。

jCheckBox1.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                boolean proxy_flag = jCheckBox1.isSelected();
//                System.out.println(proxy_flag);
                if(proxy_flag){
                    jTextField4.setEditable(true);
                    jTextField5.setEditable(true);
//                    jComboBox4.setEditable(true);
                }else {
                    jTextField4.setEditable(false);
                    jTextField5.setEditable(false);
                    jComboBox4.setEditable(false);
                }
//                System.out.println(jComboBox4.getSelectedItem().toString());
            }
        });

写文件功能问题解决:

public class Fileutils {
    public static void writeFile(String savepath,String shell) {//写文件
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(savepath);
            fos.write(shell.getBytes());
            fos.close();
            System.out.println("已保存");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }}
        
        ......
        JFileChooser chooser = new JFileChooser();
  String shell = processor.get_shell(Generated_password, Generated_key, Generated_Encode);
                if (chooser.showSaveDialog(jButton2)==JFileChooser.APPROVE_OPTION) {
                    File file = chooser.getSelectedFile();
                    Fileutils.writeFile(file.getPath(),shell);

最后来看看成品

技术分享图片

技术分享图片

GitHub地址:https://github.com/nice0e3/CVE-2020-14882_Exploit_Gui/

命令框崩溃问题解决

在前面几个版本中遇到在打weblogic的时候命令框使用echo语句写shell会导致框体崩溃

如下图:

技术分享图片

原因其实是以为在写gui的时候,设置了命令框可拉伸,取消掉拉伸功能,并且将框体设置不可最大化即可解决。

this.setResizable(false);

来自某人的反馈

技术分享图片

未完续...

持续记录问题与问题解决方案

Java工具开发手记

原文:https://www.cnblogs.com/nice0e3/p/14664238.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!