关于黑客和JAVA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于黑客和JAVA相关的知识,希望对你有一定的参考价值。

我正学JAVA不知道
JAVA对于黑客方面怎么样

JAVA高级语言,对黑客毫无疑义,
编程序用的语言,想做黑客学汇编语言
更难,不过不可能用汇编来写程序,因为太难
参考技术A 何必呢楼上的?你自己还不是一样不懂装懂啊,JAVA虚拟机早就被各大主流操作系统嵌入了,语言应该都可以编写病毒的,只是破坏性的问题而已,“快乐时光”还用VB写的呢!楼主不厚道,学语言是造福人类,而不是给人带去“灾难”黑客并不牛,牛的是那些反黑的人,不服可以去挑战下 参考技术B 楼上能别胡说吗,C一样能编写病毒,著名的熊猫烧香不还是用DELPHI写的?但很少用JAVA他来编写,因为JAVA是要在解释器下运行的,你发病毒传给别人,难道你还让他先自己安个JAVA虚拟机吗.想写病毒C就可以了,如果想破解一类的可以学学汇编,主要是通过IDA对EXE的反汇编,来找到突破口 参考技术C 只要是编程就可以做黑客软件.
这是肯定的撒.

位黑客和模运算

【中文标题】位黑客和模运算【英文标题】:Bit hacking and modulo operation 【发布时间】:2014-04-13 13:22:31 【问题描述】:

阅读本文时:http://graphics.stanford.edu/~seander/bithacks.html#ReverseByteWith64BitsDiv

我来到了这句话:

最后一步,即模除以 2^10 - 1,有 将每组 10 位(从位置 0-9, 10-19, 20-29, ...) 64 位值。

(这是关于反转数字中的位)...

所以我做了一些计算:

reverted = (input * 0x0202020202ULL & 0x010884422010ULL) % 1023;

b = 74          :                                 01001010
b 
 * 0x0202020202 :       1000000010000000100000001000000010
   = 9494949494 :01001010010010100100101001001010010010100
  & 10884422010 :10000100010000100010000100010000000010000 
    = 84000010  :         10000100000000000000000000010000
  % 1023        :                               1111111111
    = 82        :                                 01010010

现在,唯一有点不清楚的部分是大数模 1023 (2^10 - 1) 打包并给我倒位的部分......我没有找到任何关于位之间关系的好文档运算和模运算(在x % 2^n == x & (2^n - 1)) 旁边)所以也许如果有人对此有所了解,那将是非常富有成效的。

【问题讨论】:

模不会“反转”位,它只是将 4 个字节“打包”为一个。 @RagingScallion 你说得对,我的措辞不好...... 仅供参考,除法运算(例如取模)在具有定点架构的 CPU 上非常昂贵。现在,您将您的问题标记为low-level,所以我认为它可能与您的情况相关。如果您正在为这种处理器编写代码,那么您真的应该尽量避免使用%/(正如我所说,仅供参考)...此外,您可以也想看看aggregate.org/MAGIC/#Bit%20Reversal(不涉及除法操作)。虽然它显示了 32 位操作数的示例,但我相信它也适用于 64 位操作数。 @barakmanos 很棒的链接,谢谢 :) N mod 常数根本不应该很贵;编译器可以使用类似的技巧将除法转换为倒数乘法等等。 【参考方案1】:

模运算本身并没有给你反转位,它只是一个分箱操作。

第一行:单词扩展

b * 0x0202020202 = 01001010 01001010 01001010 01001010 01001010 0 p>

乘法运算具有卷积属性,这意味着它会多次复制输入变量(这里是 5,因为它是一个 8 位字)。

第一行:反转位

这是 hack 中最棘手的部分。您必须记住,我们正在处理一个 8 位字:b = abcdefgh,其中 [a-h] 是 1 或 0。

b  * 0x0202020202 = abcdefghabcdefghabcdefghabcdefghabcdefgha
    & 10884422010 = a0000f000b0000g000c0000h000d00000000e0000

最后一行:分词

Modulo 有一个特殊的属性:10 ≡ 1 (mod 9) 所以100 ≡ 10*10 ≡ 10*1 (mod 9) ≡ 1 (mod 9)

更一般地说,对于基数 bb ≡ 1 (mod b - 1),所以对于所有数字 a ≡ sum(a_k*b^k) ≡ sum (a_k) (mod b - 1)

在示例中,base = 1024(10 位)所以

b ≡ a0000f000b0000g000c0000h000d00000000e0000 
  ≡ a*base^4 + 0000f000b0*base^3 + 000g000c00*base^2 + 00h000d000*base +00000e0000 
  ≡ a + 0000f000b0 + 000g000c00 + 00h000d000 + 00000e0000 (mod b - 1)
  ≡  000000000a
   + 0000f000b0 
   + 000g000c00 
   + 00h000d000 
   + 00000e0000 (mod b - 1)
 ≡   00hgfedcba (mod b - 1) since there is no carry (no overlap)

【讨论】:

以上是关于关于黑客和JAVA的主要内容,如果未能解决你的问题,请参考以下文章

JAVA开发运维(关于渗透测试与漏洞修复)

关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作)

关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作)

golang 学习关于去符文和黑客攻击一些例子。

关于怎么学习黑客技术

关于黑客常用术语