Corax的博客

“我想做我能做的事 ”

【160Crackme】《CrackMe3》《cosh.3》

Crackme

CrackMe 没有难度的CM,没什么意思 exeinfo 无壳32位 扔ida看看 目标是正确字符串,那么前面有两个jnz跟着判断 爆破 那就在两个jnz地方汇编成jz就可以了。 爆破就成功了 算法逆向 其实没有算法 根据ida里面的信息,在第一个比较的地方下断点 再在第二个地方下断点 输入如下信息 呃呃,看寄存器里面传的参,一个是输...

【技术研究】Chacha20

TEC

Chacha20 承接上文,这篇专门研究研究逆向里面,chacha20的识别与逆向。 识别 一般在进行chacha20加密之前,都会进行chacha20的初始化 初始化流程如下 设置初始常量:将固定的字符串”expand 32-byte k”转换成4个32位无符号整数作为初始常量。 设置密钥和计数器:将128位的密钥和64位的计数器分别存储到状态矩阵的指定位置。 设置...

【NSSCTF逆向】《cpp》

CTF

cpp 这道题目说实话,是我做到现在很难的题目了,涉及了chacha20,class的逆向,虚函数执行函数。 做了两天才勉强把flag给跑出来,对于class,chacha20仍然有诸多不懂。 不过做难题才可以有成长嘛,先写着吧,针对class,chacha20,虚函数后面再开文章谢谢学学吧。 进入题目之后就是如下的程序 关键出在这三个里面 前两天刚刚看过虚函数的表现形式...

【160Crackme】《CrackMe_0006》

Crackme

CrackMe_0006 这题我看是四星难度,算法还是有的一玩的。 拿到程序看看 无壳,直接OD里面看得了。 爆破 首先定位关键字符串 肯定是GOOD了 追踪进来 看到正确回显上面有个jnz,把他改掉 跑跑看,是可以的。 算法逆向 这个相对繁琐一些。 在这里读入name之后紧接着一个CALL,进去看看做了什么 第一阶段 代码流程不长,但是有...

【技术研究】指针函数 函数指针 数组指针

TEC

指针函数 返回值为指针的函数 int *func(int x, int y) 来点搞的 #include "stdafx.h" #include <iostream> #include <stdio.h> using namespace std; char *foo(char szBuf[]) { printf("%d\r\n",strlen(sz...

【技术研究】指针 地址

TEC

当采用__T 它会变成如下 修改成_T,进行宏替换,实际上解决了宏嵌套的问题。关于宏转换规则的问题。 实际上第二次才转换到了如下 指针 #include "stdafx.h" #include <iostream> #include <stdio.h> using namespace std; void exchange(int n, in...

【160Crackme】《Cabeca》

Crackme

Cabeca 这个crackme吧。。能学到一些东西,但是要写keygen是比较恶心的。 解法 查壳 无壳32位,上OD 定位关键字符串 borland写的程序,关键字符串好像都在下面 定位过来 这题和最近做的不太一样,好像错误回显不在正确回显的附近上下找找。 找到错误回显位置 和关键跳地址 多个地方跳到这个D4E5,跳过了正确回显call 爆破 ...

【NSSCTF逆向】《CSGO》《XOR》《ez_pycxor》

CTF

题目 CSGO 解法 我觉得这道题还是有点难度的,涉及一些反调试,go语言逆向,还有base64换表。 用go写的程序感觉看起来都挺麻烦的。 诸如此类的函数都是go的runtime标准库写的,看起来就很麻烦。 我看了其他师傅的wp,很多都是直接从函数里面直接定位到关键函数了。。我功夫还不够深,就不直接看了。 于是我们尝试使用一个识别算法的插件,在这道题是可以用的 插...

【160Crackme】《Trappy Crack me》《fty_crkme3》

Crackme

第二个好玩 Trappy Crack me 同样是国外网站Crackmes最新出的一个CM。 介绍如下 虽然说是难度2.3,但其实设计的有些问题。 爆破 进来一看非常简洁啊,无壳64位拿VS14写的。 放IDA里看看吧。进来直接映入眼帘的是一串“correctcode”,试了一下,直接闪退出去了,是个假code。 打开string看看 跳转到如下位置,感觉这...

【技术研究】宏定义

TEC

编译器通过名称粉碎做到局部静态变脸不跨函数访问。 ​ 通过标志位使 静态局部变量初始化为静态值。 初始化在数据区的未初始化区。(因为初始化为0) 寄存器变量不能是 全局或者静态局部,占用时间过长 但是鸡肋得很。 宏定义 错误码宏 详细编码 1.数值型宏 编译器进行替换 编译途中生成.i文件,就是完全已经替换成功的文件、 2.表达式宏 需要注意的如下 ...