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 |