java,一道关于bit操作的题

Python016

java,一道关于bit操作的题,第1张

楼上匿名仁兄最大的错误就是,前提并不知道应该把第几位的1变成0。

最后的算法应该是这种:

public int[] changeBit(int input)// 仅输入操作数即得到结果

算法:

用按位与操作

public class ChangeBit {

private static int[] ints = new int[13]

/**

* 初始化

*/

public ChangeBit() {

// initInts[0] = Integer.parseInt("1111111111110", 2)

// initInts[1] = Integer.parseInt("1111111111101", 2)

// initInts[2] = Integer.parseInt("1111111111011", 2)

// initInts[3] = Integer.parseInt("1111111110111", 2)

// initInts[5] = Integer.parseInt("1111111011111", 2)

// ......

// 下面的循环代替以上,实现了初始化,但以上看起来直观些

char[] full = {'1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'}

for (int i = 0i <13i++) {

char[] temp = full.clone()

temp[i] = '0'

ints[i] = Integer.parseInt(String.valueOf(temp), 2)

}

}

/**

* 主方法

*/

public static void main(String[] args) {

new ChangeBit().doBit(13)// 输入

}

/**

* 算法

*/

public static void doBit(int input) {

for (int i = 0i <13i++) {

int result = input &ints[i]// 关键

if (result != input) {

System.out.println(result)// 输出

}

}

}

}

如果存在效率问题,会是初始化部分,因为涉及字符数组和字符串操作。

一旦new一次后,连续使用n次doBit方法(比特位操作),几乎就不存在效率问题了。

是acm上的题吗?time out?

第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。

第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。

第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。

第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。

第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠加,此类人大多为系分人员或资深程序员,基本上桀骜不逊,自视清高,不愿于一般技术人员为伍,在论坛上基本以高手面目出现。

第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的服务器,干点坏事以获取成绩感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。

第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。

第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。

第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊!

第十级:驴或傻X,会写SELECT语句就说自己精通ORALCE,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!

木马利用短信感觉受害者通信录中好友.利用"看你做的好事","看你做的龌龊事"等语句诱导用户安装.

开始分析木马,首先查看其Manifest文件.从其申请短信/联系/联网的权限来看已经可以基本确认这是一款短信拦截马,貌似没啥新意不过可以从中发现一些以前没有的细节.感觉这个木马还是挺用心的。

首先是installLocation属性的设置.

设置这个属性的目的是不让木马 app 被安装到 sdcard 中.因为如果 app 被安装 sdcard 中而非手机内置存储的话会失去以下特性导致木马的功能不健全

第二个有意思的点 excludeFromRecents 是在 activity 标签中设置的.

这样设置的目的是不让木马 app 现在在最近程序列表中减少被普通用户发现的概率.类似处理还有将此 Activity 在代码中 disable

第三个特点是随机字符串包名

要抓取几个样本后发现,包名是随机的字符串,但是代码特助以及签名都是一样的.应该是通过程序自动生成的,猜测目的是躲避一些杀软.

继续观察程序入口点: 1.主Activity,用户点一次后将会被禁用

功能老几样:

sevice 的主要功能是

其他入口点: 2.开机广播 3.网络切换广播 4.短信相关广播 ,总计4处可以触发拦截马行为.

短信广播接收器和观察者的代码就不贴了,发出的邮件是这样的:

那么这个木马是肿么存储邮箱帐号木马的了,发现这些个短信马都喜欢用163.

这款木马选择对邮箱帐号密码使用 des 加密.破解这个也很简单现在有三个途径:

大概两天不到的时间已经有上千受害者中招,部分数据如下:

通信录

短信记录

总结木马功能:

在这些用 SMTP 上传受害者信息的短信木马中,有些木马作者比较 low 就直接硬编码在 java 代码中,有些会选择像上述的加密,也有往底层迁移

木马传播途径:

1.伪基站钓鱼定向群发

2.受害者感染通信录好友

木马使用者手机号码:

15168430384

13894651855

13660414800

13430222795

已验证为黑卡,未实名认证.

传播站点:

118.193.170.149:2100

118.193.157.132:1123

http://www.shunlilao.com/hyl/xiangni.apk

http://wusha66.net/erw2fs.apk

主要来自香港的 VPS.