whklhhhh的博客

一只逆向小菜鸡

排序:
默认
按更新时间
按访问量

180621 逆向-SCTF(3)

crackme2 java层调用了native函数,要求返回值为15 在so中动态注册了tryit函数,但函数体为乱码,估计在init中动态解密 于是上动态调试,发现解密后的函数通过fork创建了子进程来执行计算,父进程则逐字符校验 校验的东西是一个链表,仿照计算通过IDC即可抓出...

2018-06-22 14:27:49

阅读数:3

评论数:0

180620 逆向-SCTF(2)

Script In Script 下载下来文件,观察js发现有动态解密 将eval改为console.log后即可在console中抓到解码后的函数 也可在click函数中的r处下断,单步跟进后逐个查看函数 function a(r) { return D(~r, 1) } ...

2018-06-20 23:16:52

阅读数:8

评论数:0

180619 逆向-SCTF(1)

simple 反编译发现动态解密了assets中的zip文件,由于解密的dex会落地因此可以直接运行后从文件目录中pull出来 再反编译这个load.dex,onClick函数中接收了24个字符并以每8个字符一组构造Square,最后调用其中的check函数要求全部为True 构造方...

2018-06-20 22:52:02

阅读数:9

评论数:0

180615 开发-操作系统实验(进程调度)

实验一 进程调度 一、实验目的 多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。 二、实验内容 1. 优先权法、轮转法 简化假设 1) 进程为计算型...

2018-06-15 11:09:21

阅读数:15

评论数:0

180531 逆向-SUCTF(Enigma)

Enigma 恩尼格码是一个由德国人亚瑟·斯雪比尤斯发明的密码机,开创了自动化加密的先河。简单来说,恩尼格码密码机利用三个转子对字母顺序进行偏移,相当于三重维吉尼亚。除此以外还有一块可以改变字母对应顺序的连接板。 恩尼格码这个密码机也算比较出名了,做题之前先去回忆了一下恩尼格码的原理。...

2018-05-31 22:35:34

阅读数:50

评论数:0

180523 安卓-DDCTF(详细复现版)

Hello Baby Dex jeb反编译发现不少第三方库,其中一个com.meituan.robust包搜索一下可以发现是美团开发的一个开源热更新框架 参照使用教程可以发现补丁的位置在PatchExecutor类调用的PatchManipulateImp类中的fetchPatchList方法...

2018-05-31 15:22:42

阅读数:60

评论数:0

180516 逆向-ISCC(re3)

题目名为混淆和编码,有点恐怖(:з」∠) 打开main函数,发现仅对输入进行了fencode和encode两次处理后就与字符串比较,很简单明了 fencode的流程如下: 整体扫一下,是通过对code这个变量的比较和赋值来控制程序流程的,看起来有点像VM 不过再看一下程序流程图就清...

2018-05-25 18:45:56

阅读数:56

评论数:0

180509 Pwn-ISCC(Pwn2)

写作Pwn3读作Pwn2 23333 打开pwn3反编译,发现菜单,很明显是堆的题目了 看了一下在free的时候没有清空指针,造成野指针 以我浅薄的知识猜想是double free吧 参考ctf-wiki的fastbin-attack 主要漏洞在于通过fastbin管理堆的情况下,在fr...

2018-05-25 18:45:47

阅读数:36

评论数:0

180503 Pwn-ISCC(1)

pwn复健的第一题(:з」∠)还好比较简单 简单分析一下,在Menu中存在栈溢出,并且没有Canary保护 不过有NX保护,因此无法直接传入Shellcode 查了一下pwn的相关知识,发现这里导入了system函数,因此可以直接使用ret2system来getshell system...

2018-05-25 18:45:32

阅读数:24

评论数:0

180522 安卓-DDCTF2018(RSA)

RSA JAVA层没什么东西,直接将输入送入了Native层的stringFromJNI函数 这个函数垃圾代码极其的多 建议动态调试,跟随输入值来观察计算过程 在主函数中首先用gpower生成了32个字节的i²Table,又GetTicks取了两次时间,然而都没有用上 sub_3...

2018-05-23 11:27:43

阅读数:47

评论数:0

180517 逆向-反控制流平坦化(符号执行脚本)

控制流平坦化的相关理论百度有很多,简单来讲就是将代码块之间的关系打断,由一个分发器来控制代码块的跳转 正常流程如下 经混淆后的流程如下 破坏了代码块之间的关系后,整个程序的逻辑将很难辨认 符号执行的思路是遍历所有路径,将分发器等无用的代码跳过,恢复代码块之间的联系 由于跳...

2018-05-17 21:37:40

阅读数:74

评论数:0

180515 逆向-被隐藏的真实(DDCTF_Re3)

这题本来单纯地以为是很简单的题,听欧佳俊师傅讲了一下出题思路才发现他的想法真的比答题人多得多…… main函数里调用了三次get_pwd()这个函数来check输入 get_pwd中接受输入,然后对count自增,调用了Bitcoin对象的一个函数来校验输入 如果熟悉C++逆向的话,...

2018-05-15 00:47:07

阅读数:53

评论数:0

180502 逆向-wcm(2)

放着一个猜出的flag不是我的风格,于是又仔细看了一下~ 首先将输入encode成hex以后送入了这个函数中 对于非字母,也就是数字部分直接查一个表即可 逆的时候也就是相应的反查这个表的index了,很简单,没啥好说的 同时因为flag的hex大部分是0x6?,因此这个判断机制实...

2018-05-02 22:41:26

阅读数:53

评论数:0

180501 逆向-RedHat(Reverse)

AK了(:з」∠)题目难度相对不太大,不过识别算法的思路还是学到了 Reverse icm 反编译main函数,校验了长度42以后在函数中进行判断 发现每8个字节进行一次处理,最后异或119-i后和数组比较 将其dump出来备用,查看处理函数 发现在其中把指定种子的随机数...

2018-05-02 19:44:09

阅读数:205

评论数:1

180421 安卓-DDCTF_WP(Android)

要赶的WP太多了(:з」∠)日后有机会再把更详细的心得和内容补上吧 Android RSA 垃圾代码比较多 动态调试,跟随输入值进入,发现将输入放在了一个结构体中,然后用后八字节作为指针来控制 要求len为31字节 将输入逐字节异或了一个数组以后,遍历结果,要求满足一下关系式: ...

2018-04-21 20:05:07

阅读数:262

评论数:5

180420 逆向-DDCTF_WP(Re)

Reverse Baby MIPS IDA打开发现几个字符串结构都很清晰,提供16个变量,然后进行16次方程校验 但是运行会发现在中间就因为段错误而异常 尝试许久以后发现几个不太对劲的指令,突兀出现的t,t,t, sp, 跳转等等的机器码都为EB02开头,猜测为花指令,于是使用IDC脚...

2018-04-21 20:00:42

阅读数:262

评论数:1

180321 逆向-代码的二次开发(3)获得函数的调用

1625-5 王子昂 总结《2018年3月21日》 【连续第536天总结】 A. 代码的二次开发(3) B. 获得函数的调用 在扩充程序功能时,有时会遇到调用的API函数不在输入表中 在应用程序调用DLL中的函数之前,DLL文件映像必须被映射到调用进程的地址空间中 方法有两种: ...

2018-04-11 16:58:30

阅读数:66

评论数:0

180320 逆向-代码的二次开发(2)手工构造区块

1625-5 王子昂 总结《2018年3月20日》 【连续第535天总结】 A. 代码的二次开发(2) B. 手工构造区块 区块间隙的空间大小是有限的,如果所需代码不多,那么上述方法方便快捷。但是如果需要添加的代码比较多的话,区块间隙就不够用了。此时必须手动添加区块。 手工构造区块必须...

2018-04-11 16:32:23

阅读数:62

评论数:0

180319 逆向-代码的二次开发(1)区块间隙的利用

1625-5 王子昂 总结《2018年3月19日》 【连续第534天总结】 A. 代码的二次开发(1) B. 前言 这里的二次开发主要指的是在没有源码和接口的情况下扩充可执行文件的功能,目标是二进制的EXE或DLL文件,需要用汇编实现相关功能,或构造一个接口,调用其他语言实现功能。...

2018-04-03 23:23:59

阅读数:54

评论数:2

180318 开发-QQ资料爬虫

1625-5 王子昂 总结《2018年3月18日》 【连续第533天总结】 A. QQ资料爬虫 B. 通过接口爬取指定QQ的信息 接了个单子,要求获取表格中的指定QQ的相关信息 最先想到的思路是HookQQ的资料窗口相关的函数,通过注入Dll来调用,然后直接找到内存中的数据,获取即可...

2018-04-03 17:36:20

阅读数:101

评论数:0

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