tinytracer

  • 实践
    • CTF
    • 项目实践
  • 技术
    • C++
    • 逆向与汇编
    • 区块链安全
  • 探索
    • OWASP汉化
    • SQL
    • Kali
TinyTracer
In solitude, where we were at least alone.
CTF

格式化字符串漏洞解析

格式化字符串利用—读 漏洞原理 格式化字符串漏洞常见的标志为printf(&str),其中str中的内容是可控的。printf在解析format参数时,会自动从栈上format字符串结束的位置,按顺序读取格式化字符串对应的参数。如图所示,执行的命令为printf("%s %d %d %d %x",buf, 1, 2, 3),紧随格式化字串后压入栈上的参数为4个,但格式化字串有五个参数,printf在解析第五个参数%x时,会继续往栈上读取,造成了信息泄露: 题目分析 checksec信息如下,保护全开: [*…

2020年8月29日 0条评论 4131点热度 2人点赞 Chernobyl 阅读全文
CTF

linux kernel pwn——强网杯pwncore

程序流程分析 core_ioctl io_ctl函数负责处理驱动对系统操作的响应流程,源码如下: _int64 __fastcall core_ioctl(__int64 a1, int switch_index, __int64 in_arg) { __int64 in_arg_1; // rbx in_arg_1 = in_arg; switch ( switch_index ) { case 0x6677889B: core_read(in_arg); break; case 0x6677889C: prin…

2020年8月21日 0条评论 3851点热度 1人点赞 Chernobyl 阅读全文
CTF

基于PMKID的WIFI密码破解

打比赛时遇到的一道有意思的题目,角度挺新颖,让我吃了固定思维的亏。 题目是一个压缩包,里面有一个pcapng文件,压缩包注释还贴心地给了密码的格式,DASCTF加4个字母: 在wireshark中查看数据包内容,发现了wifi握手包。 结合压缩包的注释,猜想应该是密码爆破没跑了,果断aircrack-ng走起: crunch 10 10 -t DASCTF%%%% > a.txt # 生成DASCTF+4位数密码字典 aircrack-ng -w a.txt dasctf.pcap #爆破密码 结果没找到密钥…

2020年8月18日 0条评论 5573点热度 2人点赞 Chernobyl 阅读全文
CTF

pwn-栈题学习

基础-ret2text 题目分析 首先看看程序的checksec [email protected]:~/stack_learn/ret2_text$ checksec pwn1 [*] '/home/hjc/stack_learn/ret2_text/pwn1' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) 栈上无canary保护,程序无PIE,可以尝…

2020年8月15日 0条评论 3898点热度 0人点赞 Chernobyl 阅读全文
项目实践

基于Ring3的行为分析工具开发日志——进程通信

起因 趁还有印象赶紧动笔 程序行为分析器采用DLL注入的方式实现,类似于 hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwPID)); pRemoteBuf=VirtualAllocEx(hProcess,NULL,dwBufSize,MEM_COMMIT,PAGE_READWRITE); WriteProcessMemory(hProcess,pRemoteBuf,szDLLName,dwBufSize,NULL); hMod=GetModuleHandle("ke…

2020年2月16日 0条评论 3570点热度 0人点赞 Chernobyl 阅读全文
项目实践

行为分析工具开发日志——序

前言 我们在分析一个程序的时候,通常的步骤是拖进PEid等工具查壳,看区段和引用,然后拖进OD等调试器脱壳,或者IDA等工具查看源码,来对程序有个大体上的了解。然而在分析病毒样本的时候,脱壳要费一番功夫,反调试又是一道坎。接着在关键API或者字符串下断,查看运行情况,还得担心可能的暗桩或程序自带的钩子。往往一番功夫下来,连病毒是做什么的,怎么做的都不知道,绕进反调试或反混淆里面出不来。就算是定位到了关键API,参数的获取和处理也是一个难题,毕竟涉及到内存的分布、系统内部类或结构体的变量定义与解析的问题。 换一种思路…

2020年2月13日 0条评论 3493点热度 0人点赞 Chernobyl 阅读全文
逆向与汇编

基于异常的反调试实践

前言 最近在学习软件调试相关的内容,顺便举一反三找找反调试以及反反调试的相关方法。逛着逛着找到了这个网站:2种基于异常机制的反调试方法,虽然一看就知道不知道从哪转载的,而且搜索引擎有很多这篇文章一模一样的重复结果,但是代码倒是挺有趣的,研究玩玩。 第一题 第一段代码是基于IsDebugPresent()类似实现的反调试,代码如下 #include <windows.h> int AntiDebugInSEH(EXCEPTION_POINTERS* ExceptionInfo) { DWORD state…

2019年2月3日 1条评论 6520点热度 0人点赞 Chernobyl 阅读全文
逆向与汇编

硬件断点探幽

硬件断点 调试寄存器 IA-32处理器定义了8个调试寄存器,分别是DR0\~DR7。在32位模式下,它们都是32位的;在64位模式下为64位。 在32位模式下,DR4与DR5是保留的,当调试扩展(DE)功能被启用,即CR4的DE位为1时,任何对DR4与DR5的引用都会导致一个非法指令异常;当DE被禁用时,DR4和DR5分别是DR6与DR7的别名寄存器,等价于访问后者。寄存器的内容图示如下: DR0\~DR3为调试地址寄存器,长度与CPU位数一致 DR6为调试状态寄存器,64位时高32位保留未用 DR7为32位的调试…

2019年1月31日 0条评论 7137点热度 0人点赞 Chernobyl 阅读全文
逆向与汇编

软件断点探幽

软件断点 x86系列的处理器支持一条专门用来调试指令INT 3,也即是通常所说的“软件断点”,这条指令的目的是使CPU中断到调试器,以供调试者对执行现场进行分析。调试程序时,可以在可能有问题的地方插入INT 3指令。 INT 3 无论是Visual C++亦或是GCC都支持内联汇编指令,VC++示例如下: #include<iostream> int main() { int a = 0; __asm INT 3; std::cout << a << std::endl; std…

2019年1月29日 0条评论 7005点热度 0人点赞 Chernobyl 阅读全文
逆向与汇编

Windows x64 内存dump分析

前言 今天上午去上课前在虚拟机配置生产环境,没锁屏离开了宿舍。由于插着电源,电脑并不会自动进入休眠超时锁定账户。但是下课回来发现需要登陆——电脑重启了。重启的原因是什么?~~不会是被人日了吧~~,以后该如何避免这种蛋疼的情况呢? 信息收集 日志信息获取 系统的重启、程序的执行、警告等信息都会被系统日志所记录,先去系统日志看看情况。由于重启发生于上课时间,所以日志的记录时间区间很好确定,大约一个半小时。首先设置下筛选器,将该时间段内来自系统事件的信息呈现出来。 在事件列表中,确定了计算机关闭的时间,且计算机非正常关闭…

2018年12月20日 0条评论 7420点热度 2人点赞 Chernobyl 阅读全文
12345…9

COPYRIGHT © 2021 tinytracer.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang