win32编程,我个人认为做题的时候用到的时候再查就好,多积累,也可以看看《windows程序设计》不过真的很厚。
2.简单加密算法
CTF中的逆向题目,经常是看反编译后的伪代码,分析代码逻辑和加密算法进而求解出flag。所以这里入门我们需要了解一些简单的加密算法,如RC4,TEA,和base系列编码。
这里推荐一篇文章https://www.cnblogs.com/ruoli-s/p/14206145.html
3.主要工具介绍
动态调试:ollydbg,Xdbg
ollydbg,简称OD已经蛮久没有更新了,而且OD主要支持32位的PE文件调试和分析;所以这里我比较推荐使用Xdbg,Xdbg经常更新,还有自动中文汉化。
下载地址:x64dbg
顺便讲下简单使用:
随便拖入一个可执行文件,这可以看到四个窗口;
左上角的反汇编窗口,这里显示是我们要分析的程序的反汇编代码:
截取一行讲解00007FFA5A3C076A | 55 | push rbp | 看这里!!!
最右侧的00007FFA5A3C076A是内存地址,55是操作码,push rbp是汇编语言,最左侧是调试器或者我们添加的一些注释。
右上角的寄存器窗口显示调试程序的寄存器信息。
左下角的数据窗口:这里是内存地址的内容。最左边是内存地址,接着是对应地址的十六进制数据,最右侧是十六进制对应的ASCII码。
右下角是堆栈窗口,显示的是堆栈信息。
还有一些基本的指令操作:
F2 设置断点
F7 单步步入(遇到call会进入call调用的函数内部)
F8 单步步过(遇到call直接跳过)
F9 运行程序
F12 暂停程序
Ctrl+F2 重新调试程序(断点还在)
Ctrl+G 可以快速定位地址
静态调试:IDA
IDA是yyds,可以将程序反编译成伪代码,在调试分析的时候很方便。
IDA的基本指令和Xdbg的类似,一般使用IDA的基本流程就是,将待分析文件拖入IDA32或IDA64中,按f5进行反编译后分析伪代码。
简单看下,拖入一个可执行文件
这个是程序的流程图,入门题目逻辑还很清晰,按一下f5,
左边一栏的函数列表。右边是经过反编译的main函数。按一下tap回到流程图再按一下空格就可以查看汇编代码的窗口了。
关于IDA更详细的使用,可以自行查阅其他文章,也可以看《IDA权威指南》。不过我更加推荐上刷题网站,找一些入门题或是新生赛的题目练习,不会写没关系看看wp,当例题来完成。
PE文件分析工具
我比较喜欢用exeinfope,下载地址http://www.exeinfo.byethost18.com/?i=1
使用方法是,拖入待分析文件就好,可以查看文件位数或是否有壳。
pe工具蛮多的,都可以用。
十六进制编辑工具
Winhex和010editor 都很好用。
可以用于修复PE文件,或是一些魔改upx壳的修复。不过,嗯应该有点超纲,不着急,后面再看。
三、进阶一点
代码混淆
这里不做细讲:提一点知道有这个知识点就好。
代码混淆常见的是花指令和SMC,花指令就是在代码中插入一些垃圾数据,或是构造一些跳转语句来干扰静态调试。SMC是自修改代码,通过修改内存地址,使程序无法静态分析,但是在程序运行时会进行自解密,也就是我们调试的方法就是通过动态调试 调试到修改后的代码处,然后再dump’出来就好。
除了花指令和SMC 还有ollvm。ollvm里面主要有三个功能,待解锁。
脱壳
初学时遇到的upx壳一般都比较简单,可以通过upx工具直接脱壳。再难一点点的魔改upx壳,推荐一篇文章:https://www.52pojie.cn/thread-326995-1-1.html
至于手动脱壳,也是后面再学啦。
四、其他以及刷题平台推荐
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
5%以上网络安全知识点!真正的体系化!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!