摘要: 最近逆了一下WannaCry病毒,发现里边加载动态库是自己实现的,所以我也学着实现了一下。 0x001 读取动态库到内存 首先,需要将目标动态库读取的到内存,然后再进行下一步工作。 0x002 在目标加载地址处申请内存空间 实现LoadLirbrary其实就是将Dll文件由文件格式映射为内存格式,我 阅读全文
posted @ 2017-05-21 23:36 Toring 阅读(918) 评论(0) 推荐(1) 编辑
摘要: Win7下64位扫雷逆向以及辅助制作 阅读全文
posted @ 2017-05-06 20:32 Toring 阅读(3729) 评论(0) 推荐(0) 编辑
摘要: 我安装的环境是Qt_5_8_0_MSVC2015_64bit,或许不同环境下编译有所不同,我就我自己的安装环境进行叙述一下吧。 1.添加一个新项目,作为静态库项目 2.选择静态库,并完成就可以了 这时候发现生成的项目是个空项目,需要我们自己进行添加.h和.cpp文件,我们建立两个文件mylib.h和 阅读全文
posted @ 2017-04-24 23:16 Toring 阅读(1208) 评论(0) 推荐(0) 编辑
摘要: 1.由于地址长度为64位,因此CALL指令把RSP(堆栈指针)寄存器的值减去8. 2.第一批传递子程序的四个参数依次存放于寄存器RCX、RDX、R8、R9。因此,如果只传递一个参数就会放到RCX寄存器中。如果还有第二参数就会将其放入RDX寄存器中,其他参数从右至左入栈。 3.长度不足64位的参数不进 阅读全文
posted @ 2017-04-08 19:30 Toring 阅读(1191) 评论(0) 推荐(1) 编辑
摘要: Hot Patch钩子,多线程Inline Hook解决方法 阅读全文
posted @ 2017-04-04 10:59 Toring 阅读(3131) 评论(0) 推荐(0) 编辑
摘要: x86 x64平台下调用约定 阅读全文
posted @ 2017-03-31 10:38 Toring 阅读(3830) 评论(0) 推荐(2) 编辑
摘要: Sublime Text3是一个很不错的编辑器,作为一个强大的编辑器相比Notepad++来说界面要好看的多。正巧我需要一款小巧的汇编编译器,于是我就想将其打造为一个汇编编译器来用,这里给大家分享一下。 1.首先下载并安装MASM32到本机,并在环境变量添加以下变量: 变量 值 include E: 阅读全文
posted @ 2017-03-20 20:29 Toring 阅读(2755) 评论(0) 推荐(0) 编辑
摘要: 为了保护自己的程序不被破译等,很多软件使用了反调试技术来阻止逆向程序员对自己程序进行爆破,这同时也催生了另一种技术--反调试破解技术的出现。反调试技术分为静态反调试技术和动态反调试技术。相比来说静态反调试技术更容易实现,破解一般也只需要一次,我们这次就先谈一下静态反调试技术,以及对应的破解之道。 1 阅读全文
posted @ 2017-03-13 18:42 Toring 阅读(999) 评论(0) 推荐(1) 编辑
摘要: 在说TLS反调试技术之前,我们先看一下TLS技术是什么。 TLS是各线程的独立的数据存储空间,使用TLS技术可在线程内部独立使用或者修改进程的全局数据或是静态数据,就像对待自身的局部变量一样。TLS回调函数常用于反调试,因为TLS回调函数运行会先于EP代码执行。 若在编程中使用了TLS功能,PE头文 阅读全文
posted @ 2017-03-12 17:20 Toring 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 最近看了《逆向工程核心原理》,其中第25.4节讲了更改PE文件让目标文件加载我们的动态库。现在做一下完整介绍。 PE文件的导入DLL信息存储在IDT中,于是我们只需将DLL加到目标PE文件的IDT中,这时我们得先看一下IDT的空间大小。 1.查看IDT: 首先用PEView查看目标程序,看IMPOR 阅读全文
posted @ 2017-03-08 19:46 Toring 阅读(446) 评论(0) 推荐(0) 编辑