代码

1. JavaScript的replaceall函数。JavaScript默认未提供。网上有人用regex的方式来做,也不好。一般的replace all场合,要把s中的a替换成b时,a往往是外部环境得到比如用户输入的。所以不能让a是正则表达式,只能用文本方式。

 
function repall(s, sa, sb)
{
if (sa.length == 0) return s;
 
var ix = s.indexOf(sa);
if (ix < 0) return s;
return s.substr(0, ix) + sb + repall(s.substr(ix+sa.length), sa, sb);
}

2. 在hook网络程序时,修改了connect的参数使之连向另一IP端口,结果后续行为也变了。看来不能随便修改原参数,需要copy一份新参数再修改。另外调完send就直接调closesocket是不行的,接收方可能收不全,即使是localhost。

3. install_name_tool : the tool to modify dylib dependency.

4. python modexp

def modexp ( t, u, n ):
   """computes s = (t ^ u) mod n
      args are base, exponent, modulus
      (see Bruce Schneier's book, _Applied Cryptography_ p. 244)"""
   s = 1
   while u:
    	if u & 1:
    	   s = (s * t)%n
    	u >>= 1
    	t = (t * t)%n;
   return s

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*