<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[feng_2016的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/feng_2016</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; feng_2016]]></copyright><item><title><![CDATA[BUUCTF-[GWCTF 2019]re3解析]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/106358117</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/106358117</guid><author>feng_2016</author><pubDate>Tue, 26 May 2020 16:26:57 +0800</pubDate><description><![CDATA[在程序运行时改变函数
我们通过交叉引用来到主函数

发现有一个函数既作为数据参与异或，又作为函数来引用
而且这个函数打不开
我们猜测异或完后，这个函数才是真正的函数
我们找到这段函数的地址402219，通过python改变这段数据
a = [0xCC,0xD1,0x10,0x7C,0xD1,0x18,0x75,0x69,0x99,0x99,0x99,0xD1,0x10,0x24,0x81,0x66,0x66,0x66,0xFD,0xD1,0x12,0x9D,0xBC,0xB1,0x99,0x99,0x99,]]></description><category></category></item><item><title><![CDATA[De1CTF-Crypto-LFSR略解]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/106121593</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/106121593</guid><author>feng_2016</author><pubDate>Thu, 14 May 2020 15:51:16 +0800</pubDate><description><![CDATA[好不容易做出来，记录一下吧
wp：
https://www.anquanke.com/post/id/181811
https://www.anquanke.com/post/id/184828
官方wp好像是爆破
不过是有技巧地爆破
减少了很多计算量，让爆破有了可能性

]]></description><category></category></item><item><title><![CDATA[BUUCTF-reverse-五道较简单题]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/106113026</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/106113026</guid><author>feng_2016</author><pubDate>Thu, 14 May 2020 09:34:10 +0800</pubDate><description><![CDATA[[GWCTF 2019]xxor
比较简单，就是Tea加密变种
Tea加密可以到ctfwiki学习，解密原理是逆向求解
解密最好用c语言写，python写有点麻烦
[GUET-CTF2019]re
逻辑很简单，就是比对
注意v[16]和v[17]位置调换了
少个v[6]爆破即可
[V&amp;N2020 公开赛]strangeCpp
关注不合理的夹杂数据
通过welcome字符串中不合理的夹杂数据定位到关键函数
__int64 sub_140013580()
{
  __int64 *v0; // rdi
]]></description><category></category></item><item><title><![CDATA[BUUCTF-re-SimpleCPP略解]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/106098706</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/106098706</guid><author>feng_2016</author><pubDate>Wed, 13 May 2020 15:11:39 +0800</pubDate><description><![CDATA[直接上伪代码
__int64 sub_140001290()
{
  bool v0; // si
  __int64 v1; // rax
  __int64 v2; // r8
  unsigned __int8 *v3; // rax
  unsigned __int8 *v4; // rbx
  int v5; // er10
  __int64 v6; // r11
  _BYTE *v7; // r9
  void **v8; // r8
  __int64 v9; // rdi
  __int]]></description><category></category></item><item><title><![CDATA[BUUCTF-CrackMe略解]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/106013560</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/106013560</guid><author>feng_2016</author><pubDate>Sat, 09 May 2020 11:21:40 +0800</pubDate><description><![CDATA[先总体看看
int __usercall wmain@&lt;eax&gt;(int a1@&lt;ebx&gt;)
{
  FILE *v1; // eax
  FILE *v2; // eax
  char v4; // [esp+3h] [ebp-405h]
  char v5; // [esp+4h] [ebp-404h]
  char v6; // [esp+5h] [ebp-403h]
  char v7; // [esp+104h] [ebp-304h]
  char v8; // [esp+]]></description><category></category></item><item><title><![CDATA[BUUCTF-MISC-两道绘图类题目]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105962607</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105962607</guid><author>feng_2016</author><pubDate>Thu, 07 May 2020 00:23:17 +0800</pubDate><description><![CDATA[梅花香自苦寒来
用 py 的 image(pillow) 库
f1 = open(r'D:\0CTF\BUUCTF\Misc\梅花香自苦寒来\梅花香之苦寒来\2.txt','w+')
with open(r'D:\0CTF\BUUCTF\Misc\梅花香自苦寒来\梅花香之苦寒来\1','r')as f2:
    while 1:
        x = f2.read(2)
        if...]]></description><category></category></item><item><title><![CDATA[BUUCTF-两道reverse]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105948718</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105948718</guid><author>feng_2016</author><pubDate>Wed, 06 May 2020 13:24:52 +0800</pubDate><description><![CDATA[重操旧业
刮开有奖
关键有两个函数

第一个函数读起来很吃力
但是有技巧，我们关注的是函数的结果，不是过程。
将代码在VS复写，观察运行结果
#include&lt;iostream&gt;
using namespace std;
int  f1(int*data, int a2, int len)
{
	int result = len, i,v5,v6;
	for (i = a2; i &l...]]></description><category></category></item><item><title><![CDATA[bugku两道misc]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105665791</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105665791</guid><author>feng_2016</author><pubDate>Fri, 24 Apr 2020 17:40:22 +0800</pubDate><description><![CDATA[convert
上来一个1.txt，打开一看很多0，1
尝试一下是不是ascii的二进制

发现前三个字符是rar，说明是rar压缩包的二进制
下面动真格了，上Python
f = open(r'D:\sundry\1.txt','r')
f2 = open(r'D:\sundry\3.txt','wb')
while 1:
    s = f.read(8)
    if not s:
    ...]]></description><category></category></item><item><title><![CDATA[zip明文攻击-bugku-神秘的文件]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105617941</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105617941</guid><author>feng_2016</author><pubDate>Sun, 19 Apr 2020 17:07:43 +0800</pubDate><description><![CDATA[先说说zip明文攻击的适用条件
就是要有加密压缩包的一个较大文件，就这样
大致原理是把明文也压缩成压缩包，然后比对压缩包，找到密钥
具体原理我没有深入了解，就不谈了
神秘的文件
压缩包解压后得到flag.zip和logo.png
打开flag.zip发现有密码，并且其中一个文件名字就是logo.png
基本上就是明文攻击了
把我们的logo.png压缩成压缩包，比对一下CRC32

CRC32一样...]]></description><category></category></item><item><title><![CDATA[bugku刷题记录2道MISC]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105586720</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105586720</guid><author>feng_2016</author><pubDate>Fri, 17 Apr 2020 20:12:05 +0800</pubDate><description><![CDATA[普通的二维码
开局一个二维码，扫一扫得flag

嗯……
看一看文件的属性，并没有得到有用的信息
用010editor打开文件，拉到最后

看到了奇怪的一串数字
观察一下所有数字都不超过8，应该是个8进制
8进制转ascii字符的特点是三位一组，最高位不超过1
可以看到这串数字非常符合这个特征，python来：
a = '14615414114717311014116614513717106012...]]></description><category></category></item><item><title><![CDATA[bugku中两道游戏类misc]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105559559</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105559559</guid><author>feng_2016</author><pubDate>Thu, 16 Apr 2020 15:46:14 +0800</pubDate><description><![CDATA[1.come_game
打开后发现是一个游戏，玩了一下，没发现什么异常，退出后发现多了个文件
Deathtime 和 save1是多出来的
看名字是我在游戏中存的档和我的死亡次数
010editor打开save1

估计是我的存档的数据
然后我继续玩，过了一关，回来看数据变化

ascii中的2变成了3
估计这就是关卡数
后面我再玩过了一关，数字从3变成了4
然后我把它改成了5，再进游戏，就直接弹...]]></description><category></category></item><item><title><![CDATA[bugku刷题记录6道MISC]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105533988</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105533988</guid><author>feng_2016</author><pubDate>Wed, 15 Apr 2020 16:01:59 +0800</pubDate><description><![CDATA[啊哒
jpg文件010editor打开
文件头正常，搜索FF D9文件尾
跳到了后面，最后还有个压缩包
压缩包是真加密
打开图片属性，发现相机型号很奇怪，转为字符串得sdnisc_2018密码
解压顺便得到flag
又一张图片，还单纯吗
pg文件010editor打开
文件头正常，搜索FF D9文件尾
发现好多FF D9
这样手动很难分离，向kali低头
binwalk 文件名
foremost ...]]></description><category></category></item><item><title><![CDATA[BUUCTF刷题记录10道MISC(二)]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105523752</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105523752</guid><author>feng_2016</author><pubDate>Wed, 15 Apr 2020 11:25:08 +0800</pubDate><description><![CDATA[[BJDCTF 2nd]最简单的misc-y1ng
上来一个加密安装包，属性找不到密码，010editor伺候
50 4b 03 04 后的加密为是 08 00 偶数，说明没有加密，是伪加密
修改50 4b 01 02后的加密位后，解压得到未知文件
010editor打开发现IHDR，说明是png格式，发现缺少文件头
补齐89 50 4E 47，顺便获得flag图片
[BJDCTF 2nd]A_B...]]></description><category></category></item><item><title><![CDATA[BUUCTF刷题记录10道MISC]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/105519848</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/105519848</guid><author>feng_2016</author><pubDate>Tue, 14 Apr 2020 21:45:19 +0800</pubDate><description><![CDATA[乌镇峰会种图
jpg文件010editor打开
文件头正常，搜索FF D9文件尾
跳到了最后，顺便发现flag
rar
解压发现压缩包加密了，题目说明4位数密码，ARCHPR爆破
文件中的秘密
jpg文件010editor打开
文件头正常，搜索FF D9文件尾
跳到了最后，说明没有隐藏文件
搜索 flag ，没有找到
LSB隐写也不是
看看属性，顺便找到flag
ningen
jpg文件010ed...]]></description><category></category></item><item><title><![CDATA[CTF逆向4]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/104072078</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/104072078</guid><author>feng_2016</author><pubDate>Wed, 22 Jan 2020 20:00:30 +0800</pubDate><description><![CDATA[BUUCTF-Youngter-drive
1.UPX脱壳
这个程序不知道为什么打不开，就不手动脱壳了
复制到kali linux
终端输入
upx -d 文件名

得到的文件就是脱壳好的文件
2.堆栈不平衡导致ida分析失败
在进入ida分析的函数时，ida显示：
Decompilation failure:
xxxxxx: positive sp value has been found
解决...]]></description><category></category></item><item><title><![CDATA[CTF逆向3]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/104058651</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/104058651</guid><author>feng_2016</author><pubDate>Tue, 21 Jan 2020 10:28:04 +0800</pubDate><description><![CDATA[BUUCTF-CrackRTF
1.atoi函数
顾名思义ascii to int 把字符串转化为整型
原理是从字符串第一个数字或正负号开始转换，遇到非数字字符时终止转换
结果返回一个整型。
例子：qwe-1239ii321	结果返回-1239
2.使用CryptoAPI
关键是CryptCreateHash函数的第二个参数代表了加密方式
CryptCreateHash(phProv, 0x800...]]></description><category></category></item><item><title><![CDATA[CTF逆向]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/103930726</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/103930726</guid><author>feng_2016</author><pubDate>Fri, 10 Jan 2020 21:06:32 +0800</pubDate><description><![CDATA[BUUCTF-SimpleRev
关键有两点
1.把整数转换为字符串
//原表达式
v9 = 512969957736L;
//转化为十六进制
v9 = 0x776F646168LL;
//转化为字符串
v9 = 'wodah';
转化为字符串的时候，高位在高地址，低位在低地址
所以数据在内存中的分布为68 61 64 6F 77
实际字符串应该是v9 = 'hadow';

2.暴力破解
不需要...]]></description><category></category></item><item><title><![CDATA[CTF逆向]]></title><link>https://blog.youkuaiyun.com/feng_2016/article/details/103554188</link><guid>https://blog.youkuaiyun.com/feng_2016/article/details/103554188</guid><author>feng_2016</author><pubDate>Sun, 15 Dec 2019 21:47:22 +0800</pubDate><description><![CDATA[BugkuCTF-入门逆向
我是新手，写写博客记录下学习历程，可能有很多错误的地方，所以仅供参考哈
首先010editor看看文件格式，是个MZ开头的文件，是个exe文件，执行后直接闪退，然后用peid例行查壳，EP段是.text，无壳。拖进ida
; Attributes: bp-based frame
; int __cdecl main(int argc, const char **argv...]]></description><category></category></item></channel></rss>