Ubuntu克隆mac地址后连不上网

记录最近配置ubuntu网络时遇到的神坑……

首先,我现在工位的电脑我装的是ubuntu16.04,然后因为端口的ip是跟mac地址绑定的,并且当时绑的是我笔记本的地址

所以,为了避免麻烦再绑一次,我就想直接改了ubuntu的mac就好了,那样我有时用笔记本直接插网线也就可以了

阅读更多

记录一个Windows下Makefile的神坑

之前在写一个cpp的项目,不想用一些比较臃肿的IDE,所以就直接vscode+Makefile了

然后,因为是在windows下开发,遇到了一些神坑了。。


首先是make clean (别问我为什么不用cmake,是懒得配置

1
2
clean:
rm $(TARGET) $(OBJS)

很正常的代码,但是就是运行崩了

并不是因为rm的原因,因为这是运行在powershell下的结果

首先,它报出了这样的错误

1
2
3
4
process_begin: CreateProcess(NULL, rm sb.exe src/main.o src/ELFReader.o, ...) failed.
make (e=2): 系统找不到指定的文件。
Makefile:23: recipe for target 'clean' failed
make: *** [clean] Error 2

似乎是找不到命令的原因。

后来我发现在powershell底下,rm后面的文件与文件之间必须要是逗号分隔……

修改后,还是爆出一样的错误,经过一系列的搜索并没有搜出个什么来

后来经朋友提醒……加个引号试试

1
2
clean:
"rm $(TARGET) $(OBJS)"

很有道理,那么CreateProcess第二个就像一个参数了

果然,不一样的报错了

1
2
3
4
"rm sb.exe src/main.o src/ELFReader.o"
/usr/bin/bash: rm sb.exe src/main.o src/ELFReader.o: No such file or directory
Makefile:30: recipe for target 'clean' failed
make: *** [clean] Error 127

好的,你告诉我为什么在Windows下会调用的是bash(万脸问号)???

结合起来搜索,似乎说这是因为git bash的原因 ´_>`

不过,我并不打算管了,Windows下开发不用ide坑太多了

果断转移到Linux底下去


另外就是,MinGW在window下的依赖问题

如果是mingw-w64,则能很好的进行64位程序的编译,但是,当我加上-m32

正常的默认设置是不支持编译32位程序的,但SJLJ的是支持的

重新安装过后,-m32能正常编译了,但是程序运行会爆出

应用程序无法正常启动0xc000007b的错误,似乎也是一些依赖问题

但暂时不打算解决了,要想编译32位的程序,大可另外下个w32版本的mingw

Windows实在……太坑了´_>`

各种编码区别及内存映射

整件事起因是一个程序(这条死咸鱼还欠着两篇文章没有写)

室友问道为啥一个

1
2
String str = "中";
str.getBytes().length;

结果是3,而不是我们当时常见的一个中文对应2字节

本质上的原因是因为他编辑器用了utf-8编码

后来又看到这么一段话

“计算机内存中,统一使用Unicode编码,需要保存或者传输时,转换成UTF8编码。”

然后我就懵逼了

对于编码方面的知识我的理解是混乱的,因此写篇blog理清一下思路

阅读更多

Ubuntu的apache2配置PHP不能运行问题

好久没写过了,在总算考完试并且获得一堆烂成绩后,是时候要回归到学习自己的兴趣点

并且填补一下基础

首先记录一下这个问题吧

Ubuntu中配置好apache2后php代码没执行

首先我是准备在虚拟机本地搭个sqli-labs来学习sql injection

因为在之前也搭过,所以应该没什么大问题

结果,就出现了一开始点setup databases时没有反应,即没有任何输出,但其他html元素均能正常显示

我这里配置是

ubuntu gnome 15.10

php5

apache2

mysql

简单来说,就是PHP代码根本就没有运行

此时查看网页源码也能看到php代码,其实还有另外一种情况是网页源码中根本就没有显示php代码

分类讨论下

ps:因为我没有学过多少web的内容,所以以下一些概念性的解释不一定正确,最好自己去搜一下,倘若有错误,还请指出。

  1. 网页源码根本看不到PHP代码

    这里我猜测是因为lamp没有装完整

    首先,php要装上php-cgi,CGICommon Gateway Interface,通过这个借口,php程序可以对服务器和客户端交换信息做一些事情

    另外,还有php-cli,这个是用于在命令行运行php脚本的

    还有php-gd库,用于处理图像。在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。

    另外,要链接数据库,还要装上相应的php的数据库支持,例如php-mysql

    倘若还不能解决,可以参考一下这篇解答

    http://stackoverflow.com/questions/3555681/why-are-my-php-files-showing-as-plain-text

    You’ll need to add this to your server configuration:

    1
    AddType application/x-httpd-php .php

    that is assuming you have installed php properly, which may not be the case since it doesn’t work where it normally would immediately after installing.

    It is entirely possible that you’ll also have to add the php so/dll to your apache config using a LoadModule directive (usually in httpd.conf)

  2. 网页源码中能看到PHP代码

    这个就可以参考这篇解答了

    http://askubuntu.com/questions/451708/php-script-not-executing-on-apache-server

    Typing:

    1
    sudo apt-get install apache2 php5 libapache2-mod-php5

    will install everything you need and will start the apache server with support for PHP.

    To verify that the php module is loaded, type:

    1
    a2query -m php5

    if not enabled, then load with:

    1
    sudo a2enmod php5

    and restart apache:

    1
    sudo service apache2 restart

    Update for php7.0, tested on Ubuntu 16.04 and 16.10

    Thanks to the comments, I update the answer for php7.

    Install:

    1
    sudo apt-get install apache2 php7.0 libapache2-mod-php7.0 

    Verify:

    1
    a2query -m php7.0

    Load:

    1
    sudo a2enmod php7.0

    Restart apache:

    1
    sudo service apache2 restart

    这个原因似乎是因为apache安装后默认还缺一个php的支持库

    因为我就是这个原因,按照上面安装了libapache2-mod-php5后,嗨呀,一切正常了

在配置过程中,apache2的默认根目录是/var/www/html,并不是以前的/var/www,当然,这个可以到配置文件中进行设置。

为了测试php代码是否正常执行,可以通过最简单的一个php脚本测试

1
2
3
<?php
phpinfo();
>

因为我并没有学过php,对于web服务器的配置也一知半解,所以在这个过程耗费了我好多的时间

不过,感谢网上各种大牛的帮助,也是解决了这个问题。


假期别颓啊喂,好好学习!!!

数据库坑之记录

最近在忙各种神奇的大作业

  • 网络程序设计的聊天室
  • java的文件快速搜索工具
  • 数据库学籍管理系统
  • 数字图像的图像处理
  • 排队论的建模分析

神TM忙= =

期末真是九门功课同步学

这时涉及到数据库时遇到了一些坑,来总结下

数据库:Mysql

阅读更多

汇编学习&&nasm使用&&调试

前言

为了更好的做逆向,刚学了点汇编的知识,尽管在我们微机课上也会有教,但总有时会分心。而且,这些不自己实际操作下也是搞不懂的。

尽管在这之前我已近玩过一些逆向了,但更多的是单步调试,通过ida、OD等强大的功能飘过,一些细节并不清楚。所以必须要系统地学习汇编的知识。

这里我选择的书是王爽的《汇编语言(第三版)》,虽然这书讲的是8086的16位的汇编(啊喂,太过时了吧!),不过基本原理都是差不多的,既然那么多人推荐我也就不浪费时间在选择书上了。

环境选择

在王爽的书中,他教学使用的是masm,即是微软开发的汇编开发环境,然后通过dos下的debug来调试。

然而,debug这个调试器早在win7时已经没加入到windows系统中了

阅读更多