AAPCS笔记

AAPCS全称Procedure Call Standard for the ARM Architecture,是ARM架构下应用程序例程调用的二进制接口规范。它的前身是著名的ATPCS。

这个规范的目的是使不同程序模块可以分别编译,在二进制级别直接配合使用。目前ARM编译器均采用了这一标准。因此,当在ARM架构进行调试、逆向工程、漏洞分析、病毒分析时,如果对这些调用规范比较熟悉,就能快速识别出函数调用、参数和返回值等,提高效率。

Continue reading

Linux下用ssh隧道和Firefox翻墙

1. 开启ssh隧道转发:

ssh -qTfnN -D 8080 username@your.remote.ssh.server

2. 配置Firefox本地代理:Firefox->首选项->高级->网络->连接/设置,选择“手动配置代理”,SOCKS主机127.0.0.1,端口8080,类型SOCKSv5。

3. 开启Firefox的用隧道解析DNS开关:在地址栏输入about:config,在过滤器输入network.proxy.socks_remote_dns,双击该配置项,使其值为true。

完成。

PS: Chrome也可以设置代理(首选项->高级选项->更改代理服务器设置),但不能设置DNS,可能导致部分网站的DNS解析失败,比如twitter。

Reference:

[1] wormser. HowTo: SSH Tunnel Firefox. http://ubuntuforums.org/showthread.php?t=723025

mercurial无法clone出google code中https代码库的解决方法

有很多次使用mercurial检出google code中https链接的代码时,都会得到下面的错误信息:

Connection reset by peer

通常情况下,将https改成http会顺利检出。但今天发现会有很多文件和子项目不会被检出。

我估计这个问题是由GFW造成的(因此不在中国的人大抵不会遇到)。作为一个正常的中国人,我有一条SSH隧道。在明磊兄的帮助下,用tsocks最终搞定了这个问题。

在Ubuntu下,直接使用下面的命令安装tsocks:

sudo apt-get install tsocks

接下来修改其配置文件:

sudo vim /etc/tsocks.conf

修改以下两行:

server_type = 5      #version number of SOCKS
server_port = 1080  #port of SOCKS service

这样,在开启了SSH隧道以后,就可以用tsocks来检出代码了:

tsocks hg clone https://...