<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[40KO的博客]]></title><description><![CDATA[可怜的逆向菜鸟；膜dalao的安全萌新。]]></description><link>https://blog.youkuaiyun.com/qq_35713009</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_35713009]]></copyright><item><title><![CDATA[leecode-试水]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/90904552</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/90904552</guid><author>qq_35713009</author><pubDate>Wed, 05 Jun 2019 18:47:46 +0800</pubDate><description><![CDATA[1.两数之和

描述：给定一个整数数组nums和一个目标值target，请你在该数组中找出和为目标值的那两个整数，并返回他们的数组下标。

暴力循环

没啥好说的，最容易想到的逻辑，时间复杂度O(n2)

双指针

排序后，利用双指针向中间逼近，知道找到目标值，时间复杂度O(nlogn)


class Solution {
public:
    vector&lt;int&gt; two...]]></description><category></category></item><item><title><![CDATA[两个UAF]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/90815564</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/90815564</guid><author>qq_35713009</author><pubDate>Tue, 04 Jun 2019 23:59:15 +0800</pubDate><description><![CDATA[HITCON-training-lab 10 hacknote

本题为最简单的UAF利用

add note0，note1后chunk使用情况




0x80b4000 FASTBIN {    //note0
  prev_size = 0, 
  size = 17, 
  fd = 0x804865b &lt;print_note_content&gt;,     //put
  bk...]]></description><category></category></item><item><title><![CDATA[asis2016-b00ks]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/90743863</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/90743863</guid><author>qq_35713009</author><pubDate>Sun, 02 Jun 2019 21:40:02 +0800</pubDate><description><![CDATA[off-by-one

本题主要是堆上面的off-by-one漏洞利用。off-by-one的成因主要是输入边界考虑不周导致的单字节溢出。一种利用方式是通过修改chunk大小造成结构块之间的重叠，本题就是这种利用方式。



程序分析




__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{
  __int64 savedreg...]]></description><category></category></item><item><title><![CDATA[强网杯-JustRe]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/90622715</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/90622715</guid><author>qq_35713009</author><pubDate>Tue, 28 May 2019 02:36:42 +0800</pubDate><description><![CDATA[Windows32位程序，无壳，编译器版本还算高。

主函数除了CFG有点诡异外，流程十分简单。

进入第一个check函数，可以看到大量SSE指令，前面一些基本的判断很不好看，直接调试看结果


.text:00401682 060                 movd    xmm0, eax
.text:00401686 060                 pshufd  xmm5,...]]></description><category></category></item><item><title><![CDATA[angr-example(解CTF题目)]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89766154</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89766154</guid><author>qq_35713009</author><pubDate>Fri, 03 May 2019 00:17:56 +0800</pubDate><description><![CDATA[0x0废话

emmm，总之就是官方给的examples啦。持续更新...

链接：https://docs.angr.io/examples

0x1defcamp_r100

angr在CTF中最常见的使用方式就是利用符号执行来探索路径。来看主函数



可以看到本题中只需要达到0x400844这个地址，我们的输入就是正确的flag，即我们打印到达0x400844这个地址的state的标准...]]></description><category></category></item><item><title><![CDATA[angr-Core Concepts(翻译)]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89761663</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89761663</guid><author>qq_35713009</author><pubDate>Thu, 02 May 2019 15:32:15 +0800</pubDate><description><![CDATA[官方文档原文：https://docs.angr.io/core-concepts

注：该翻译纯为自嗨

loading a binary

在之前，加载/bin/true时，你只看到了angr最基本的加载工具，在接下来，我们会在没有动态库的情况下再次加载它。你同样会看到project.loader和一些它能做到的事。现在，我们将深入讨论这些接口的细微差别以及它们能提供的信息。

我们简要地提到...]]></description><category></category></item><item><title><![CDATA[Symbolic Execution for Software Testing(翻译)]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89517583</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89517583</guid><author>qq_35713009</author><pubDate>Thu, 25 Apr 2019 15:53:16 +0800</pubDate><description><![CDATA[原文：https://people.eecs.berkeley.edu/~ksen/papers/cacm13.pdf

注：该翻译纯属自嗨

0.介绍

符号执行在近几年获得了大量关注，它作为一种很有效率的技术用于产生高覆盖率的测试组件和找出复杂软件应用的深层错误。在符号执行背后的关键理念在三十多年前就被提出了，由于约束可满足性的显著发展，以及结合了具体符号执行的更具扩展性的动态方法，它到最近才...]]></description><category></category></item><item><title><![CDATA[DDCTF2019-Writeup]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89340976</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89340976</guid><author>qq_35713009</author><pubDate>Fri, 19 Apr 2019 11:31:32 +0800</pubDate><description><![CDATA[目录

WindowsReverse1

WindowsReverse2

confused

obfuscating macros

黑盒破解2

北京地铁

MulTzor

[PWN] strike

Wireshark

联盟决策大会

滴~

Web签到题

Upload-IMG

大吉大利，今晚吃鸡~

Breaking LEM

WindowsReverse1

比较基础的一...]]></description><category></category></item><item><title><![CDATA[dll注入系列——傀儡进程]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89207478</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89207478</guid><author>qq_35713009</author><pubDate>Thu, 11 Apr 2019 19:16:12 +0800</pubDate><description><![CDATA[0x0介绍

之前说过，要动态注入dll文件，则需要执行程序中本身没有的加载操作，必须改变控制流，除了创建线程外，还可以劫持控制流。这与二进制漏洞利用比较类似，我们向程序写入一段shellcode，然后改变线程上下文，让其去执行shellcode，这段shellcode完成LoadLibrary的操作，就完成了dll注入。

傀儡进程的本质是利用其他进程空间来执行我们的写入代码，它的实现并不困难...]]></description><category></category></item><item><title><![CDATA[dll注入系列——内存加载]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89161692</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89161692</guid><author>qq_35713009</author><pubDate>Thu, 11 Apr 2019 01:52:43 +0800</pubDate><description><![CDATA[0x0废话

dll注入的方式和程序正常加载dll模块的本质上是相同的，无非是通过导入表加载，利用LoadLibrary加载和一些系统机制强制加载。要使程序动态加载一个dll文件，也就是执行程序原本没有的代码，势必要改变程序的控制流，创建一个新的线程可以做到这件事。最简单的远线程注入就是利用CreateRemoteThread和LoadLibrary两个API来完成了。

关于注入的介绍及两种经...]]></description><category></category></item><item><title><![CDATA[分析wannacry——启动器]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89146845</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89146845</guid><author>qq_35713009</author><pubDate>Wed, 10 Apr 2019 01:57:18 +0800</pubDate><description><![CDATA[废话

两年过去了，两年前还啥也不会，如今来看看这玩意儿了。





逆向分析

主函数如下，当然，这里所有函数都已经过分析而标注。


int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  char *Str; // ST1C_4@1
  ...]]></description><category></category></item><item><title><![CDATA[2019西湖论剑re]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/89079927</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/89079927</guid><author>qq_35713009</author><pubDate>Mon, 08 Apr 2019 06:53:31 +0800</pubDate><description><![CDATA[easyCpp

本来想静态看出来，看不了。。。IDA调试插件崩了，无奈得使用gdb。首先随便输⼊16个数字


gdb-peda$ r
Starting program: /mnt/c/CTF/reverse/xihu/easyCpp_o
100 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45

然后下断看以下函数做了什么



最下方begin的返回...]]></description><category></category></item><item><title><![CDATA[使用Miasm重构CFG]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88932530</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88932530</guid><author>qq_35713009</author><pubDate>Sun, 31 Mar 2019 18:05:21 +0800</pubDate><description><![CDATA[0x00前言

原文：https://miasm.re/blog/2016/01/27/re150.html

github：https://github.com/cea-sec/miasm

reverseMe：http://www.grehack.fr/data/grehack2015/re/Grehack%202015%20-%20Reverse%20-%20150.zip

主要是对以上...]]></description><category></category></item><item><title><![CDATA[KCTF2019 变形金刚]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88883088</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88883088</guid><author>qq_35713009</author><pubDate>Fri, 29 Mar 2019 07:21:41 +0800</pubDate><description><![CDATA[一道安卓逆向，由于没找到关键函数，比赛时没搞出来，复现一下

对APK进行反编译，结果十分诡异，看起来就像是对用户名进行了字符串反转，但测试后并非这样


public class MainActivity extends AppCompiatActivity {
    class MyHandler extends Handler {
        WeakReference mWeakRe...]]></description><category></category></item><item><title><![CDATA[Z3Py教程(翻译)]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88743410</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88743410</guid><author>qq_35713009</author><pubDate>Fri, 22 Mar 2019 16:11:04 +0800</pubDate><description><![CDATA[原文：https://ericpony.github.io/z3py-tutorial/guide-examples.htm

练习：http://3xp10it.cc/auxilary/2017/11/14/z3-solver%E5%AD%A6%E4%B9%A0/

注：该翻译用于自嗨

Python中使用Z3 API

z3是Microsoft Research开发的高性能的定理证明工具。z3...]]></description><category></category></item><item><title><![CDATA[分析熊猫烧香]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88724306</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88724306</guid><author>qq_35713009</author><pubDate>Thu, 21 Mar 2019 20:05:15 +0800</pubDate><description><![CDATA[0x00 前言

总之就是分析了下这个病毒吧，毕竟当年还是影响很大的，分析起来也算友好，也算是熟悉熟悉病毒的分析过程。



0x01 行为分析

仅从PE文件上获得的信息看不出什么名堂来，因为它是Delphi写的，有许多乱七八糟的字符串，导入表也很多，看起来啥功能都有。



所以还是得用监视器来看看它的运行情况(Win7运行后还真中毒了。。。)



过滤一下文件操作可以看到它多次操作了C:...]]></description><category></category></item><item><title><![CDATA[Practice Malware Analysis Lab11]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88600836</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88600836</guid><author>qq_35713009</author><pubDate>Sat, 16 Mar 2019 17:39:26 +0800</pubDate><description><![CDATA[Lab11-1

感觉这个Gina完全过时了。。

Lab11-2

Lab11-2.ini解密得，交叉引用发现该dll文件对send函数进行了inlinehook，hook代码



new_send代码如下



可以看到，所有发送到邮箱的数据都将发送到中

存在导出函数installer



这里设置了注册表SOFTWARE\Microsoft\WindowsNT\CurrentVe...]]></description><category></category></item><item><title><![CDATA[Practical Malware Analysis Lab9]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88585019</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88585019</guid><author>qq_35713009</author><pubDate>Fri, 15 Mar 2019 23:42:29 +0800</pubDate><description><![CDATA[Lab9-1

不走程序直接逆。标注完的主函数如下


int __cdecl main(int argc, const char **argv, const char **envp)
{
  char port; // [sp+10h] [bp-181Ch]@31
  char ups; // [sp+410h] [bp-141Ch]@31
  char url; // [sp+810h] [b...]]></description><category></category></item><item><title><![CDATA[notepad hook]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88537300</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88537300</guid><author>qq_35713009</author><pubDate>Wed, 13 Mar 2019 17:33:00 +0800</pubDate><description><![CDATA[0x00前言

昨天花了半天写了个四不像的玩意儿，本来打算以恶意代码的方式去写，但今天不怎么想完 善功能了，所以全局hook和自删除之类的就没有了(其实是debug太麻烦。)，结果就是这 个程序很沙雕，你必须先打开记事本再运行它才行。不过获取记事本信息是没什么问题的。


0x01行为

完全是想到什么写什么，所以有些功能完全没发挥作用呢。。 PS:这里所有生成的文件都存放在你的C:/User...]]></description><category></category></item><item><title><![CDATA[WinRAR去广告]]></title><link>https://blog.youkuaiyun.com/qq_35713009/article/details/88397460</link><guid>https://blog.youkuaiyun.com/qq_35713009/article/details/88397460</guid><author>qq_35713009</author><pubDate>Mon, 11 Mar 2019 16:47:14 +0800</pubDate><description><![CDATA[下载最新版本WinRAR，结果一打开就有广告，说好的体验30天呢。可能是之前装过的WinRAR还残留有注册表信息吧，广告如下：



打开x32dbg，附加到WinRAR进程，在DestoryWindow这个API下断点，在调试器的命令行输入bp DestoryWindow即可，点击广告窗口的关闭按钮，在API中断下，栈回溯返回地址就能找到广告窗口的消息处理过程。在IDA中打开，找到对应广告窗口的...]]></description><category></category></item></channel></rss>