Hermione 's storage room

2015届秋招始末

应xpy要求来写面经为 H-1B Cap 攒RP。有些事情年代久远不一定记得清了,有些事情记下来了也不全,所以随便看看吧。以下全部是技术岗,主要是软件工程师。所有内容不涉及具体问题。

实习

去年2-3月开始找实习,主要途径是学校bbs,投的不多,又因为年轻不懂事怕找不到实习,最后去了SAP。当然并不是说SAP不好,只是也许有更好的选择,却因为不好意思之后就没有再投。不过这段经历确实让我在后面找工作中加分不少。

  1. 某不知名金融公司,投了没回。自己觉得是因为我C++太渣。
  2. 某不知名金融公司,投了面试了。面试比较正常,除了对我的C++水平评价过高。面试完还有个小作业,回去一看是用奇怪IDE+奇怪语言+中文编程,于是再见。
  3. SAP,最基础的算法+数据结构,聊一聊做过的东西,被面试官围观一下github(被找了一下bug)。比较坑的是hr,听到我要考虑一下觉得我是火星来的,最后给了半天考虑,然后就去了。
  4. eBay,投了电面了。电面特别坑,喜欢找在晚饭时间,刚拉了人准备去吃饭电话就来了,英文,问了点面向对象以及我简历上写了的python,还要跟hr解释什么是ACM心好累。在SAP后一周现场面,就拒掉了。
  5. 百姓网,所有投过的里面最难的,ACM题,被拒。

全职

以下不完全按照时间排序,可能有遗漏。

  1. 百度,基本上在10月,笔试挂了。据说往年题网上都可以找到,我就没准备过,以及不擅长那种类型。
  2. 阿里,基本上在9月,笔试选择题同上,代码题很水。面试据说很水,但是我和我身边的人都挂了。问的非常基础非常深入,热爱问细节实现,其他有小伙伴反应喜欢挑你不会的问。总结是我太渣。
  3. 腾讯,基本上在9月,笔试过了没有面试通知,呵呵。
  4. 腾讯游戏补招(很久之后),去之前不知道是游戏。面试先找个小黑屋做1h卷子,然后面试看下卷子聊聊简历,聊聊对工作压(jia)力(ban)怎么看;然后boss面问点游戏设计问题;后来的hr面似乎hr对我不能提前实习很不满,不过还是过了。感觉还不错,但是深思熟虑之后还是觉得我对游戏的兴趣和待遇不值得那些夸张的工作时间,于是拒掉了。
  5. 七牛,在某招聘网站上找的,面试还算正常,但是被待遇吓到了,再见。
  6. 米哈游,渠道同上,面试感觉还不错,跳一跳能摘到苹果的算法题。hr非常吓人,后来没有联系,有小伙伴说可能是因为我开价太低,我觉得也有可能。年轻不懂事嘛哈哈哈=_=
  7. 2k games,投了简历,笔试太远没去。
  8. 育碧,听说十年前的面试非常赞就投了,准备不充分胆子也不够大,hr电面问这个会不会那个会不会,全都表示不会,被拒。
  9. Garena,东南亚游戏公司,来学校笔试面试的,主要问课内问题、简历内容、职业规划,作为保底offer收下了。公司新装修后据说环境还是不错的,类Google设计,人体工程学座椅。
  10. 大众点评,学校内推,来电话问了一下有什么offer说有笔试通知了去一下。然后就没有然后了!
  11. 华为,面试是人就要的节奏,后面还有上机没有去。黑点网上都有我就不说了。
  12. 快的打车,投的方向并不擅长,简历被刷。
  13. 百姓网,所有投过的里面最难的,ACM题,被拒。
  14. 一号店,笔试很水,面试是(3+1)v3的群面(1是hr),而且要等叫号等很久。之前看到网上说面试形式对应聘者很不尊重还不相信,去看了真是后悔浪费时间。接到offer更是以为待遇听错了,夸张的有点过分,再见。
  15. 触宝,总共好像面了6轮,累感不爱。面技术问题的几轮都很棒,都是很有意思的算法题,不过他们似乎并不看重技术,开始被拒,后来过了好久又发了offer。待遇不错,一直真心想去的甚至拒了腾讯。
  16. 微软总部,飞去北京面试的,住好吃好,报销。两轮以后决定是否有第三轮,主要是算法题和设计题。第一轮的面试官跟我聊了他从微软跳Google又回微软的经历,吐槽了Google会让senior的人做junior的事。不过我两轮都面的不好,于是就没有第三轮了。当时同一天面的以及前一天的都挂了。
  17. 微软苏州补招,电面两轮,苏州现场两轮。虽然相对比较容易进,但是面试我真的非常喜欢,尤其是最后一轮。前三轮基本上是算法问题,最后的工程问题很棒。我现在也不确定是不是微软才是更好的选择呢哈哈哈~
  18. Google,两天共四轮现场面,主要是算法题,也有聊简历和数学题,后来还面了一轮SET。8月面试完,一直等到2月才拿到offer。当然这个主要是我弱,腻害的早就拿到了。

准备

  1. 整理简历,回顾自己做过的东西,包括是什么、做了什么、有什么亮点、有什么收获等。
  2. 课内的东西我不擅长,只在网上搜集了各类面试题。
  3. 面哪家之前就找一下哪家的面试题练下手。
  4. 刷leetcode,以及正确的打开姿势是直接在上面写不要编译完贴过去。
  5. 调整心态,思考人生。

最后祝xpy们都能找到自己喜欢的工作!

Build GDB for Android

0. introduction

If you need GDB on Android, it's very likely that you got a copy without some feature like gcore. So a good idea is to build GDB on your own to acquire these features.

Following process is done on Fedora 21 and should be compatible with other linux platform.

1. gdb part

source: https://android.googlesource.com/toolchain/gdb.git

Here we build version 7.7

Install termcap and bison, or there will be error during make process.

In file /gdb-7.7/gdb/remote.c, search for "packet reply is too long" and modify as follows:

//if(buf_len > 2 * rsa->sizeof_g_packet)
//    error(_("Remote 'g' packet reply is too long: %s"),rs->buf);

if(buf_len > 2 * rsa->sizeof_g_packet)
{
    rsa->sizeof_g_packet = buf_len;
...

Then run the following command:

./configure --target=arm-linux-androideabi --prefix=<result_absolute_path>
sudo make
sudo make install

If you see "no termcap library found", install termcap.

If you see something like "multiple definition of main" or "undefined reference to 'c_parse'", install bison.

2. gdbserver part

First, download android ndk and run:

chmod a+x android-ndk-r10c-darwin-x86_64.bin
./android-ndk-r10c-darwin-x86_64.bin

and in the extracted file directory, run:

sudo ./build/tools/make-standalone-toolchain.sh --system=linux-x86_64 --toolchain=arm-linux-androideabi-4.9 --install-dir=<target_dir> --ndk-dir=<extracted_file_dir>

This will install android toolchain to . Then add <target_dir>/bin to PATH.

In path ./gdb-7.7/gdb/gdbserver, do as follows:

CC=arm-linux-androideabi-gcc ./configure --target=arm-linux-androideabi --host=arm-linux-androideabi --prefix=<result_absolute_path>
sudo make && sudo makeinstal

If there is error "arm-linux-androideabi-gcc: command not found", replace "CC=arm-linux-androideabi-gcc" with "CC=<gccabsolutepath>".

3. done

Now two files are available: arm-linux-androideabi-gdb and gdbserver. Strip command is helpful if you need a smaller version.

We can push gdbserver to android and run:

./gdbserver :<port_id> --attach=<pid>

Then run in the host:

adb forward tcp:<port_id> tcp:<port_id>
./arm-linux-androideabi-gdb
target remote :<port_id>

You can download the two files here: gdbserver, arm-linux-androideabi-gdb.

Bandit (unfinished)

Just to save checkpoint...

level 0

bandit

level 1

boJ9jbbUNNfktd78OOpsqOltutMc3MY1

level 2

CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

level 3

UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

level 4

pIwrPrtPN36QITSp3EQaw936yaFoFgAB

level 5

in -file07 koReBOKuIDDepwhWk7jZC0RTdopnAYKh

level 6

find . -size 1033c ! -perm /a+x

DXjZPULLxYr17uwoI01bNLQbtFemEgo7

level 7

find / -user bandit7 -group bandit6 -size 33c

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

level 8

cvX2JJa4CFALtqS87jk27qwqGhBM9plV

level 9

cat data.txt | sort | uniq -u

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

level 10

strings data.txt | grep "="

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

level 11

base64 -d data.txt

IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

level 12

cat data.txt | tr [a-zA-Z] [n-za-mN-ZA-M]

5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

level 13

file xxx
according decompress command

8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL

level 14

scp bandit13@bandit.labs.overthewire.org:~/sshkey.private sshkey.private
chmod 600 sshkey.private
ssh -i ./sshkey.private bandit14@bandit.labs.overthewire.org

4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e

level 15

telnet localhost 30000

BfMYroe26WYalil77FoDi9qh59eK5xNr

level 16

openssl s_client -connect localhost:30001 -quiet

cluFn7wTiGryunymYOu4RcffSxQluehd

level 17

my idea:

nc -vz localhost 31000-32000 2>&1 | grep succeeded
openssl s_client -connect localhost:31046 -quiet
...
31046 31518 31691 31790 31960

reference:

nmap -sT localhost -p31000-32000
echo test | nc -v localhost 31046
...

key:

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ
imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ
Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu
DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW
JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX
x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD
KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl
J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd
d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC
YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A
vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama
+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT
8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx
SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd
HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt
SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A
R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi
Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg
R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu
L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni
blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU
YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM
77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b
dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3
vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=
-----END RSA PRIVATE KEY-----

level 18

kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

level 19

IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

level 20

./bandit20-do --help
./bandit20-do cat /etc/bandit_pass/bandit20

GbKksEFF4yrVs6il55v6gwY5aVje5f0j

level 21

one terminal:

nc -l localhost 8080
GbKksEFF4yrVs6il55v6gwY5aVje5f0j

the other:

./suconnect 8080

gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr

level 22

cat /etc/cron.d/cronjob_bandit22
cat /usr/bin/cronjob_bandit22.sh
cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv

Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI

level 23

cat /usr/bin/cronjob_bandit23.sh
echo I am user bandit23 | md5sum | cut -d ' ' -f 1
cat /tmp/8ca319486bfbbc3663ea0fbe81326349

jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n

level 24 ???

\#!/bin/bash
cat /etc/bandit_pass/bandit24 > /tmp/level24/bandit24

wait for a minute..

0_0 Nothing happened!

It should be UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ

level 25