用代理软件可以访问google,但是端口经常不固定,从缺省1080变成了随机。
前几天其实已经用Hopper 3.0看了一次,但是好像不支持go,所以没反编译成功,这次换了4.0,支持了go。
逆向的目的,往往要搞清楚,app底层的某些功能和逻辑的具体实现机制和原理。而搞懂底层逻辑,从过程角度来说,主要分:
Hopper是 OS X 和 Linux下的逆向工具。和IDA类似。
功能:disassemble and decompile
支持平台、架构:32/64bits Intel Mac, Linux, Windows and iOS executables
主要用于:二进制的静态分析
下面就简明概要得说一下patch过程,通过查看代理软件的二进制文件,可以看到其是用go写的
于是gdb了一把,结果发现原来就是基于shadowsocket-go的代码改的。
把ss的代码下载了下来,发现核心就在于main.run里
于是Hopper一看,发现原来是把listenAddr写死成"127.0.0.1:0"了,用的是auto port,所以只需要改成1080即可。
注意:需要改两个地方,一个是0改成1080,第二个是0x0b改成0x0e,这个参数是字符串长度