自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

40KO的博客

可怜的逆向菜鸟;膜dalao的安全萌新。

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 leecode-试水

1.两数之和描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。暴力循环没啥好说的,最容易想到的逻辑,时间复杂度O(n2)双指针排序后,利用双指针向中间逼近,知道找到目标值,时间复杂度O(nlogn)class Solution {public: vector<int> two...

2019-06-05 18:47:46 297

原创 两个UAF

HITCON-training-lab 10 hacknote本题为最简单的UAF利用add note0,note1后chunk使用情况0x80b4000 FASTBIN { //note0 prev_size = 0, size = 17, fd = 0x804865b <print_note_content>, //put bk...

2019-06-04 23:59:15 597

原创 asis2016-b00ks

off-by-one本题主要是堆上面的off-by-one漏洞利用。off-by-one的成因主要是输入边界考虑不周导致的单字节溢出。一种利用方式是通过修改chunk大小造成结构块之间的重叠,本题就是这种利用方式。程序分析__int64 __fastcall main(__int64 a1, char **a2, char **a3){ __int64 savedreg...

2019-06-02 21:40:02 712

原创 强网杯-JustRe

Windows32位程序,无壳,编译器版本还算高。主函数除了CFG有点诡异外,流程十分简单。进入第一个check函数,可以看到大量SSE指令,前面一些基本的判断很不好看,直接调试看结果.text:00401682 060 movd xmm0, eax.text:00401686 060 pshufd xmm5,...

2019-05-28 02:36:42 1687

原创 angr-example(解CTF题目)

0x0废话emmm,总之就是官方给的examples啦。持续更新...链接:https://docs.angr.io/examples0x1defcamp_r100angr在CTF中最常见的使用方式就是利用符号执行来探索路径。来看主函数可以看到本题中只需要达到0x400844这个地址,我们的输入就是正确的flag,即我们打印到达0x400844这个地址的state的标准...

2019-05-03 00:17:56 2808 1

翻译 angr-Core Concepts(翻译)

官方文档原文:https://docs.angr.io/core-concepts注:该翻译纯为自嗨loading a binary在之前,加载/bin/true时,你只看到了angr最基本的加载工具,在接下来,我们会在没有动态库的情况下再次加载它。你同样会看到project.loader和一些它能做到的事。现在,我们将深入讨论这些接口的细微差别以及它们能提供的信息。我们简要地提到...

2019-05-02 15:32:15 545

翻译 Symbolic Execution for Software Testing(翻译)

原文:https://people.eecs.berkeley.edu/~ksen/papers/cacm13.pdf注:该翻译纯属自嗨0.介绍符号执行在近几年获得了大量关注,它作为一种很有效率的技术用于产生高覆盖率的测试组件和找出复杂软件应用的深层错误。在符号执行背后的关键理念在三十多年前就被提出了,由于约束可满足性的显著发展,以及结合了具体符号执行的更具扩展性的动态方法,它到最近才...

2019-04-25 15:53:16 853 1

原创 DDCTF2019-Writeup

目录WindowsReverse1WindowsReverse2confusedobfuscating macros黑盒破解2北京地铁MulTzor[PWN] strikeWireshark联盟决策大会滴~Web签到题Upload-IMG大吉大利,今晚吃鸡~Breaking LEMWindowsReverse1比较基础的一...

2019-04-19 11:31:32 4785

原创 dll注入系列——傀儡进程

0x0介绍之前说过,要动态注入dll文件,则需要执行程序中本身没有的加载操作,必须改变控制流,除了创建线程外,还可以劫持控制流。这与二进制漏洞利用比较类似,我们向程序写入一段shellcode,然后改变线程上下文,让其去执行shellcode,这段shellcode完成LoadLibrary的操作,就完成了dll注入。傀儡进程的本质是利用其他进程空间来执行我们的写入代码,它的实现并不困难...

2019-04-11 19:16:12 961 1

原创 dll注入系列——内存加载

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

2019-04-11 01:52:43 5585

原创 分析wannacry——启动器

废话两年过去了,两年前还啥也不会,如今来看看这玩意儿了。逆向分析主函数如下,当然,这里所有函数都已经过分析而标注。int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ char *Str; // ST1C_4@1 ...

2019-04-10 01:57:18 265

原创 2019西湖论剑re

easyCpp本来想静态看出来,看不了。。。IDA调试插件崩了,无奈得使用gdb。首先随便输⼊16个数字gdb-peda$ rStarting program: /mnt/c/CTF/reverse/xihu/easyCpp_o100 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45然后下断看以下函数做了什么最下方begin的返回...

2019-04-08 06:53:31 936

原创 使用Miasm重构CFG

0x00前言原文:https://miasm.re/blog/2016/01/27/re150.htmlgithub:https://github.com/cea-sec/miasmreverseMe:http://www.grehack.fr/data/grehack2015/re/Grehack%202015%20-%20Reverse%20-%20150.zip主要是对以上...

2019-03-31 18:05:21 882

原创 KCTF2019 变形金刚

一道安卓逆向,由于没找到关键函数,比赛时没搞出来,复现一下对APK进行反编译,结果十分诡异,看起来就像是对用户名进行了字符串反转,但测试后并非这样public class MainActivity extends AppCompiatActivity { class MyHandler extends Handler { WeakReference mWeakRe...

2019-03-29 07:21:41 439

翻译 Z3Py教程(翻译)

原文: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 APIz3是Microsoft Research开发的高性能的定理证明工具。z3...

2019-03-22 16:11:04 7943 4

原创 分析熊猫烧香

0x00 前言总之就是分析了下这个病毒吧,毕竟当年还是影响很大的,分析起来也算友好,也算是熟悉熟悉病毒的分析过程。0x01 行为分析仅从PE文件上获得的信息看不出什么名堂来,因为它是Delphi写的,有许多乱七八糟的字符串,导入表也很多,看起来啥功能都有。所以还是得用监视器来看看它的运行情况(Win7运行后还真中毒了。。。)过滤一下文件操作可以看到它多次操作了C:...

2019-03-21 20:05:15 621 1

原创 Practice Malware Analysis Lab11

Lab11-1感觉这个Gina完全过时了。。Lab11-2Lab11-2.ini解密得,交叉引用发现该dll文件对send函数进行了inlinehook,hook代码new_send代码如下可以看到,所有发送到邮箱的数据都将发送到中存在导出函数installer这里设置了注册表SOFTWARE\Microsoft\WindowsNT\CurrentVe...

2019-03-16 17:39:26 214

原创 Practical Malware Analysis Lab9

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...

2019-03-15 23:42:29 583

原创 notepad hook

0x00前言昨天花了半天写了个四不像的玩意儿,本来打算以恶意代码的方式去写,但今天不怎么想完 善功能了,所以全局hook和自删除之类的就没有了(其实是debug太麻烦。),结果就是这 个程序很沙雕,你必须先打开记事本再运行它才行。不过获取记事本信息是没什么问题的。0x01行为完全是想到什么写什么,所以有些功能完全没发挥作用呢。。 PS:这里所有生成的文件都存放在你的C:/User...

2019-03-13 17:33:00 519

原创 WinRAR去广告

下载最新版本WinRAR,结果一打开就有广告,说好的体验30天呢。可能是之前装过的WinRAR还残留有注册表信息吧,广告如下:打开x32dbg,附加到WinRAR进程,在DestoryWindow这个API下断点,在调试器的命令行输入bp DestoryWindow即可,点击广告窗口的关闭按钮,在API中断下,栈回溯返回地址就能找到广告窗口的消息处理过程。在IDA中打开,找到对应广告窗口的...

2019-03-11 16:47:14 1732

原创 Practical Malware Analysis Lab7

前言给出的恶意程序都是十分简单的类型,几乎没有阻止分析的手段,且IDA的反编译结果可读性十分好,只能说是用来了解一波恶意代码编程的方法和思路了。Lab7-1主要是Windows服务程序,可参考以下资料了解windows服务1.http://soft.chinabyte.com/os/368/12251368.shtml2.https://onew.me/2018/10/08/w...

2019-03-11 10:00:09 574 2

原创 bugku逆向&安卓

入门逆向嗯。Easy_vb嗯。Easy_re嗯。游戏过关flag通过硬编码生成,爆破关键跳即可Timer安卓逆向,看样子和上题类似,直接爆破判断点即可,不过要算出一个关键值根据程序逻辑可以直接算出最终的f320k的值,代码如下public static void main(String[] args) { int...

2019-03-08 19:57:35 864

原创 JarvisOJ——病毒数据分析

0x00前言这是一道恶意代码分析的题目,其实特征不太像病毒啦。。。整个流程分析下来,还是有不少收获,虽然最后卡在了某个点,但程序的所有功能和流程都分析完成了(因为不复杂,T__T)。在这里,我就把它当作真正的恶意程序来分析一番。0x01信息收集一开始我们没有必要直接去逆向这个程序,而是先收集相关信息,这样能够更轻松的完成逆向分析的步骤。0.首先将它丢进沙箱可以看到给出的评估...

2019-03-07 20:07:04 427 2

原创 hgame week3——babytcache

一道tcache的题目,完全不知道tcache是啥,结果看了一上午tcache的东西,大概是分配优先级比fastbin还高的fastbin吧。。主要区别是tcache的next直接指向了chunk的mem,fastbin的fd指向的是chunk的首地址,然后分配和归还内存的优先级最高。思路利用tcache poisoning和tcache dup两种利用方式来完成任意地址写,用来泄漏sys...

2019-03-07 09:34:33 235

原创 reversing.kr(下)

AutoHotkey1运行文件很常规的对话框,貌似用了某种脚本语言文件加了upx壳,脱之。脱壳后运行失败不太清除为啥,在IDA中找到"EXE corrupted"字符串,可以看到一个判断当然上图是我已经标注后的,很明显,sub_4508c7函数里进行了某种检测,进入该函数,反编译结果如下int __thiscall sub_4508C7(FILE **this, ...

2019-03-03 19:35:44 200

原创 操作注册表

010Editor是一款不错的十六进制编辑器,特别是能标注各种文件结构。010会不定时的进行网络验证,虽然某破解版已经爆破掉了网络验证,但隔一段时间它总是又需要验证序列号,且必须联网,需要验证的状态存储在注册表中,每次都得手动删除十分麻烦,于是写了点代码来完成这项工作,其实就是对注册表的相关API进行调用。#include &lt;Windows.h&gt;#include &lt;cst...

2019-02-27 22:27:37 211

原创 Windows hook技术

hook即钩子技术,它钩取某个特定的事件,然后在默认的事件处理之外,进行一些自定义的处理,感觉这种行为有点类似插桩。。消息hook微软为Windows提供了几个消息hook的API,主要是以下三个: SetWindowsHookEx UnhookWindowsHookEx CallNextHookEx 这种hook技术是对Windows消息进行钩取。众所周知,...

2019-02-25 21:50:13 385

原创 APK文件 | Dalvik虚拟机与Smali语法

APK结构apk文件从文件结构上来讲,是zip压缩包格式,可以直接通过解压工具打开,例如:META-INF目录这个文件夹下存放的是签名信息。res目录这个文件夹下存放的是app需要的资源文件,如图片、布局等。lib目录这个文件夹下存放的是应用的依赖库,是以.so的后缀名结尾的文件。根据硬件的CPU架构,可分为4种:ARM、ARM-V7、MIPS和X86,所以通常存在...

2019-02-25 19:58:54 346

原创 pediy2016 CM2

整个程序大致流程:(所有重要字符串都已经过RC6解密处理,达到加密的效果)解密出fnGetRegSnToVerify和fnCalcUserInputRegSnAfterEnc两个函数名并注册为lua函数 获取输入并进行RC6解密处理 解密出lua编译后的脚本并执行该脚本 在该脚本中调用了fnGetRegSnToVerify和fnCalcUserInputRegSnAfterEnc函数 ...

2019-02-24 10:41:33 237

原创 pediy2016 CM29

运行程序,传统32位窗口程序要找到程序的输入点,考虑找MessageBoxA,GetWindowText等API调用点,由于没有进行api隐藏,可以轻易找到输入点。反编译结果很清晰,可以看到我们的输入转变为ascii进行了求和,输入长度为8,然后调用sub_401B0A函数对其进行检查,进入该函数反编译结果同样清晰,它看起来是个switch case结构,不过这本质上是个障...

2019-02-24 10:40:46 156

原创 pwnable.tw——hacknote

很少做pwn,之前也只懂点rop,现在跟着练练pwn的堆利用吧,pwnable.tw上的一题hacknote,比较纯粹的uaf题目,还好不久前看了点glibc内存管理的东西,可以派上用场了。逆向很轻松,那为什么不直接给源码呢。。。根据add_note函数很容易了解note的结构体特征unsigned int add_node(){ note *v0; // ebx signed...

2019-02-24 10:39:50 808

原创 reversing.kr(上)

EasyCrack找到关键验证函数如下显然,这是个明文比较,一眼就能看到结果。EasyKeygen题目描述:Find the Name when the Serial is 5B134977135E7D13主函数中可以找到序列号的生成算法,逻辑很清晰,就是依次异或3个密钥随手写个脚本就可以解辣s = '5B134977135E7D13's = s.dec...

2019-02-15 21:12:19 339

原创 tiny_stl: :allocator——construct

空间适配器allocator有两部分操作,一个是空间配置和释放,另一个就是构造和析构。相比复杂的内存分配,构造器的实现要轻松得多,因为它本质上完成了构造对象的一些对接工作,并未真正的碰到内存数据。构造器construct()只做了一件十分简单的事,即将指针和值关联起来,值存在于一个地址空间,指针是我们用类型关键字声明的,construct只需要让指针指向这个空间就可以了,这个操作可以由plac...

2019-02-01 18:55:46 280

原创 tiny_stl: :type_traits

traits编程是对实体特性的萃取,这里的特性,可以指属性或行为特征。顾名思义,type_traits就是对类型的特性萃取,对每个C++类型,都有如下几种重要特性:has_trivial_default_constructor(默认构造函数) has_trivial_copy_constructor(拷贝构造函数) has_trivial_assignment_operator(赋值运算符...

2019-02-01 16:20:42 238

原创 dll注入系列——简单介绍

概念dll注入是一种将Windows动态链接库注入到目标进程中的技术,具体的说,就是将dll文件加载到一个进程的虚拟地址空间中。对某个进程进行dll注入,也就意味着dll模块与该进程共用一个进程空间,则这个dll文件就有了操纵这个进程空间的能力,以达到执行dll模块中的代码修改进程数据的能力。dll注入技术在逆向工程,病毒,外挂,调试等技术领域都有广泛的应用,它也是WindowsAPI ho...

2019-01-31 20:52:32 2419

原创 安恒月赛杯9月逆向

NewDriver本题主要涉及base64加密和RC4加密的知识 拿到一个PE文件,运行之后是个控制台程序,简单的要求输入flag,然后判断是否正确,无壳。用32位IDA打开,找到main函数,由于栈帧不平衡无法反编译,可以修改堆栈指针使其平衡然后进行反编译,不过该题主函数逻辑不复杂,可以直接看汇编代码。直接来到开始输入的指令位置显然,var_38便是用来存储输入的变量...

2019-01-29 14:05:33 729

原创 南邮平台逆向

前面几题太基础就不写了。WxtVM1IDA打开直接查看主函数,可以看到flag的长度为24,经过一个函数调用后,与密文进行对比。那么关键点就是sub_4005B6函数了,内部是这样的,这个流程说明它是个虚拟机,字节码存在byte_6010C0中,一共有15000个字节,3个字节为一条指令,第1个字节决定操作符,第2个字节决定flag的偏移,第3个字节作为值与flag对应偏移...

2019-01-23 01:03:17 282

原创 pediy2016 CM7

运行效果动态调试程序,直接运行后触发异常查看堆栈,在不远处找到SEH处理程序位置,并在函数内部下断选择yes让程序来进行异常处理,然后会断在SEH内部。接着进行动态调试,直到找到关键代码处。这里创建了4个线程,每个进去看一看,经测试,另外的线程是用来反调试的,要patch掉。在第一个函数下断,单步跟踪,首先输出了"请输入验证码",然后以另一个函数地址作为参...

2019-01-23 00:55:50 131

原创 加密与解密——虚拟机的设计

虚拟机的设计这里说的虚拟机是一种解释执行的系统,类似现在许多解释执行的语言,它可以将自定义的中间字节码当作机器码来执行,仿佛就是在一台机器上执行的一样。而虚拟机保护技术就是基于这样的思想,软件作者通过设计一个虚拟机来执行关键算法和代码,这样,破解人员想要还原出算法,就必须要先对这个解释器进行全方位的分析,最后找出自定义的指令集,才能还原出伪汇编代码,这样使得逆向分析的工作量大大增加,再配合上诸...

2019-01-23 00:35:15 1162

原创 anti-debug0——结构

注:这里的反调试技术主要针对Windows平台TEBTEB指线程环境块,它是一个结构体,包含进程中运行线程的各种信息,每个线程中都有一个对应的TEB结构体。由于这个结构体实在太复杂,这里只说几个跟调试有关的部分。+0x30 ProcessEnvironmentBlock它是指向PEB结构体的指针,PEB是进程控制块,每个进程都有一个对应的PEB+0x00 Nt...

2019-01-23 00:31:49 196

王爽汇编工具

王爽汇编工具,包括编辑器,编译器,连接器等。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-12-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除