tinytracer

  • 实践
    • CTF
    • 项目实践
  • 技术
    • C++
    • 逆向与汇编
    • 区块链安全
  • 探索
    • OWASP汉化
    • SQL
    • Kali
Chernobyl's Blog
项目实践

BadUSB

BadUSB简介 BadUSB是利用伪造HID设备执行攻击载荷的一种攻击方式。用户插入BadUSB,就会自动执行预置在固件中的恶意代码,如下载服务器上的恶意文件,执行恶意操作等。由于恶意代码内置于设备初始化固件中,而不是通过autorun.inf等媒体自动播放文件进行控制,因此无法通过禁用媒体自动播放进行防御,杀毒软件更是无法检测设备固件中的恶意代码。这种攻击方式可以在不经意间实施攻击,而且不易被杀软或系统发觉事了拂袖去,深藏功与名 原理 HID HID是Human Interface Device的缩写,HID设…

2018年12月04日 0条评论 1928点热度 0人点赞 阅读全文
逆向与汇编

ROOTKIT初探——进程隐藏与混淆

预备知识请参阅RootKit 初探——文件隐藏与混淆 原理分析 概述 本次Rootkit教程 核心是Hook系统获取进程信息的函数ZwQuerySystemInformation。该函数未公开实现,官方文档所信息十分有限。通过RootKit修改系统调用该函数的函数指针,在获取进程信息时进行截流和修改。嗯,核心思想和上一期一样简单。 入口 ZwQuerySystemInformation的函数原型为: NTSTATUS NewZwQuerySystemInformation ( IN ULONG SystemInfo…

2018年10月22日 0条评论 1978点热度 0人点赞 阅读全文
项目实践

逆向工程随笔

逆向工程随笔 序   这篇文章不是讲技术的,更不是什么实践教程。随笔嘛,随便写些什么,祭奠我暑假实习的时光。看心情和工作进度不定时更新吧。各位当个故事也好,当技术心得也罢,对我来说,这是一个咸鱼挣扎过的证明吧。 启程   既然题目是“逆向工程随笔”,那么就先讲讲逆向工程吧。在CTF比赛中,我们所遇到的是单个exe,亦或是elf,还有别的吗?很少。面对单个文件,我们通常的想法是通过字符串或者导入表来定位关键的函数,然后一路挖算法挖过程挖API,挖到逻辑清晰挖出flag为止,因为…

2018年08月03日 0条评论 2195点热度 0人点赞 阅读全文
逆向与汇编

RootKit 初探——文件隐藏与混淆

RootKit 初探——文件隐藏与混淆 什么是Rootkit? Rootkit一词最早出现在Unix系统上。系统入侵者为了获取系统管理员级的root权限,或者为了清除被系统记录的入侵痕迹,会重新汇编一些软件工具(术语称为kit),例如ps、netstat、w、passwd等等,这些软件即称作Rootkit。其后类似的入侵技术或概念在其他的操作系统上也被发展出来,主要是文件、进程、系统记录的隐藏技术,以及网络数据包、键盘输入的拦截窃听技术等,许多木马程序都使用了这些技术,因此木马程序也可视为Rootkit的一种。 在…

2018年07月23日 0条评论 1914点热度 0人点赞 阅读全文
逆向与汇编

C++与汇编——段与寄存器

段与寻址 段是在程序中专门定义的一个区域,它是一个包括代码、数据以及堆栈的区域。比如,用ida打开一个exe程序,在反汇编窗口中可以看到程序分成了如下几段: 0x00000----------- 代码段 0x10000----------- 数据段 0x20000----------- 堆栈段 0x26000----------- 段是从小段边界,即能够被16除尽的单元开始的。因此,当一条指令往一个段寄存器装入段地址时,会自动移去最右边的4位。你可以定义任何数据的段,想要访问特定的段,只需要改变适当段寄存器中的地址…

2018年07月19日 0条评论 2325点热度 0人点赞 阅读全文
逆向与汇编

C++与汇编——四则运算

表达式求值 算数运算和赋值 算术运算又称四则运算,计算机中的四则运算和数学上的有些不同。 赋值 赋值运算类似于数学中的“等于”,是将一个内存空间中的数据传递到另一个内存空间中。该操作必须经过处理器访问并中转,以实现两个单元的数据传输。 在C++中,算数运算与其他传递计算结果的代码组合后才被视为一条有效的语句,因为只进行计算而没有传递结果的运算不会对程序结果产生任何影响,编译器将忽略该语句。如 6+4; int tmp = 0; 对应的汇编语句为 00401020 mov dword ptr [epb-4], 0 加…

2018年07月11日 0条评论 2413点热度 0人点赞 阅读全文
C++

Effective Modern C++之旅——剖析auto变量

auto大法好 使用auto不仅可以少打些字,还能阻止那些由于手动指定型别带来的潜在错误和性能问题。另外,某些auto型别推导的结果在编程者的视角看起来是错误的,因此,有必要知道如何去引导auto推导出正确的结果。 我们从一段“天真无邪”的代码引入 int x; x忘记初始化了,所以它的值是不确定的,不过也不一定,它有可能被初始化为0。一切全看具体语境。 再来看一段不那么“天真”的代码 template<typename It> void dwim(It b, It e) { while(b != e)…

2018年06月09日 0条评论 1706点热度 0人点赞 阅读全文
C++

Effective Modern C++之旅——探索编译器型别推导

掌握查看型别类型推导结果的方法 IDE编辑器 IDE中的代码编辑器通常会在你将鼠标指针悬停至某个程序实体,如变量、形参、函数等,会提示该实体的型别。例如下面的代码: const int exp = 42; auto x = exp; auto y = &exp; IDE会告诉你,x的型别是int,y是const int *。IDE推导类型的工作原理是让C++编译器(至少也是其前端)在IDE内执行一轮。如果该编译器不能在分析你的代码是得到足够的信息,自然也就无法得出型别推导的结果。对于像int这种内置的型别,…

2018年06月08日 0条评论 1468点热度 0人点赞 阅读全文
C++

Effective Modern C++之旅——decltype探幽

理解decltype 在C++中,对于给定的变量或表达式,decltype能够告诉你变量或表达式的型别。大部分情况下,它告诉你的结果和你预测的是一致的,不过偶尔也会有一些“非正常”情况,让你面对推导结果时抓耳挠腮。 先从一般的情况讲起——那些不会引发意外的案例 const int i = 0;//decltype(i)是const int bool f(const Widget& i);//decltype(w)是const Widget&,decltype(f)是bool(*)(const Wid…

2018年06月07日 0条评论 1609点热度 0人点赞 阅读全文
C++

Effective Modern C++之旅——auto型别推导

理解auto型别推导 如果你已经了解了有关模版型别推导的规则,那么你已经基本了解有关auto型别推导了,因为auto型别推导除了一种特殊情况外,其他与模板型别推导并无二致,它们之间确实也存在双向的算法变换。 在模版型别推导一章中,编译器会利用传入参数来推导模版参数的型别以实例化模版函数 template<typename T> void f(T param); f(expr); 当某变量使用auto来声明时,auto就扮演了模版中的T这个角色,而变量类型扮演的是expr。下面的代码展现了这种有趣的映射关…

2018年06月07日 0条评论 1603点热度 0人点赞 阅读全文
12345…9

Chernobyl

In solitude, where we were at least alone.

联系方式

QQ
450342251
mail
[email protected]
github
https://github.com/Pryriat
Studio
Attack and Defence Security Lab

博客统计
  • 28,839
  • 14,887

COPYRIGHT © 2020 tinytracer. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS