关于Android Studio4以上版本不能attach和项目模块包名不一样的应用问题逆向研究报告...

image.png
image.png

研究的结果是失败的,虽然找到了一些痕迹。
在搜字符串的时候搜到了一点和这相关的东西。
![image.png]C6YZ83B%BP%FMXMI`KH8A.png

image.png
*/
public class AndroidProcessChooserDialog extends DialogWrapper {
    static final /* synthetic */ boolean $assertionsDisabled = (!AndroidProcessChooserDialog.class.desiredAssertionStatus());
    @NonNls
    private static final String DEBUGGABLE_DEVICE_PROPERTY = "DEBUGGABLE_DEVICE";
    @NonNls
    private static final String DEBUGGABLE_PROCESS_PROPERTY = "DEBUGGABLE_PROCESS";
    @NonNls
    private static final String DEBUGGER_ID_PROPERTY = "DEBUGGER_ID";
    @NonNls
    private static final String SHOW_ALL_PROCESSES_PROPERTY = "SHOW_ALL_PROCESSES";
    private final MyProcessTreeCellRenderer myCellRenderer;
    private final AndroidDebugBridge.IClientChangeListener myClientChangeListener;
    private JPanel myContentPanel;
    private JLabel myDebuggerLabel;
    private JComboBox<RunConfiguration> myDebuggerRunConfigCombo;
    private JLabel myDebuggerRunConfigLabel;
    private JComboBox<AndroidDebugger> myDebuggerTypeCombo;
    private final AndroidDebugBridge.IDeviceChangeListener myDeviceChangeListener;
    private String myLastSelectedDevice;
    private String myLastSelectedProcess;
    private Tree myProcessTree;
    private final Project myProject;
    private AndroidDebugger mySelectedAndroidDebugger;
    private Client mySelectedClient;
    private RunConfiguration mySelectedRunConfiguration;
    private JBCheckBox myShowAllProcessesCheckBox;
    private final boolean myShowDebuggerSelection;
    private final MergingUpdateQueue myUpdatesQueue = new MergingUpdateQueue("AndroidProcessChooserDialogUpdatingQueue", (int) LayerSpacingSliderActionKt.MAX_LAYER_SPACING, true, MergingUpdateQueue.ANY_COMPONENT, getDisposable());

    private /* synthetic */ void $$$setupUI$$$() {
        JPanel jPanel = new JPanel();
        this.myContentPanel = jPanel;
        jPanel.setLayout(new GridLayoutManager(5, 2, new Insets(0, 0, 0, 0), -1, -1, false, false));
        JBLabel jBLabel = new JBLabel();
        jBLabel.setText("Select a process to attach to:");
        jBLabel.setDisplayedMnemonic('S');
        jBLabel.setDisplayedMnemonicIndex(0);
        jPanel.add(jBLabel, new GridConstraints(0, 0, 1, 2, 8, 0, 0, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        JBScrollPane jBScrollPane = new JBScrollPane();
        jPanel.add(jBScrollPane, new GridConstraints(4, 0, 1, 2, 0, 3, 3, 3, (Dimension) null, new Dimension(250, 300), (Dimension) null));
        Tree tree = new Tree();
        this.myProcessTree = tree;
        tree.setRootVisible(false);
        tree.setShowsRootHandles(true);
        jBScrollPane.setViewportView(tree);
        JBCheckBox jBCheckBox = new JBCheckBox();
        this.myShowAllProcessesCheckBox = jBCheckBox;
        jBCheckBox.setText("Show all processes");
        jBCheckBox.setMnemonic('A');
        jBCheckBox.setDisplayedMnemonicIndex(5);
        jPanel.add(jBCheckBox, new GridConstraints(1, 0, 1, 2, 8, 0, 0, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        JLabel jLabel = new JLabel();
        this.myDebuggerRunConfigLabel = jLabel;
        jLabel.setText("Use Android Debugger Settings from:");
        jPanel.add(jLabel, new GridConstraints(2, 0, 1, 1, 8, 0, 0, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        JComboBox<RunConfiguration> jComboBox = new JComboBox<>();
        this.myDebuggerRunConfigCombo = jComboBox;
        jPanel.add(jComboBox, new GridConstraints(2, 1, 1, 1, 8, 1, 2, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        JLabel jLabel2 = new JLabel();
        this.myDebuggerLabel = jLabel2;
        jLabel2.setText("Debug Type:");
        jPanel.add(jLabel2, new GridConstraints(3, 0, 1, 1, 8, 0, 0, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        JComboBox<AndroidDebugger> jComboBox2 = new JComboBox<>();
        this.myDebuggerTypeCombo = jComboBox2;
        jComboBox2.setEnabled(true);
        jPanel.add(jComboBox2, new GridConstraints(3, 1, 1, 1, 8, 1, 2, 0, (Dimension) null, (Dimension) null, (Dimension) null));
        jBLabel.setLabelFor(jBScrollPane);
        jLabel2.setLabelFor(jComboBox2);
    }

    public /* synthetic */ JComponent $$$getRootComponent$$$() {
        return this.myContentPanel;
    }

目前找不到什么方法,我不会hook window的java字符串之类的东西,接下来靠各位分析了,我目前只研究到这个类,这个类在.gradle里面的一个 android.jar里面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值