ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java工具开发手记

2021-04-15 20:36:32  阅读:201  来源: 互联网

标签:shell Java false setEditable 框体 手记 proxy new 工具


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);

来自某人的反馈

未完续...

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

标签:shell,Java,false,setEditable,框体,手记,proxy,new,工具
来源: https://www.cnblogs.com/nice0e3/p/14664238.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有