腾讯2013实习生招聘笔试分析

安全技术方向S2卷

卷子开头有保密协议~不过我们就无视之算了~~~反正我也没进= =|||

一、不定项选择题 20×3=60分

注意是不定项哦~~~多选、少选均不得分。不过还是单选比较多,多选很少的。

因为题目太多了所以挑几道我觉得比较难的放出来吧。

2.SSL协议工作在哪一层。

SSL协议位于TCP/IP协议与各种应用层协议之间

3.能实现安全telnet操作的方法是

SSL rlogin kerberos化 SSH //个人觉得是SSL和SSH

7.阅读程序

#include

int main()
{
    char *a[]={"tencent","security",NULL};
    char *p1,*p2;
    int i = 0;
    while ( a[i]!=NULL && a[i+1]!=NULL )
    {
        p1=a[i];
        p2=a[i+1];
        int j = 0;
        for (;p1[j]!='\0' && p2[j]!='\0';++j)
            if (*(p1+j)==*(p2+j))
                printf("%c",*(p1+j));
        ++i;
    }
}

10.WIndows中,以Administrator登录系统,创建一个新用户common,属于Users组。然后在C盘根目录新建文件夹test,给予common读取和执行权限;然后在test下新建subtest文件夹,给予common写权限。此时,以common登录,对c:\test\subtest有何权限?

读,写,执行

11.x86 CPU在20000H有一数据,给定段地址为SA,若使用偏移地址寻址,则SA应满足

1000H~2000H 1001H~1FFFH 1000H~1FFFH 1001H~2000H //这题完全不知道

12.考了umask,记得跟chmod反的就好。

14.考了DNS递归查询的知识。客户端跟服务器、服务器跟服务器哪种是递归查询?

15.使用正则表达式匹配只有四个字符的行

“^????$”

17.某Linux系统怀疑被人恶意尝试密码,应该查看哪个日志?

/var/log/ message secure wtmp boot.msg

19.main.c引用liba.so,libb.a,现在要定义一个全局变量int flag,并在main函数引用,应该在哪个文件定义?

main.c

20.Telnet的主要缺陷

不要用户名密码 认证手段单一 明文传输 不能阻止病毒

二、填空题 7题10空x4=40分

1.Linux服务器,内网网卡为eth1,外网网卡为eth0。若要禁止所有从外网访问3306端口的请求,应该执行     1    

2.请解释Http Only能避免XSS攻击的原理    2    

3.不使用eval函数,写一个php一句话木马    3    

4.什么是CSRF漏洞    4    ,列举两个以上CSRF漏洞的危害    5

5.Web站点中存在让用户上传文件的功能,该功能可能会有    6    风险,若要避免该风险,请列举至少2种安全加固方法    7    。

6.LDAP服务的优点有哪些,列举至少2种    8    。

7.fuzz工具的原理是    9    ,其主要用途是    10    。

三、附加题 2×20=40分(任选一题,不计入总分,留作考官参考)

1.下面一个程序在调试时,*那一行会发生core dump,通过gdb调试发现异常时lTotalCounter > lTotalCharCount,请分析原因。

uint32_t Char2Uint(char c){
    uint32_t ret=0;  //此处不是我打错了而是试卷的印刷错误
    int iAscii = (int)c;
    if (iAscii >= 0 && iAscii < 128>)
        uRet = iAscii;
    else
        uRet = -iAscii + 128;
    return uRet;
}

void EntropyCalc(const char* pFileContents){
    long lTotalCharCount = strlen(pFileContents);
    long lBlankCount = 0;
    long lTotalCounter = 0;
    long lAscii[256] = {0};
    uint32_t uiIndex = 0;
    while (lTotalCounter < lTotalCharCount>)
    {
        if (pFileContents[lTotalCounter] == ' ')
        {
            lBlankCount++;
        } else
        {
            uiIndex = Char2Uint(pFileContents[lTotalCounter]);
            lAscii[uiIndex]++;
        }
        lTotalCounter++;
    }
}

 

2.某内网环境有严格的网络访问控制,只能用域名访问指定的几个Web服务,不可以用IP直接访问。现在想突破内网环境向外网发送一个文件,请列举可能的方法。

腾讯2013实习生招聘之行感悟

最近参加了腾讯在武汉的实习生招聘,应聘安全技术方向,不过遗憾被刷了,在这说说感想吧~

首先是笔试。本次腾讯的笔试给所有参加人员编了号,分了考场,比较正式。据我同学说,霸笔的全部推迟了半小时左右才让进的考场。其实这点还不错,至少能维持一下考场的秩序。不过用作考场的华科的教室太小了。。。一个小教室要做70多人,非常挤。至于试卷,测试看着吓人,实际上不多。刚发卷的时候我们都被吓到了,好长的一张考卷!5张A4纸连在一起啊!不过等到卷子发现来才发现3/5是试卷,另外2/5是答题卡,题目数量也没有想象中的那么多,选择题20道,填空题7道10空,附加题两道。我笔试的安全技术方向,感觉题目不是很难,2个小时的时间完全够了。特别是附加题,自由发挥的空间比较大,对于经验比较少的同学来说可能有点吃亏。顺便一说,卷子上的印刷错误蛮多。。。。。。。。。

然后是一面。一面的时候有很多霸面的同学,不过好像都安排在通过笔试的同学之后。不过还是有相当多的人来一面的,签到厅的场面十分壮观!我的一面的时候是一个微胖的长着微卷头发的很萌的面试官面的,从谈话中可以感觉到他的技术水平很高。这位面试官主要是根据之前的笔试题目进行的面试,基本上对笔试题目都进行了深入的提问,问到的很多细节问题我都没能答上来。。。后来跟我同学对比了一下发现附加题貌似会决定我们面试官的方向,所以大家以后在做的时候一定要注意选择自己擅长的方向。不然到时候面试官问你细节问题的时候一点都打不上来就悲剧了。( ⊙ o ⊙ )

最后是二面了。二面的时候面我的面试官看起来就是一个头头,气场跟一面的面试官完全不同。不过可能因为这个面试官不是技术方向的,所以问我的问题都基本不沾技术。而且每当我把问题说到技术方向的时候他都会回避然后换一个话题。而且我觉得因为这个面试官的气场比较强,我自己的压力蛮大,面完了出来一身汗= =|||

以上就是我本次腾讯实习生面试的经历了。稍后会放出笔试试卷,希望能帮助同样想进腾讯的同学们吧~祝你们求职成功~

[转]自制可更新MAC版国服魔兽世界

        无论是黑苹果还是白苹果,mac下病毒比窗口少这是不争的事实。5.2马上来临,你的mac准备好了吗?还在为mac下客户端每次升级担心?还在windows下更新而后拷贝到mac下?希望一个一劳永逸的法子?那么你最好看下。

 

       特别提示,有异议请勿看,可能《X-Only》Huan.Zuo大大发布的补丁更适合您。

 

不废话了,直接开始。

(本人系统为OSX Mountain Lion 10.8.2,经测试10.7以上均可使用。)

工具/原料

  • 原理

    1、全球版本大统一

    2、更新和登陆目前是Config.wft文件控制

  • 台服或者美服安装包

    美服安装包下载地址

    下载页面 https://us.battle.net/account/download/

    安装包 http://dist.blizzard.com/downloads/wow-installers/full/World-of-Warcraft-Setup-enUS.zip

    台服安装包下载地址

    下载页面 https://tw.battle.net/account/download/

    安装包 http://dist.blizzard.com/downloads/wow-installers/full/World-of-Warcraft-Setup-zhTW.zip

    (不放心的自己登陆战网台服美服的主页,找下载页面还是很容易的。)

全新安装

  1. 下载完成后解压到任意位置,点击开始安装。安装开始需要输入一次密码。

    3801213fb80e7bece631fac42e2eb9389b506b28
  2. 点击INSTALL开始安装。

    fcfaaf51f3deb48f49ba58fbf11f3a292cf578c0
  3. 这个过程和windows下区别不大,反而和mac下的dmg安装直接拖放直想要的文件夹不同。选择语言就不用了,除非你想安装西班牙语或者葡萄牙语。选好保存位置,滚动条拉到最下方,点击AGREE,开始安装。

     

    然后就是开始漫长的等待了,本人是8M网速下载速度1MB/s的左右,大概用了6个小时。基本上是满速。这个过程很让人难熬,后面也给出已有完整客户端另外的方法。  //其实这一步不需要等待,新版本的登陆器是可以边下边玩的,所以等到运行按钮变成红色可点就可以关掉启动器进行下一步了。

    a50f4bfbfbedab642571b5e5f636afc379311e97
  4. 安装完成后不要着急进入游戏,进入游戏安装文件夹中找到Data文件夹,新建一个名为zhCN的空文件夹,如果有英文语音需求可以多增加一个enCN的文件夹。

    4e4a20a4462309f7fe335537730e0cf3d7cad6b3
  5. 运行World of Warcraft Launcher.app。这时候客户端会开始更新,依旧是漫长的更新,不过这次会比上次情况好很多。

     

    等待更新完成,关闭更新器。 再次进入游戏安装文件夹中找到WTF文件夹,找到Config.wft文件。

    cefc1e178a82b9017ffa3b16728da9773912ef44
  6. 使用文本编辑器打开。找到以下内容

     

    SET locale “enUS”

    SETinstallLocale “enUS”

    SETportal “us”

     

    locale 此项为为你要使用的语系,选项有:

    zhCN(简体中文)、enCN(简体中文-英文语音)、enUS(美国英文)、zhTW(繁体中文)、enTW(繁体中文英文语音)

     

    portal 此项为你要登录的服务器,选项有:

    cn(大陆)、tw(台服)、us(美服)

     

    修改 SET portal “us”为 SET portal”cn”,没有的话直接添加就可以。

     

    SETlocale “enUS”可以不修改,这个可以在客户端设置中修改设置。在这里直接修改为 希望的语系语音例如: SET locale”zhCN”。如果没有安装相应的语言语音文件,尽量不要选择,否则运行World of Warcraft Launcher.app或者Worldof Warcraft-64.app后会自行下载语音包,造成程序假死但是实际在后台下载的假象。

    编辑完成后保存文件。

     

    至此,完整的mac客户端已经完成。

  7. 打开World ofWarcraft-64.app,直接开始游戏即可。

    修改界面内容的也可在此更改。

     

    d31b0ef41bd5ad6ed5b19ccf80cb39dbb6fd3c4e
  8. 至于插件,直接下载好整合插件或者自己喜欢的单独插件放置Interface\AddOns下即可直接使用。如果你们习惯了使用插件大脚墨盒等下载器……那就没办法了,能力有限。

    b3119313b07eca80fd3ac2c2902397dda14483dc
  9. 另外关于字体的更改,本人没有解决,只解决了英文字体,解决方式还不完美,暂时不放了,只有求其他大神解决了。

针对已有完整客户端玩家

  1. 如果已经有了完整客户端,再去下载20个多G的客户端有些难办,不过直接使用美服的话肯定是原汁原味未和谐。

    第一步和全新安装区别不大,

    选好保存位置,滚动条拉到最下方,点击AGREE,开始安装。

    6159252dd42a2834b142ce2e5ab5c9ea15cebf2b
  2. 等待片刻文件夹中有了基本的文件(起码有文件夹后)后关闭安装器,将已有的客户端覆盖刚才安装的目录。

    f703738da97739128a0b7e44f9198618367ae2e2
  3. 如果使用的时美服台服客户端,在Data文件夹,新建一个名为zhCN的空文件夹,如果有英文语音需求可以多增加一个enCN的文件夹;如果使用的时国服客户端,什么也不用做。然后继续打开安装器继续安装过程,这时候会发现安装条很快,需要更新的文件很少了。

  4. 完成更新后,此处和全新安装又一致了,进入游戏安装文件夹中找到WTF文件夹,找到Config.wft文件修改。

    修改 SETportal “us”为 SET portal “cn”,没有的话直接添加就可以。

     

    更新问题,可能会因为美服台服更新时间不一致,直接使用Launcher.app登陆可能会使客户端提前更新造成无法登录国服,不过过了更新阶段,国服和美服台服版本全部更新之后就没有问题了。至于担心的国内版本号不一致问题直接忘了吧,这些是TBC和WLK时期的事情了。

     

Mac下删除“打开方式”里面重复的软件列表方法

在Mac系统中,如果一个程序进行了版本更新,那么就会在打开方式中留下两个相同的打开方式。虽然一两次还能忍受,但是时间长了会让列表变得过于庞大。

20090811-ejw6qi74x5r4xmgdfrrtreiafa

要解决这个问题,可以通过把出问题的程序拖到垃圾桶再放回来解决,但是程序一多就不是一个办法了。其实,只要打开terminal(终端),复制粘贴(完整的一行,是一条命令),执行后即可重建列表。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system-domainuser

限制用户进程CPU和内存占用率的SHELL脚本

限制进程CPU占用率的问题,给出了一个shell脚本代码如下:

renice +10 `ps aux | awk ‘{ if ($3 > 0.8 && id -u $1 > 500) print $2}’`

其中用到ps获取进程信息,其实

ps中%CPU一列的意义是进程实际占有CPU时间和它存活时间的比值,这个值能反应进程对CPU的消耗,但不能准确反应进程所占CPU时间占整个系统CPU的百分比。

而top输出中的%CPU这一列正是进程所占CPU时间占整个系统CPU的百分比,用于限制进程CPU占用率更加合理,同时%MEM一列还反应了进程占用内存的百分比,可以用于限制进程内存占用率。

shell脚本代码如下:

#!/bin/sh

PIDS=`top -bn 1 | grep “^ *[1-9]” | awk ‘{ if($9 > 50 || $10 > 25 && id -u $2 > 500) print $1}’`

for PID in $PIDS

do

renice +10 $PID

echo “renice +10 $PID”

done

可以将这个脚本放到cron中运行,比如每分钟检查一次,只需以root身份添加crontab项:

#crontab -e

* * * * * limit.sh

以后每个一分钟就会检查一次,调整占用50%以上CPU或25%内存的进程的nice值,从而使这样的进程优先级变低,被调度的机会减少,同时会向root发邮件提示该进程被调整过。

不过,限制内存使用最好还是用PAM,RedHat可以在/etc/security/limits.conf中设置。