目录
关闭
色彩
关闭

颜色主题

语言 Languages

English

礼拜四, 二月十九日

我感觉写日记在某种程度上和"时间局部性 temporal locality"有关: 如果日记要是不是天天记录的话, 可能一些记忆就会被覆盖了. 我觉得"时间局部性"这个翻译真的是完全看不出它在说什么, 不知道的人或许会以为是和相对论有关的内容.

二月十六日, 礼拜一

今天我又继续Incremental的擦了两片地板区域. 我发觉如果说把地板的设计也和一个人蹲下可以擦到的面积相结合或许也能挺有趣的. 或许这种地板可以被称为人体工学地板. 我也扫和擦了窗台上剩下的一片积满灰尘的区域.

二月十五日, 礼拜日

今天我去确认了Target塑料袋回收的位置. 有点尴尬的是我又问的是昨天冰激凌事件中碰到的服务员. 不过这次似乎还比较顺利, 希望没有打扰到人. 考虑到我想减少锡纸盖子的使用和沟通的成本, 我还尝试了在餐厅内堂食. 过程还比较顺利.

二月十四日, 礼拜六

我在去Target的时候发现了一盒被遗弃在自助收银台附近的冰激凌. 我纠结了一下, 还是决定和工作人员说一下这个问题. 工作人员一开始听错了. 我不知道为什么他理解成有个报警器响了. 我很抱歉. 后来又沟通了一次, 他跟我来到了那个冰激凌, 结果那个冰激凌已经化了.

二月十二日, 礼拜四

今天早上我没成功完成CS461加分的部分, 下次应该再早点开始哈哈. 然后我去检查之前写完作业发现好像1.2.6出了问题, 似乎我旧的stack都不太管用了. 紧急修改了一下才好. 我想应该是我自己探索的过程中调整了源码,导致编译出的可执行文件的代码并没有在初始版本里正确的位置.

今天我在CS598的课上发言说"感觉可能有时候软件开发或许也会刻意的把界面维持在一个难用的状态去把初学者阻挡在圈子外, 就像有的时候学术圈子也会刻意的把文章弄的难读." 我好像听到有几声笑声哈哈, 希望没有冒犯到人. 我想可能老师也认同有这种现象的存在.

二月十一日, 礼拜三

今天晚上我思考了一下作业1.2.8. 发生了一些有趣的故事. 我一开始是想用一个指向0x00000000的地址去覆盖"%ecx"和"%edx", 让它俩都成为一个没有元素的数组指针. 但是好像并不起作用, 似乎有一些神秘的原因导致"int $0x80"没有起作用. 后来我试图去按照标准的"shellcode"启动流程去把这俩寄存器的值都改成0. 这个过程还是蛮困难的, 因为最关键的原因就是程序"argument"里的字符串不能包括空格类的特殊字符和"\0", 导致我应该没法直接把"0x00000000"填进stack.

幸运的是, 有一段"int $0x80"之前正好有"xor %ecx,%ecx", 这样子"%ecx"寄存器的问题就解决了.

但是"%edx"就没那么容易了, 我一开始是找到了一个"move %eax (%edx)", 后来写好了之后才发现这个应该是写到"%edx"内的地址. 再后来我找到一个临近"ret"的"xor %edx,%edx". 本来以为事情能顺利完成, 没想到还是"segfault". 经过我的调查发现, 原来这个内容是在为"div %esi"做准备, 而这个指令会把除法的余数更改进"%edx". 这样就会打乱我把"%edx"设置为0的尝试.

但是我思考了一下, 其实我不是正好可以利用这个除法机制, 挑出一对除数和被除数, 把"%eax"设置成11然后把一个余数0填进"%edx", 解决不能直接把它们设置成0的问题. 最后我确实成功按照这个计划把它们设置成了对应的数.

不过这个时候, 我发现"int $0x80"还是没有起作用. 经过我一番调查, 好像是我"/bin/sh/"没有按照little endian去写, 导致大概是执行了个不成功的指令. 我感觉似乎可能一开始让"%ecx"和"%edx"都指向一个0可能也行. 可能我并不用去把它俩都变成0哈哈哈. 不过把它俩变成0的过程还是很有成就感的.

二月十日, 礼拜二

我在从County Market回公寓的路上遇到了一滩积水. 我让了对向一个行人先过, 然后对向的第二个行人也愿意让我先过. 我说了谢谢. 我很感恩.

二月七日, 礼拜六

今天我擦了一下灶台表面和桌子, 也自己煎了牛排吃.

二月六日, 礼拜五

今天早上我还算比较顺利地(用现成的库)完成了让一个Node.js服务器项目支持HTTPS的任务.

二月五日, 礼拜四

今天我返程了CS461中的一道用Stack增加溢出来完成的题目. 高层次的思路大致是, 由于在栈上开辟空间没有关于大小的检测, 所以可以用一个很大的数去让"栈顶"的"%esp"去到一个对应的位置.

二月四日, 礼拜三

今天晚上花了一些时间去做CS461的MP1. 整体上来说这个过程还算顺利. 我在思考题目1.2.2的时候触发了Segment Fault. 经过我一番调查, 发现原来是"gets"的末尾会加入一个"end of string"符号, 让后面的地址变成一个不正确的位置. 触发这个问题的原因在于, 我想, 应该是我第一次尝试没有正确的用"little endian"去构造内存地址. 这触发了第一次"Segment Fault". 然后, 在我意识到我忘记了用"little endian"去构造内存地址并修改了之后, 我为了尝试是不是前一个地址的问题: 我尝试用正确的地址去覆盖那个"$ebp"的内容, 把紧邻的下一个第二个内存地址暂时去掉了, 然后这导致了第二次"Segmentation Fault." 这导致我的思维卡住了一小会儿, 因为我当时无法确定到底是不是"little endian"的问题哈哈哈.

我在思考问题1.2.2的过程中, 我意识到1.1.1的地址大概写错了. 我隐约记得好像当时用的是"$ebp+1"而不是"$ebp+4". 哈哈哈.

二月三日, 礼拜二

今天早上, 我在截止时间前最后检查了一下代码库, 然后我发现我忘记把阅读权限给TA了. 我赶紧把对应的权限添加了.

二月二日, 礼拜一

今天我去尝试了在点单的纸上自己写下"不需要餐具和纸巾和塑料袋". 取餐的过程还是比较顺利的.

我大致完成了CS461的大作业一的检查点一. 我感觉应该不会有什么问题, 但是我感觉这也很难说的准.

二月一日, 礼拜日

中午的时候我开始准备CS461的大作业一. 我花了一些时间去注册和安装VMware的管理工具, 设置GitLab的SSH密钥, 然后下拉老师的初始代码.

晚上我回收了一些纸箱, 继续了我的渐进式擦地和擦窗台.

今天去Target买东西的时候, 似乎有一对情侣挑了半天的冰激凌. 大约我等了两三分钟后, 男生看到了我, 让我先拿, 好像还说了"sorry"啥的. 我并不介意, 但是似乎一时想不出什么没有暗示我不满的表达. 我就赶紧取出了我要拿的冰激凌, 男生还说了句"是个Good choice". 我扶了一下门, 等女生的手扶住了才松开. 我希望我没有太没有礼貌.

1771519358148