随笔分类 -  pc逆向

wp,收集的资料博客等
摘要:这将是一个进阶的系列,当全部完成的时候笔者会弄成一个git手册供自己以及有需要的人查看。在实际对抗中,可能有些别样的代码的Anti结构似曾相识,或许是一个结构体,或许是一段赋值,但是在找这些结构体的时候经常需要东查西查,所以,here we go~~ 可以关注一下gzh TIPFactory情报工厂 阅读全文
posted @ 2022-10-24 21:06 jentle 阅读(914) 评论(0) 推荐(0)
摘要:直接从官网可以下载build之后的版本,复制文件夹内所有文件到ida安装目录下的插件目录即可: 默认热键是ctrl+d ,如果热键冲突自己改一下cfg文件里面的热键即可。 先来个简单的messagebox看一下效果:1.源码: 2. F5: 3. Ret: 貌似效果还可以。 加点局部变量和全局变量: 阅读全文
posted @ 2021-01-04 15:05 jentle 阅读(1189) 评论(0) 推荐(0)
摘要:gcc编译,无壳: 看一下程序结构: 程序有函数分析错误,堆栈的原因,我就没改它了,因为汇编也简单,上手就撸: 第一个关键块: 4017DD就是一个字符串拷贝函数,动态可见,然后4017EB是第一个无用函数,看一下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 阅读全文
posted @ 2020-05-10 21:34 jentle 阅读(886) 评论(0) 推荐(0)
摘要:解题速度太慢了,导致下午开始肝ta的时候,分数不过200了。 终端程序,无壳,gcc编译: 复制完vmtable之后进入调度算法: 1 2 3 4 5 6 7 8 9 10 int __cdecl main(int argc, const char **argv, const char **envp 阅读全文
posted @ 2020-05-10 18:40 jentle 阅读(1043) 评论(6) 推荐(0)
摘要:写在前面: 这个病毒作者已经公开了私钥,解密工具也制作出来了,我就当是学习逆向对整个病毒进行分析一下。 虚拟机环境:win10x64 网络状态:飞行模式(因为不知道会不会内网感染) 病毒样本放在百度网盘了,在后面有下载链接。 勒索复现: 下载之后有三个文件,一开始我以为运行exe就会完蛋,但是想的太 阅读全文
posted @ 2020-05-04 14:31 jentle 阅读(667) 评论(0) 推荐(0)
摘要:定位到关键函数并不困难 signed __int64 sub_140001610() { signed __int64 v0; // rax _QWORD *v1; // rax const CHAR *v2; // r11 __int64 v3; // r10 __int64 v4; // r9 阅读全文
posted @ 2020-04-28 19:18 jentle 阅读(372) 评论(0) 推荐(0)
摘要:最后十分钟才刷新看到有第三题,已经来不及了,记一下前两题。 这两题都是简单的异或,但是就是纯看反汇编函数有点迷,好在问题不大。 第一题: 运行没有啥东西: 程序也没加壳啥的,拖到ida就是一顿分析: int __cdecl main(int argc, const char **argv, cons 阅读全文
posted @ 2020-04-25 21:18 jentle 阅读(986) 评论(0) 推荐(0)
摘要:程序流程比较清晰,输入的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 阅读(419) 评论(0) 推荐(0)
摘要:X86和X87汇编指令大全(有注释) 一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX, 阅读全文
posted @ 2020-04-14 18:09 jentle 阅读(2380) 评论(0) 推荐(0)
摘要:控制流平坦化着实很头大,还好现在遇到的还没有特别难的题目。 程序是64位elf文件,提示的信息也够多了: 定位到关键函数就是一堆ollvm操作,先放个主函数方便记录: 1 int __cdecl main(int argc, const char **argv, const char **envp) 阅读全文
posted @ 2020-04-09 13:42 jentle 阅读(703) 评论(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 阅读(397) 评论(0) 推荐(0)
摘要:IAThook的原理学习帖子有很多,我需要复现一下几个基本概念先: 1. PE结构下IID数组相关指针(放假太久都快忘了各个指针位置了) 这个之前我写过简单的分析工具,参考:https://bbs.pediy.com/thread-255851.htm 结构总览: 2. 主要思路: 虽然r3层的钩子 阅读全文
posted @ 2020-04-08 16:37 jentle 阅读(1137) 评论(0) 推荐(0)
摘要:(拿来对比一下) 1. 这题是net程序,下载是一个安装程序,我以为会是个猛题,奈何关键函数暴露了,有点浪费。 点击解密,图片不仅更换了还出现一串乱码,光看这界面真的很容易想到是什么MFC(我还想着去控件找button按钮): dnspy挂载程序,找到关键的控件函数: 动态调试就能拿到flag: 有 阅读全文
posted @ 2020-04-07 14:14 jentle 阅读(485) 评论(0) 推荐(0)
摘要:打开PE查看工具被唬到了,以为是什么猛壳,那么多区段,实则只是linux下的gcc编译器整出来的,害: 完事先看程序结构,啥啊,不就是简单的两个函数处理大小写字母和符号,然后后硬编码字符串比较,太憨憨了: int func() { int result; // eax int v1; // [esp 阅读全文
posted @ 2020-04-06 16:00 jentle 阅读(1191) 评论(0) 推荐(0)
摘要:这道题是魔改了base64替换表,同时在进行最后的比较的时候也有一个坑,就是大小写互换的问题。 首先程序没有任何壳,也没啥保护机制,打开就能看到主要关系代换: 程序逻辑还是比较清晰的,sub_401000就是对原始替换表的处理函数,可以动态转储出来: 然后就是明显的base64加密函数,三个一组进行 阅读全文
posted @ 2020-04-06 11:06 jentle 阅读(765) 评论(0) 推荐(0)
摘要:一个迷宫题目,查壳发现是upx3.0+的壳,用upx shell脱完之后,再看区段数量感觉有点不对: 打开之后看到代码果然有 没有被反汇编的部分: 由于题目就是Maze,迷宫题目,那么问题就在找到迷宫,起始点,控制方向的相关函数,迷宫好找,就在内存里面: 提取出来,简单排列一下就能得到: + F 起 阅读全文
posted @ 2020-04-05 21:48 jentle 阅读(349) 评论(0) 推荐(0)