摘要: 程序流程比较清晰,输入的name先进行位数判断,再进行主要判断sub_401380函数: if ( v4 - 1 < 3 || v4 - 1 > 20 ) // name判断 { sub_411A90(aBadName); result = -1; } else { sub_411A90(aEnte 阅读全文
posted @ 2020-04-21 13:04 jentle 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 1. CreateRemoteThread 本文参考前辈的文章https://www.cnblogs.com/wf751620780/,对原理有了很大了解 首先CreateRemoteThread函数的原型如下,它很像CreateThread函数。不同的是,前者是远程创建线程,后者是在自己的进程下创 阅读全文
posted @ 2020-04-18 21:18 jentle 阅读(2137) 评论(0) 推荐(0) 编辑
摘要: 静态修改PE的IID增加DLL比较繁琐,而且直接操作十六进制数据容易出错。另一方面如果程序有检查是否被dll注入的机制也会报错,那么可以在创建进程初期就在内存里面,对目标的程序注入DLL,原理和在文件内操作都是一样的。 找一个64位的程序作为目标,看一下导入表结构: 然后目标是插入一个无用的DLL让 阅读全文
posted @ 2020-04-17 16:06 jentle 阅读(743) 评论(0) 推荐(0) 编辑
摘要: X86和X87汇编指令大全(有注释) 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX, 阅读全文
posted @ 2020-04-14 18:09 jentle 阅读(2042) 评论(0) 推荐(0) 编辑
摘要: 控制流平坦化着实很头大,还好现在遇到的还没有特别难的题目。 程序是64位elf文件,提示的信息也够多了: 定位到关键函数就是一堆ollvm操作,先放个主函数方便记录: 1 int __cdecl main(int argc, const char **argv, const char **envp) 阅读全文
posted @ 2020-04-09 13:42 jentle 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 虚假的APK,权当我学习python了: net程序一个: dnspy分析源码: 主逻辑就三,先读取自己,然后search关键字符串得到最后输出 using System; using System.Diagnostics; using System.IO; using System.Net.Soc 阅读全文
posted @ 2020-04-09 11:01 jentle 阅读(348) 评论(0) 推荐(0) 编辑
摘要: IAThook的原理学习帖子有很多,我需要复现一下几个基本概念先: 1. PE结构下IID数组相关指针(放假太久都快忘了各个指针位置了) 这个之前我写过简单的分析工具,参考:https://bbs.pediy.com/thread-255851.htm 结构总览: 2. 主要思路: 虽然r3层的钩子 阅读全文
posted @ 2020-04-08 16:37 jentle 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: hook的分类 可以分为两块,第一块是在 Ring3 层的 Hook,俗称应用层 Hook 技术,另外一块自然是在 Ring0 层得 Hook,俗称为内核层 Hook 技术 (图片来自网络) 消息 Hook 是通过 SetWindowsHookEx 可以实现将自己的钩子插入到钩子链的最前端,而对于发 阅读全文
posted @ 2020-04-07 17:06 jentle 阅读(710) 评论(0) 推荐(1) 编辑
摘要: (拿来对比一下) 1. 这题是net程序,下载是一个安装程序,我以为会是个猛题,奈何关键函数暴露了,有点浪费。 点击解密,图片不仅更换了还出现一串乱码,光看这界面真的很容易想到是什么MFC(我还想着去控件找button按钮): dnspy挂载程序,找到关键的控件函数: 动态调试就能拿到flag: 有 阅读全文
posted @ 2020-04-07 14:14 jentle 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 打开PE查看工具被唬到了,以为是什么猛壳,那么多区段,实则只是linux下的gcc编译器整出来的,害: 完事先看程序结构,啥啊,不就是简单的两个函数处理大小写字母和符号,然后后硬编码字符串比较,太憨憨了: int func() { int result; // eax int v1; // [esp 阅读全文
posted @ 2020-04-06 16:00 jentle 阅读(1142) 评论(0) 推荐(0) 编辑