<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[whklhhhh的博客]]></title><description><![CDATA[一只逆向小菜鸡]]></description><link>https://blog.csdn.net/whklhhhh</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; whklhhhh]]></copyright><item><title><![CDATA[安卓pwn - De1taCTF(BroadcastTest)]]></title><link>https://blog.csdn.net/whklhhhh/article/details/105929885</link><guid>https://blog.csdn.net/whklhhhh/article/details/105929885</guid><author>whklhhhh</author><pubDate>Tue, 05 May 2020 11:28:43 +0800</pubDate><description><![CDATA[BroadcastTest
背景
逆向APK可知程序中仅有MainActivity$Message和三个Receiver类。
前者实现了一个Parcelable类，后三个则是广播。
其中Receiver1是export的，接收并向Receiver2发送广播，Receiver2和3则非export，只能接收内部发送的广播。
功能为Receiver1接收base64传入的data，然后将其反序列化得到...]]></description><category></category></item><item><title><![CDATA[有趣的Shellcode和栈]]></title><link>https://blog.csdn.net/whklhhhh/article/details/105109484</link><guid>https://blog.csdn.net/whklhhhh/article/details/105109484</guid><author>whklhhhh</author><pubDate>Thu, 26 Mar 2020 04:47:28 +0800</pubDate><description><![CDATA[学弟问了一个ctf-wiki上pwn入门题的知识点，本身没什么意思
题目下载链接 - sniperoj-pwn100-shellcode-x86-64
题目简介

很明显栈溢出，buf位于栈顶，栈空间为0x10个字节（可以从buf的位置rsp+0rbp-10h看出），所以栈分布为




内容
偏移




buf
rsp


last_rbp
rsp+0x10


ret_addr
rsp+0x...]]></description><category></category></item><item><title><![CDATA[小爱控制HA上的开关（红外线）]]></title><link>https://blog.csdn.net/whklhhhh/article/details/103794892</link><guid>https://blog.csdn.net/whklhhhh/article/details/103794892</guid><author>whklhhhh</author><pubDate>Wed, 01 Jan 2020 18:45:30 +0800</pubDate><description><![CDATA[小爱同学控制homeassistant in 树莓派 by 红外线
前言
租了房子以后一直想搞智能家居自动化各种事情，最近终于腾出空可以搞辣！
研究了一圈感觉拆开关太麻烦了，零火线还要撬开关，租的房子不敢瞎搞。想了一下可以用arduino/树莓派加上小马达来实现敲击开关，不过自己做的话估计比较丑而且外壳设计这些比较偏工业，我这种纯软件程序员也并不熟悉233
于是又搜了一下，果然有roome和华硕各...]]></description><category></category></item><item><title><![CDATA[191018 pwn-HITB_dubai polyfill]]></title><link>https://blog.csdn.net/whklhhhh/article/details/102623953</link><guid>https://blog.csdn.net/whklhhhh/article/details/102623953</guid><author>whklhhhh</author><pubDate>Fri, 18 Oct 2019 14:01:49 +0800</pubDate><description><![CDATA[Polyfill
写作dubai-ctf，然而在阿布扎比举办233
风格迥异，被毛子吊锤一百遍啊一百遍
第二天主要在看一个wasm的pwn，发现了UAF的漏洞但是由于对heap没了解所以没写利用。队里的pwn手觉得没法用所以没写，最后偷了流量重发爽了一天。赛中修复了题目，但是并没有起效。事后分析了一下确实是那个UAF的洞。
题目文件
http是一个web演示接口，可以通过html+js+engin...]]></description><category></category></item><item><title><![CDATA[190927 re-某恶作剧APK的分析]]></title><link>https://blog.csdn.net/whklhhhh/article/details/101570691</link><guid>https://blog.csdn.net/whklhhhh/article/details/101570691</guid><author>whklhhhh</author><pubDate>Fri, 27 Sep 2019 23:46:23 +0800</pubDate><description><![CDATA[用JEB打开，首先扫一眼AndroidManifest.xml的相关信息
从包名可以看出
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvszbl92-1569599143824)(https://i.loli.net/2019/09/27/ybnJIaoRwrq3tsX.png)]
是一个androlua项目，稍微搜一下就可以知道是用Lua写android。所以...]]></description><category></category></item><item><title><![CDATA[190919 pwn-第五空间final_十生]]></title><link>https://blog.csdn.net/whklhhhh/article/details/101014663</link><guid>https://blog.csdn.net/whklhhhh/article/details/101014663</guid><author>whklhhhh</author><pubDate>Thu, 19 Sep 2019 11:20:32 +0800</pubDate><description><![CDATA[说是题目，其实就是飞秋0day 233
之前虽然听说过各种windows的pwn
软件停止更新已久，保护都没开，是比较古老的玩意儿了
于是很容易搜到各种POC
例如0x49D03F处的整形溢出


v54是输入进来的字符串，因此可以提供4294967295=0xffffffff=-1从而使memcpy发生缓冲区溢出的异常，然后通过覆盖SEH的方式进行利用
通过cyclic生成字符串填入，可以测出溢...]]></description><category></category></item><item><title><![CDATA[190825 reverse-ogeek初赛]]></title><link>https://blog.csdn.net/whklhhhh/article/details/100069662</link><guid>https://blog.csdn.net/whklhhhh/article/details/100069662</guid><author>whklhhhh</author><pubDate>Sun, 25 Aug 2019 23:56:30 +0800</pubDate><description><![CDATA[好久没写博客了_(:з」∠)_回头有空补一下DEFCON的过程和题目复盘啥的…
babyre
浏览一遍可以看出来很明显是一种压缩算法，简单搜了一下发现比较像LZ77，但是据说有很多变种，没找到什么好的实现就接着自己逆了
简单理解了一下原理，在buff内搜索与后17个字节相匹配的最大子串，如果有就记录下buff的下标和子串长度，没有则写入原始内容以供之后使用
简单来说就是所有数据仅出现一次，其他地方...]]></description><category></category></item><item><title><![CDATA[190727 pwn-ciscn_final_14]]></title><link>https://blog.csdn.net/whklhhhh/article/details/97559903</link><guid>https://blog.csdn.net/whklhhhh/article/details/97559903</guid><author>whklhhhh</author><pubDate>Sat, 27 Jul 2019 22:15:48 +0800</pubDate><description><![CDATA[搞了快三个小时才出来_(:з」∠)_几乎白给
雷泽太强了！

简单逆向后可以知道

该程序具有注册和登陆功能
注册后会给name赋值为userx，而get_flag的需求为name==adminx
passwd成员存储原始密码加盐（随机数）加密后的结果
code成员存储其他成员加盐（随机数）加密后的结果
登录时校验passwd和code

Struct:
00000000 User        ...]]></description><category></category></item><item><title><![CDATA[190705 安卓-对抗AndResGuard的重打包]]></title><link>https://blog.csdn.net/whklhhhh/article/details/94872641</link><guid>https://blog.csdn.net/whklhhhh/article/details/94872641</guid><author>whklhhhh</author><pubDate>Sat, 06 Jul 2019 17:55:31 +0800</pubDate><description><![CDATA[换了一个apk实验后
apktool b -f -p. xxx也不行，仍然报资源错误
看了一下可能是鹅厂出的AndResGuard工具，会将资源文件夹/Res/xxx重命名为/r/x类的目录，导致资源解析出错
针对这个混淆有shakaApktool来对抗，但由于太久没有更新所以已经失修了
于是无奈回归apktool -r不解析资源文件、原样打包的思路
对于AndroidManifest.xml的二...]]></description><category></category></item><item><title><![CDATA[190702 安卓-Frida-gadget]]></title><link>https://blog.csdn.net/whklhhhh/article/details/94498413</link><guid>https://blog.csdn.net/whklhhhh/article/details/94498413</guid><author>whklhhhh</author><pubDate>Tue, 02 Jul 2019 23:43:24 +0800</pubDate><description><![CDATA[开始鹅厂实习的社畜搬砖生活(°∀°)ﾉ
frida-gadget的优势在于通过对应用重打包，加入gadget.so的调用，从而实现frida的hook
这种途径避免了注入所需要的root权限
发现了一个现成的脚本，但测了一下似乎有一些问题，明天修一下看看
以下是手动流程
解包
apktool d xxx.apk
-r选项可以使得不解析资源，但AndroidManifest.xml也不会解析，此时无...]]></description><category></category></item><item><title><![CDATA[190617 逆向-神盾杯（Reverse）]]></title><link>https://blog.csdn.net/whklhhhh/article/details/92665102</link><guid>https://blog.csdn.net/whklhhhh/article/details/92665102</guid><author>whklhhhh</author><pubDate>Mon, 17 Jun 2019 17:56:22 +0800</pubDate><description><![CDATA[突然想起来我还有个博客（……
这一个月来各种比赛跑，然而主要都是被pizza带飞。得赶紧抽空整理一下各种题目
神盾杯re500的c#没啥思路，本身对.net机制确实没啥深入理解…加入TODOLIST留待日后研究了（
babyjs
拿到html后发现按钮调用了checkLogin函数

在控制台输入checkLogin即可看到源码

obfacros
一看题目描述又是--garzon家俊那个混淆狂魔...]]></description><category></category></item><item><title><![CDATA[190505 逆向-DDCTF2019(Reverse)]]></title><link>https://blog.csdn.net/whklhhhh/article/details/89859382</link><guid>https://blog.csdn.net/whklhhhh/article/details/89859382</guid><author>whklhhhh</author><pubDate>Mon, 06 May 2019 00:08:37 +0800</pubDate><description><![CDATA[咕咕咕咕咕
连续若干CTF以后就是各种考试作业DDL催命_(:з」∠)_
等这两周各种考察课完了慢慢补各种活儿吧~
先交一下之前的DDWP-0-
还请各位大佬多指正~
Windows Reverse1
通过段名发现是UPX壳，upx -d脱壳后进行分析
核心函数只是通过data数组做一个转置，反求index即可
值得一说的是data的地址与实际数组有一些偏移
由于输入的可见字符最小下标就是空格的0...]]></description><category></category></item><item><title><![CDATA[190409 逆向-RCTF2015(FlagSystem)]]></title><link>https://blog.csdn.net/whklhhhh/article/details/89118707</link><guid>https://blog.csdn.net/whklhhhh/article/details/89118707</guid><author>whklhhhh</author><pubDate>Tue, 09 Apr 2019 00:54:38 +0800</pubDate><description><![CDATA[想起来前段时间搞了JEB3的泄露版，找了个安卓题来试试手
结果发现这题目也挺有意思的23333
提供的题目文件是一个二进制，十六进制查看器发现头部标着ANDROID BACKUP，显然就是个应用的备份文件了
查了一下可以通过abe.jar来解包，试了一下发现解出来的文件是乱码，毫无标志
于是找了一下文件解析，发现第三行为压缩标志位，源文件为0表示未压缩，于是将它改成1，再次解包，得到两个应用

看...]]></description><category></category></item><item><title><![CDATA[190407 逆向-西湖论剑杯]]></title><link>https://blog.csdn.net/whklhhhh/article/details/89078090</link><guid>https://blog.csdn.net/whklhhhh/article/details/89078090</guid><author>whklhhhh</author><pubDate>Mon, 08 Apr 2019 00:13:51 +0800</pubDate><description><![CDATA[Re1-easyCpp
IDA打开发现一大堆模板很丑，但仔细看一下其实只有一堆变量来回操作而已
基本上就是各种STL和vector的用法，算法名都保留下来了所以难度下降很多
基本流程是接收输入、生成斐波那契数列的十六项
然后对输入依次使用transform和accumulate算法
分别是遍历vector中的一元运算和二元运算
运算都是自定义的方法，双击算法进去可以看到lambda函数


tra...]]></description><category></category></item><item><title><![CDATA[190404 逆向-利用溢出修改TLS的re题]]></title><link>https://blog.csdn.net/whklhhhh/article/details/89035486</link><guid>https://blog.csdn.net/whklhhhh/article/details/89035486</guid><author>whklhhhh</author><pubDate>Thu, 04 Apr 2019 21:00:27 +0800</pubDate><description><![CDATA[偶然在52上看到 这个帖子
顺手打开看了一下

主函数这里有个错误指令，附近没有跳转所以大概不是花
往上翻一下

标准的try语句，新增了一个异常处理结构

可以看到handler指向了401269+1的地方，而401269正好就是错误指令地址
也就是说相当于一个花了

修正一下变成这个样子
直接输出RROR!然后退出
就全完了233
注意到输入的buff在data段，以及scanf是%s来的，所...]]></description><category></category></item><item><title><![CDATA[190401 逆向-华硕供应链木马样本分析]]></title><link>https://blog.csdn.net/whklhhhh/article/details/88953984</link><guid>https://blog.csdn.net/whklhhhh/article/details/88953984</guid><author>whklhhhh</author><pubDate>Mon, 01 Apr 2019 18:15:18 +0800</pubDate><description><![CDATA[随便谷歌了一个样本来，md5：55a7aa5f0e52ba4d78c145811c830107
恶意代码在__crtExitProcess中调用

用GetModuleHandleW(0)拿到本模块的加载基址，然后通过偏移调用IAT中的VirtualAlloc
这里IDA的Hexrays不知道为什么值优化错了，对着0x4709f找了半天都没找到东西，看了一下汇编才发现是0x11c27c

接着同样...]]></description><category></category></item><item><title><![CDATA[190330 逆向-嘉韦思杯re2]]></title><link>https://blog.csdn.net/whklhhhh/article/details/88917728</link><guid>https://blog.csdn.net/whklhhhh/article/details/88917728</guid><author>whklhhhh</author><pubDate>Sat, 30 Mar 2019 22:29:02 +0800</pubDate><description><![CDATA[划一波水，re1秒了，re2看起来挺有意思的就处理一下
main函数有一个花指令使得CreateFunction失败

jmp跳到了自己指令的中间部分，NOP掉即可

然后重新在开头按P或者右键CreateFunction就可以F5了
main函数里没啥好说的，这个花不去也无所谓，反正汇编也看得出来call 8048580要返回1才可Correct
先看一下这个函数的CFG

比较像控制流平坦化或...]]></description><category></category></item><item><title><![CDATA[190328 逆向-浅谈反调试]]></title><link>https://blog.csdn.net/whklhhhh/article/details/88882049</link><guid>https://blog.csdn.net/whklhhhh/article/details/88882049</guid><author>whklhhhh</author><pubDate>Fri, 29 Mar 2019 01:11:02 +0800</pubDate><description><![CDATA[调试机制
Linux
通过ptrace系统调用来调试子进程
对于create类型，与正常创建子进程工序相同，通过fork创建子进程后使用traceme来告知内核它需要被调试，这样等到exec执行的时候内核就会产生SIGTRAP，此时调用wait的父进程就会接收到这个信号并ptrace子进程，从而使得调试优先于子进程的所有内容
而对于attach类型，是父进程直接使用ptrace去调试其他进程，如果...]]></description><category></category></item><item><title><![CDATA[190326 逆向-MFC逆向技巧]]></title><link>https://blog.csdn.net/whklhhhh/article/details/88858601</link><guid>https://blog.csdn.net/whklhhhh/article/details/88858601</guid><author>whklhhhh</author><pubDate>Wed, 27 Mar 2019 23:43:02 +0800</pubDate><description><![CDATA[MFC
简介

微软基础类库（英语：Microsoft Foundation Classes，简称MFC）是微软公司提供的一个类库（class libraries），以C++类的形式封装了Windows API，并且包含一个应用程序框架，以减少应用程序开发人员的工作量。
–百度百科

虽然由于实际应用中MFC似乎即将被淘汰，（据说微软放弃更新十几年，但从版本号和种种迹象来看似乎是还在不断更新的，V...]]></description><category></category></item><item><title><![CDATA[190321 逆向-花指令去除（脚本）]]></title><link>https://blog.csdn.net/whklhhhh/article/details/88730934</link><guid>https://blog.csdn.net/whklhhhh/article/details/88730934</guid><author>whklhhhh</author><pubDate>Fri, 22 Mar 2019 02:11:22 +0800</pubDate><description><![CDATA[Pizza的脚本中是通过get_bytes和patch_bytes两个API来将所有机器码读出然后再Patch回去的
中间匹配pattern的过程是构造字符串然后find来控制

这样操作的优点是find的效率奇高，对于大量数据的处理非常的快
而我们之前使用的逐字符匹配pattern的优点是可控性比较强，例如通配符的存在
然而缺点就是速度很慢，对于数量级较大时格外明显，因此试图修复
刚开始以为速度...]]></description><category></category></item></channel></rss>