记录一个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实在……太坑了´_>`

pwnable.kr_思路

写在前面

学二进制、pwn,pwnable.kr是一个必须要刷的网站,所以开一篇文章专门记录自己的刷题历程

其实网上很多都有,但我这里主要记录各题的思路,不写详细的解法,也主要用于自己的归纳总结,do it yourself,才能学到更多

对我所说的思路有不了解或有不同的看法的,欢迎email我 lin.giglf@gmail.com 一起讨论

不定期更新

阅读更多

Blog update!

终于颓颓颓颓了很长一段时间,开始修我的blog

这里说一下我blog的更新的地方吧


博客依然由hexo+freemind主题建成

  1. 图床修复:采用hexo-asset-image插件,图片直接同步到repo中,在pages上直接引用

  2. 留言系统修复:多说关闭了,只能换一个,disqus以前用过,但是登陆方式有限制,对国内用户不太友好,后来找到一个叫livere(来必力)的,看着还挺好用,就换成这个了。

  3. 从前博客挂在github pages上,用的http://gifish.tk 的域名。但由于github禁了百度的爬虫,导致百度会搜不到,现在同步挂到了github pages和coding.net pages上,让百度可以搜到博客的内容,不过试了下,似乎刚配置好百度的爬虫还没更新。然后更新域名为http://blog.2bsticker.cn ,国外线路解析到github,国内线路解析到coding.net,试了试github page不能设置多个CNAME记录,于是吧gifish.tk url重定向到了github page上。

    综上,目前你可以通过以下链接访问我的博客

    以后想注册个个人长期使用的域名,日后再更新。

  4. 添加hexo-wordcount插件,修改侧边栏的样式,每篇文章可显示字数和预计阅读时间。

  5. 添加小蒜子阅读数量统计,显示于侧边栏。

  6. 添加rss订阅链接。

  7. freemind的样式更改为readable-inverse

  8. 更新About Me面页

  9. 更新了freemind的字体包,添加了google analyse和baidu统计,这个主要用于自己查看数据用的。


依然存在问题

  1. hexo-math插件出问题,怎么配置都没成功,数学公式不能正常显示(还好博客还没有很多公式)
  2. https配置未成功,配置自定义域名后,coding.net和github都要识别域名的所有权才能给站点开启https,其中coding.net用的是Let’s Encrpty的认证,尝试了很多种,尚未配置成功。

资料参考

http://masikkk.com/tags/Hexo/

有些文章感觉挺没意思的,不过写了就不删了,以后看心情再写些有意义点的文章23333

About recently

仔细看一下,上一篇特么是4月份的事了,现在9月份,已近5个月没有更新过了

在这五个月中,本来有想过写东西的,但由于一直很烦(对,其实也不算太忙)

烦于找实习,实习失利又去考虑找读研导师,一直折腾来折腾去,各种破事。


如果说大三上是因为各种课程各种实验堆积搞得自己很忙很烦,那么大三下就是各种破事堆积搞得自己很烦

每天都很烦!

还好,这段可怕的日子已经过去了,我也丝毫不留恋,如今仅仅会感叹一下时间过得真快,现在学校又都是军训的萌新,不止一次感叹年轻真好

在这五个月,有几次我都想更些blog,不过一直没写,没组织,现在考虑下是不是应该补上。

其中包括:

  1. DDCTF前几题的wp
  2. 一次pwnhub关于Android的逆向(没多大意思,有点不打算写了)
  3. 最近一次pwnhub关于pyc的逆向

还有些想写的,但似乎忘了,果然应该及时写的= =

然后,最近想要从零开始写一个小型的操作系统内核,正在肝文档,抄代码,会及时记下这个过程的


再就是,关于这个博客的修整

首先的问题是:

  1. 以前的图床收费,图片全挂了,需要修复
  2. 留言挂了,等待修复
  3. 以前hexo的配置有问题,似乎ban了某些搜索引擎,待修复

所以计划是:

  1. 修复以前的图片
  2. 修复留言系统
  3. 站点重新配置,修改一下样式之类的
  4. 补一下文章。。。
  5. 考虑配置个https

就酱


但愿人生能往自己喜欢的方向发展,丰富多彩。

但是没钱是个大问题

Android签名原理介绍(2)--schemev2

接上一篇,接下来介绍7.0后新增的v2签名认证方式

APK Signature Scheme v2

与v1方式签名不同的是,v2的签名是对整个文件的一种签名方式

直接从字节码上对apk进行签名,不必遍历每个入口进行计算签名

并且每一个改动都会使得签名失败,因此其提高了签名认证的速度和签名保护的安全性

但是有一点得注意的是,v2签名仅用在7.0以上的系统中,因为只有7.0以上的系统有有关v2签名认证的代码

因此为了适配早前的系统,正常还是采用v1签名,或是v1v2签名并存

在后面的代码可以看出来,7.0以上的系统会先进行v2签名的认证,若没检测到v2签名信息,则再进行v1的方法

但是由于一些应用需要打包渠道包,每次修改再编译再签名实在太耗时,大部分会选择关闭v2签名

在build Gradle中添加

v2SigningEnabled false

因为在v1签名中,META-INF中的内容是不会检测的,这使得在打包渠道包时不需要重复重新签名

渠道包指的是在各大应用市场,发布的apk包的清单文件中,某个meta-data标签下,配置的value不一样,这个标签的作用就是用来区分是哪个市场的

阅读更多

Android签名原理介绍(1)--schemev1

前言

因为某些不知名的原因,让我感觉很有必要学习一下apk签名的方式,于是。。。便有了这篇

(真的好久没写了哇,近期烦心事真的太多了)

我在网上搜了各种大大小小关于apk签名的文章,但始终没有能让我满意的,而且也感觉一直缺乏一篇能从字节上分析对比新旧两种签名方式的文章,so……

传统的安卓签名方式是通过jar的签名方式实现的,在apk包下,会有一个META-INF的文件夹,META-INF的文件夹下,会有MANIFEST.MF CERT.SF CERT.RSA三个文件,均是用于apk签名认证的。

而在Android7.0后,新增了一个APK Signature Scheme v2的签名方式,更为强效。而原来的签名方式则是 JAR-signed APK verification (v1 scheme)

详细可看官方的文档

https://source.android.com/security/apksigning/v2#v1-verification

阅读更多

NGfish_mini-lctf_writeup

WriteUp比赛完就写了= =结果我拖到现在才整理发上来
mini-lctf是校内入门赛啊……
真正的dalao们都出题去了,没有参加,于是给我单挑打了个第五出来
然而因为没有新生在队内所以不给我奖品咯[掀桌!]
好歹我还ak了re和mobile!(虽然都是入门级的)
好咯,不管你,post一下题目的打包
链接: https://pan.baidu.com/s/1pKXa2rp 密码: gnbq

阅读更多

pwnhub无用的电脑_丧心病狂_writeup

比赛地址是 pwnhub.cn

也可以下载我上传的writeup来看

弱渣用的解法超奇怪233333333

然而居然还被选上了官方推荐

接下来看看正文吧


得到pwnhub.jar包,先跑起看看

java -jar pwnhub.jar

1

阅读更多

各种编码区别及内存映射

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

室友问道为啥一个

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

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

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

后来又看到这么一段话

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

然后我就懵逼了

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

阅读更多

2016minilctf-Forensics500-Angel Beats!

0x00 前言

mini-lctf是我们校内的一个小型ctf比赛,在2016年12月初持续一周……

对,大家都注意到了现在马上到2月了233333,新年快乐~

嗯,因为当时这题并没有做出来

马格鸡虽然我太菜然而还是ak了入门级的mobile和re,还排名第五(因为dalao们都是出题人23333)

然而因为我单挑没有带学弟玩居然不给我奖品,好气啊!

赛后wp里re和mobile我还是写的比较详细的,然而这时回老家过年没网,迟点改改结合出题人wp再发

阅读更多