编程技术
「已注销」
这个作者很懒,什么都没留下…
展开
-
leecode-试水
1.两数之和描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。暴力循环没啥好说的,最容易想到的逻辑,时间复杂度O(n2)双指针排序后,利用双指针向中间逼近,知道找到目标值,时间复杂度O(nlogn)class Solution {public: vector<int> two...原创 2019-06-05 18:47:46 · 343 阅读 · 0 评论 -
dll注入系列——内存加载
0x0废话dll注入的方式和程序正常加载dll模块的本质上是相同的,无非是通过导入表加载,利用LoadLibrary加载和一些系统机制强制加载。要使程序动态加载一个dll文件,也就是执行程序原本没有的代码,势必要改变程序的控制流,创建一个新的线程可以做到这件事。最简单的远线程注入就是利用CreateRemoteThread和LoadLibrary两个API来完成了。关于注入的介绍及两种经...原创 2019-04-11 01:52:43 · 5748 阅读 · 0 评论 -
dll注入系列——傀儡进程
0x0介绍之前说过,要动态注入dll文件,则需要执行程序中本身没有的加载操作,必须改变控制流,除了创建线程外,还可以劫持控制流。这与二进制漏洞利用比较类似,我们向程序写入一段shellcode,然后改变线程上下文,让其去执行shellcode,这段shellcode完成LoadLibrary的操作,就完成了dll注入。傀儡进程的本质是利用其他进程空间来执行我们的写入代码,它的实现并不困难...原创 2019-04-11 19:16:12 · 1034 阅读 · 1 评论 -
使用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 · 958 阅读 · 0 评论 -
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 · 8107 阅读 · 4 评论 -
notepad hook
0x00前言昨天花了半天写了个四不像的玩意儿,本来打算以恶意代码的方式去写,但今天不怎么想完 善功能了,所以全局hook和自删除之类的就没有了(其实是debug太麻烦。),结果就是这 个程序很沙雕,你必须先打开记事本再运行它才行。不过获取记事本信息是没什么问题的。0x01行为完全是想到什么写什么,所以有些功能完全没发挥作用呢。。 PS:这里所有生成的文件都存放在你的C:/User...原创 2019-03-13 17:33:00 · 563 阅读 · 0 评论 -
Windows hook技术
hook即钩子技术,它钩取某个特定的事件,然后在默认的事件处理之外,进行一些自定义的处理,感觉这种行为有点类似插桩。。消息hook微软为Windows提供了几个消息hook的API,主要是以下三个: SetWindowsHookEx UnhookWindowsHookEx CallNextHookEx 这种hook技术是对Windows消息进行钩取。众所周知,...原创 2019-02-25 21:50:13 · 422 阅读 · 0 评论 -
操作注册表
010Editor是一款不错的十六进制编辑器,特别是能标注各种文件结构。010会不定时的进行网络验证,虽然某破解版已经爆破掉了网络验证,但隔一段时间它总是又需要验证序列号,且必须联网,需要验证的状态存储在注册表中,每次都得手动删除十分麻烦,于是写了点代码来完成这项工作,其实就是对注册表的相关API进行调用。#include <Windows.h>#include <cst...原创 2019-02-27 22:27:37 · 286 阅读 · 0 评论 -
tiny_stl: :allocator之alloc
在STL中,对空间适配器allocator的操作分为两个部分,其中一个部分是alloc类提供的接口,分别负责内存配置(alloc: :allocate)和内存释放(alloc: :deallocate)。设计需求:向堆申请空间需要考虑多线程状态(该问题比较复杂,这里不考虑)需要考虑内存不足时的措施需要考虑小型区块造成的内存碎片问题向堆申请空间可以简单的使用malloc函数来完成,所...原创 2019-01-23 00:09:10 · 325 阅读 · 0 评论 -
tiny_stl: :allocator——construct
空间适配器allocator有两部分操作,一个是空间配置和释放,另一个就是构造和析构。相比复杂的内存分配,构造器的实现要轻松得多,因为它本质上完成了构造对象的一些对接工作,并未真正的碰到内存数据。构造器construct()只做了一件十分简单的事,即将指针和值关联起来,值存在于一个地址空间,指针是我们用类型关键字声明的,construct只需要让指针指向这个空间就可以了,这个操作可以由plac...原创 2019-02-01 18:55:46 · 314 阅读 · 0 评论 -
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 · 251 阅读 · 0 评论 -
dll注入系列——简单介绍
概念dll注入是一种将Windows动态链接库注入到目标进程中的技术,具体的说,就是将dll文件加载到一个进程的虚拟地址空间中。对某个进程进行dll注入,也就意味着dll模块与该进程共用一个进程空间,则这个dll文件就有了操纵这个进程空间的能力,以达到执行dll模块中的代码修改进程数据的能力。dll注入技术在逆向工程,病毒,外挂,调试等技术领域都有广泛的应用,它也是WindowsAPI ho...原创 2019-01-31 20:52:32 · 2500 阅读 · 0 评论