• 用Hopper修改代理软件端口


    背景

    用代理软件可以访问google,但是端口经常不固定,从缺省1080变成了随机。
    前几天其实已经用Hopper 3.0看了一次,但是好像不支持go,所以没反编译成功,这次换了4.0,支持了go。

    Hopper与逆向

    逆向的目的,往往要搞清楚,app底层的某些功能和逻辑的具体实现机制和原理。而搞懂底层逻辑,从过程角度来说,主要分:

    • 静态分析:不运行程序的前提下,利用工具和手段,搞懂程序逻辑
    • 动态调试:运行程序的前提下,动态运行期间,研究和调试程序的逻辑

    什么是Hopper?

    Hopper是 OS X 和 Linux下的逆向工具。和IDA类似。
    功能:disassemble and decompile
    支持平台、架构:32/64bits Intel Mac, Linux, Windows and iOS executables
    主要用于:二进制的静态分析

    patch过程

    下面就简明概要得说一下patch过程,通过查看代理软件的二进制文件,可以看到其是用go写的
    于是gdb了一把,结果发现原来就是基于shadowsocket-go的代码改的。
    在这里插入图片描述

    把ss的代码下载了下来,发现核心就在于main.run里

    DingTalk20170115032220.png

    于是Hopper一看,发现原来是把listenAddr写死成"127.0.0.1:0"了,用的是auto port,所以只需要改成1080即可。

    DingTalk20170115032715.png

    注意:需要改两个地方,一个是0改成1080,第二个是0x0b改成0x0e,这个参数是字符串长度

    相关资料

    • https://www.hopperapp.com
    • https://crifan.github.io/ios_re_static_analysis/website/analysis_content/analysis_code_logic/hopper.html
    • hopper 4.0.8下载地址: 链接: https://pan.baidu.com/s/1skV80cX 密码: 8hy4
  • 相关阅读:
    建造者模式
    MongoDB、Elasticsearch
    Nacos注册中心1-nacos源码环境搭建
    剑指offer(从递增的二维数组查找特定值)
    【EMC专题】电磁兼容学科的发展
    MyBatis 查询 MySQL 实现返回 List<Map> 或 Map 类型数据操作
    Spring Cloud Gateway 参考指南
    多线程 - 定时器
    color_detection(AI开发框架esp-who)
    javaScrip入门
  • 原文地址:https://blog.csdn.net/jgku/article/details/128177113