hacker' - 位操作

hacker' 是计算机狂热爱好者,是循环用计算机用更新鲜聪明的方法做一些 new or old 的事情。

位操作一般应用在:

  • 高低位互换:x >> 8 | x << 8 & 0xFF00
  • 判断是否是 2 的幂:x & (x-1)
  • 加密:参见博客《密码学
  • 无参交换 :a ^= b ^= a ^= b  
  • 代替 %,如果 n % m,m 是 2 的幂,就可以改为 n &(m-1)。

 

基础:

  1.      x & (x-1) == 0      [判断2的幂]
  2. 下一个具有同样数目 1 位的更大数,如1024 -> 2048, malloc函数使用了这个】

unsigned snoob( unsigned x )

{     

    unsigned smallest, ripple, ones;

    smallest = x & -x;

    ripple = x + smallest;

    ones = x ^ ripple;

    ones = (ones>>2) / smallest;

    return ripple | ones;

}

 

4. ((x>>30) | 1)*x; 【求绝对值,有限制】

5. n & 0x1;     【判断[1奇 | 0偶]】

6. n >> 1;    【除以2】

7. n << 1;    【乘以2】

8. a%b == a&(b-1);【模数b是2的幂时成立】

9. Abs(x) ((x^(x>>31)) - (x>>31));  【取绝对值】

============================================================================


常用位操作 :

根据位逻辑性质推出
1.判断a二进制数中有几个1
a & (a-1);   count++;  

2.将a第b位置1
#define by1(a,b)    ((a)  |= (1<<(b)))
   将a第b位置0
#define by0(a,b)    ((a)  &= (0<<(b))) //思路
#define by0(a,b)    ((a)  &= ~(1<<(b)))//实现

3.判断第b位的状态
#define if ((a) & (1<<(b)))
∮异或 加密要注意明文和密钥相等的情况。不然会置零。a = 0 等同于 a ^= a...

4.去掉最后一个1 : a >> 1

5.在最后添加0 : a << 1 或者 1 : (a<<1)+1

6.把最后一个变成1 :  x | 1

7.把最后一个变成0 :  (x |  1) -1 //注意优先级

8.最后一个取反 : x ^ 1

9.把右数第n个数变成1 :  x | (1<<(n-1))

a.把右数第n个数变成0 : x & ~(1<<(n-1))

b.右数第n个数取反 : x ^ (1<<(n-1))

c.取低8位(末8位) : x & 255

d.取低k位(末k位) : x & ((1<<k) - 1)

e.取右数第k位 : x >> (k-1) & 1

f.把末k位变成1 : x | ((1<<k) - 1)

g.末k位取反 : x ^ ((1<<k)-1)

11.取右边连续的1 : (x^(x+1)) >> 1
 

位图算法:

1.  i >> 32 将 i 定位到那个 int(4 bytes) 中,即 A[i >> 32]

2. i & 0x1F 等同 i%32 只保留 i 的0~4位(5bits),(1<< (i & 0x1F) ) 接着把 1 左移与运算的结果bits

3. 将 a[i>>32] 和 i & 0x1F 组合可以实现:

  • 位设置(或)                     a[i>>32] |= (1<< (i & 0x1F) )
  • 位清除(取反、与)         a[i>>32] &= ~(1<< (i & 0x1F) )
  • 获得结果(与)                 a[i>>32] & (1<<(i & 0x1F) )

 

资料推荐 :https://blog.csdn.net/qq_32924343/article/details/81026237


更多位操作以及加密解密算法会持续更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
BSQL Hacker v0.9.0.9中文汉化绿色版 系统需要安装Microsoft .NET Framework,才能正常运行此程序。 程序说明: BSQL (Blind SQL) Hacker 是一个SQL自动注入工具,其设计的目的是希望能对任何的数据库进行SQL溢出注入。 BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入(特别是Blind SQL注入)的人群。 主要特点: 1,容易模式 一,SQL注入向导 二,支持自动攻击(数据库转储) (1)ORACLE (2)MSSQL (3)MySQL (实验阶段) 2,常规 一,快速和多线程 二,支持4种不同的SQL注入 (1)Bling SQL 注入 (2)基于时间的Bling SQL 注入 (3)深盲(Deep Blind) SQL注入(基于高级时间延迟) (4)基于错误的SQL注入 三,能够自动开始大多数基于Blind SQL注入的新SQL注入方法。 四,支持正则签名 五,支持控制台和可视界面 六,支持 加载/保存 七,支持 标记/临时/查看状态 等等 八,支持会话共享 九,支持高级配置 十,自动攻击模式,自动提取所有数据库结构和数据模式 3,更新/溢出储存室特点 一,类似Metasploit,但是支持溢出储存室 二,允许保存和共享SQL注入溢出 三,支持自动更新 四,溢出支持自定义可视界面(输入Cookie,输入URL等) 4,可视界面特点 一,加载和保持 二,支持模板和攻击文件(使用者可以保存会话并共享它们,模版中的一些部分比如用户名,密码或者是cookis可以在可视界面中显示) 三,可以查看真实的、虚假的响应和完整的HTML响应,包括时间和状态 5,连接相关 一,支持代理(支持身份验证代理) 二,支持NTLM, 基础验证,使用当前用户/程序的默认凭据 三,支持SSL协议(有效证书) 四,支持自定义文件头 6,注入点(仅仅是它们中或者联合中的一个) 一,Query String 二,Post 三,HTTP Headers 四,Cookies 7,其它 一,Post注入数据可以在保存到单独文件中 二,导出XML (不稳定) 三,支持CSRF保护 某时的会话标记或者asp.net状态查看能够绕过通过代理页面等而被单独登陆会话使用。 这个软件仍然是一个试用版,已知问题 1,MySQL自动攻击是实验性的,有时可能不会正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值