自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whklhhhh的博客

一只逆向小菜鸡

原创 180621 逆向-SCTF(3)

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

2018-06-22 14:27:49

阅读数 194

评论数 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

阅读数 115

评论数 0

原创 180619 逆向-SCTF(1)

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

2018-06-20 22:52:02

阅读数 252

评论数 4

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

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

2018-06-15 11:09:21

阅读数 1292

评论数 1

原创 180531 逆向-SUCTF(Enigma)

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

2018-05-31 22:35:34

阅读数 441

评论数 0

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

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

2018-05-31 15:22:42

阅读数 708

评论数 0

原创 180516 逆向-ISCC(re3)

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

2018-05-25 18:45:56

阅读数 428

评论数 0

原创 180509 Pwn-ISCC(Pwn2)

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

2018-05-25 18:45:47

阅读数 523

评论数 0

原创 180503 Pwn-ISCC(1)

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

2018-05-25 18:45:32

阅读数 211

评论数 0

原创 180522 安卓-DDCTF2018(RSA)

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

2018-05-23 11:27:43

阅读数 354

评论数 0

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

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

2018-05-17 21:37:40

阅读数 2174

评论数 0

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

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

2018-05-15 00:47:07

阅读数 786

评论数 0

原创 180502 逆向-wcm(2)

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

2018-05-02 22:41:26

阅读数 206

评论数 0

原创 180501 逆向-RedHat(Reverse)

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

2018-05-02 19:44:09

阅读数 375

评论数 1

原创 180421 安卓-DDCTF_WP(Android)

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

2018-04-21 20:05:07

阅读数 475

评论数 5

原创 180420 逆向-DDCTF_WP(Re)

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

2018-04-21 20:00:42

阅读数 873

评论数 1

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

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

2018-04-11 16:58:30

阅读数 360

评论数 0

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

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

2018-04-11 16:32:23

阅读数 141

评论数 0

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

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

2018-04-03 23:23:59

阅读数 204

评论数 1

原创 180318 开发-QQ资料爬虫

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

2018-04-03 17:36:20

阅读数 660

评论数 2

原创 180317 逆向-DragonQuest(NUST)

1625-5 王子昂 总结《2018年3月17日》 【连续第532天总结】 A. nust南理校赛 DragonQuest B. 解压得到exe和dll 顺手拖入IDA,发现是.NET程序 dnspy打开发现主程序加壳了,查了一下壳无果 exeinfoPE还推荐我用RL!dePack...

2018-04-03 17:27:18

阅读数 192

评论数 0

原创 180316 逆向-反调试技术(9)防止附加和父进程检测

1625-5 王子昂 总结《2018年3月16日》 【连续第531天总结】 A. 反调试技术(9) B. 防止调试器附加 R3调试器的附加使用的是DebugActivePocess函数,在附加相关进程时,会首先执行到ntdll.dll下的ZwContinue函数,最后停留在ntdll....

2018-04-03 17:25:32

阅读数 825

评论数 0

原创 180315 逆向-反调试技术(8)调试器漏洞

1625-5 王子昂 总结《2018年3月15日》 【连续第530天总结】 A. 反调试技术(8) B. 调试器漏洞 只要是软件,就存在漏洞,调试器当然也不例外。 以OD为例 OutputDebugStringA 这个API向调试器发送一个格式化的串,OD会在底端显示相应的信息...

2018-04-03 17:02:06

阅读数 200

评论数 0

原创 180314 逆向-反调试技术(7)调试器检测

1625-5 王子昂 总结《2018年3月14日》 【连续第529天总结】 A. 反调试技术(7) B. 调试器检测 书上讲了很多SoftICE的检测方法,但是那玩意儿连XP都不支持,时代的眼泪了…… OD的检测方法 查找特征码 遍历进程,将特定地址处的值与OD的特征码进行...

2018-04-03 16:57:18

阅读数 743

评论数 0

原创 180313 逆向-反调试技术(6)Hook和AntiHook

1625-5 王子昂 总结《2018年3月13日》 【连续第528天总结】 A. 反调试技术(6) B. Hook和AntiHook 壳通过调用ThreadHideFromDebugger检测调试器,于是OD的HideOD插件就是通过对ThreadHideFromDebugger的Ho...

2018-04-03 00:07:07

阅读数 639

评论数 0

原创 180312 逆向-反调试技术(5)NativeAPI

1625-5 王子昂 总结《2018年3月12日》 【连续第527天总结】 A. 反调试技术(5) B. NativeAPI API的调用过程中,User态和Kernel态的通信仅通过ntdll.dll 换句话说,Win32子系统和兼容的Win16、MSDOS、OS/2等子系统都...

2018-04-02 23:46:35

阅读数 189

评论数 0

原创 180311 逆向-反调试技术(4)SystemKernelDebuggerInformation

1625-5 王子昂 总结《2018年3月11日》 【连续第526天总结】 A. 反调试技术(4) B. SystemKernelDebuggerInformation NativeAPI中还有一个函数ZwQuerySystemInformation 当SystemInforma...

2018-03-23 16:55:13

阅读数 364

评论数 0

原创 180310 逆向-反调试技术(3)DebugObject

1625-5 王子昂 总结《2018年3月10日》 【连续第525天总结】 A. 反调试技术(3) B. DebugObject 之前都是从被调试进程入手找痕迹,除此以外调用了DebugAPI的调试器必然要向系统进行声明注册,因此从调试器一边寻找痕迹也是可行的 调试器与被调...

2018-03-23 12:42:18

阅读数 356

评论数 0

原创 180309 逆向-Section加密(WhaleAndroid03)(2)

1625-5 王子昂 总结《2018年3月9日》 【连续第524天总结】 A. AndroidSection加密题目 (2) B. 注意点adb的冲突以前当DDMS开启时,cmd中的adb就会被终止 而再开启cmd中的adb的话,DDMS又会被终止 使得我以为adb和DDMS是冲突的 ...

2018-03-23 12:41:44

阅读数 168

评论数 0

原创 180308 逆向-Section加密(WhaleAndroid03)

1625-5 王子昂 总结《2018年3月8日》 【连续第523天总结】 A. AndroidSection加密题目 B. Android03 背景: 某企业反馈其员工专用手机上,被安装了一个间谍软件,该软件会不定期自动连接一个疑似黑客控制的服务器,服务器的连接密码内嵌在该软件中。 ...

2018-03-23 12:41:16

阅读数 380

评论数 0

原创 180307 逆向-反调试技术(2)CheckRemoteDebuggerPresent

1625-5 王子昂 总结《2018年3月7日》 【连续第522天总结】 A. 反调试技术(2) B. CheckRemoteDebuggerPresent BOOL CheckRemoteDebuggerPresent( HANDL hProcess, PBOOL pbDeb...

2018-03-23 12:40:22

阅读数 311

评论数 0

原创 180306 逆向-反调试技术(1)BeingDebugged

1625-5 王子昂 总结《2018年3月6日》 【连续第521天总结】 A. 反调试技术(1) B. BeingDebugged Win32API为程序提供了IsDebuggerPresent来判断自己是否处于调试状态,懒惰的程序员使用这个API来自欺欺人 实现源码为: ...

2018-03-22 16:44:04

阅读数 636

评论数 0

原创 180305 逆向-文件完整性校验(1)

1625-5 王子昂 总结《2018年3月5日》 【连续第520天总结】 A. 文件完整性校验(1) B. 反调试、加密保护等的对抗措施通常是Patch,即修改程序 另一方面,为了防止程序被篡改而产生的病毒破坏、信息改动等 产生了完整性校验的技术 通常使用哈希函数来计算文件的...

2018-03-22 16:43:38

阅读数 271

评论数 0

原创 180304 逆向-抵御静态分析(3)

1625-5 王子昂 总结《2018年3月4日》 【连续第519天总结】 A. 抵御静态分析(3) B. 信息隐藏 为了提高界面的友好度,大多数软件都会在大量地方显示提示语。 而这些提示语由于特殊性和特征明显,经常被作为静态分析的突破口。(例如IDA的Shift+F12,OD的...

2018-03-22 16:34:08

阅读数 123

评论数 0

原创 180303 逆向-抵御静态分析(2)

1625-5 王子昂 总结《2018年3月3日》 【连续第518天总结】 A. 抵御静态分析(2) B. SMC技术 SMC(Self-Modifying Code),即自修改代码 34c3ctf的re1就是使用这项技术的题目,结合随机数使其静态分析看起来很迷惑。相当有意思的题...

2018-03-22 16:33:37

阅读数 134

评论数 0

原创 180302 逆向-抵御静态分析(1)

1625-5 王子昂 总结《2018年3月2日》 【连续第517天总结】 A. 抵御静态分析(1) B. 静态分析是逆向工程中常用的手段。 因此抵御静态分析也是一个很值得深入的话题。 花指令 在反汇编的过程中,存在着几个关键的问题。 其中之一就是数据与代码的区分问题。 汇编指令...

2018-03-22 16:32:44

阅读数 194

评论数 0

原创 180301 逆向-防范算法求逆(3)

1625-5 王子昂 总结《2018年3月1日》 【连续第516天总结】 A. 防范算法求逆(3) B. 游击战术 将验证函数F分解成多个互不相同的Fi,然后将Fi尽可能地隐藏到程序里去 层层叠叠 通过任意一个Fi的验证都只是注册码合法的必要条件,而非充分条件。真正合法的...

2018-03-22 16:32:16

阅读数 139

评论数 0

原创 180228 逆向-防范算法求逆(2)

1625-5 王子昂 总结《2018年2月28日》 【连续第515天总结】 A. 防范算法求逆(2) B. 堡垒战术 事实上,在通信领域,人们早就开始对身份校验的研究,发展出了散列加密和非对称加密等优秀的密码学算法,其中的MD5算法和RSA算法很适合在软件注册算法中运用 M...

2018-03-22 16:31:53

阅读数 145

评论数 0

原创 180227 逆向-防范算法求逆(1)

1625-5 王子昂 总结《2018年2月27日》 【连续第514天总结】 A. 防范算法求逆(1) B. 基本概念 软件保护的目的是向合法用户提供完整的功能,因此身份校验是必须的 这一环节通常采用注册码验证的方式实现 流程 用户向作者提供用户码U, 申请注册 ...

2018-03-22 16:31:32

阅读数 106

评论数 0

原创 180226 逆向-脱壳技术(9)

1625-5 王子昂 总结《2018年2月26日》 【连续第513天总结】 A. 脱壳技术(9)加密壳的一些技术 B. 加密壳 ASProtect 这款壳由于过于经典,因此在看雪等论坛上有多篇分析文章,不再赘述脱壳方法 主要列举一些技术 Emulate standa...

2018-03-22 16:30:56

阅读数 203

评论数 0

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