07 2020 档案

摘要:运行时压缩 压缩还分为无损压缩和有损压缩: 无损压缩:使用压缩过的文件之前需要解压,解压之后可以百分之百恢复文件内容。 有损压缩:只用时不需要解压,故压缩时会对源程序有一定的损坏。 运行时压缩 这种压缩时针对可执行文件来说的,可执行文件内部含有解压代码,在运行瞬间于内存中解压后执行。 把普通PE文件 阅读全文
posted @ 2020-07-18 14:58 Kylimi 阅读(134) 评论(0) 推荐(0)
摘要:运行一下程序 程序的界面还是很简单的,用按钮输入serial,在旁边的status栏则可以看到serial是否正确。 然后用die查一下: 还是VB,无壳。 尽然是vb,那我们还是使用一下VB的静态工具: 这里我们看到这个控件还是蛮多的,但是大概浏览一下我们可以发现,有重要信息的只有那四个事件控件: 阅读全文
posted @ 2020-07-17 15:34 Kylimi 阅读(234) 评论(0) 推荐(0)
摘要:首先还是收集信息: 打开后是一个窗口,输入KEY。 输入假码后,显示密码错误(应该是错误) 然后我们用die查看一下: VB,无壳。 既然是VB,那我们就用VB的静态工具查看一下,有没有什么信息: 这里我们可以看到程序的一些逻辑,先是将输入的字符串长度算出来,然后进行循环。并将字符串的各位加上0xA 阅读全文
posted @ 2020-07-16 17:06 Kylimi 阅读(138) 评论(0) 推荐(0)
摘要:第13章 PE文件格式 书本上最开头,说到本章不仅会有PE文件格式的知识,还有进程、内存、DLL的相关内容。 什么事pe文件: pe文件是指windows操作系统下使用的可执行文件格式。 pe文件包括: 种类 主扩展名 可执行文件 EXE、SCR 库系列 DLL、OCX、CPL、DRV 驱动程序 S 阅读全文
posted @ 2020-07-15 16:36 Kylimi 阅读(302) 评论(0) 推荐(0)
摘要:首先还是查看文件: 输入name和key,不输入的话,旁边的OK按钮是不能使用的。 然后输入假码: 这个应该不是英文,但是毕竟是假码,所以这个应该是表示的错误。 然后用die查看一下: 看到是vb编译,这下我们就要注意一下vb的特点,比如函数的名称,入口处的特点等等 然后就是od打开: 我们刚刚搜到 阅读全文
posted @ 2020-07-15 14:43 Kylimi 阅读(167) 评论(0) 推荐(0)
摘要:函数调用约定 函数调用约定,就是函数调用时如何传递参数的一种约定。 *栈的大小记录在pe头中。 主要的函数调用约定如下: cdecl stdcall fastcall 1.cdecl cdecl主要是C语言中使用的方式,调用者负责处理栈。 这里书本上给了一段代码: #include<stdio.h> 阅读全文
posted @ 2020-07-13 12:05 Kylimi 阅读(156) 评论(0) 推荐(0)
摘要:第一个windows桌面应用程序 为了更好的还原crackme的exe文件,现在开始学习利用VS2019写windows桌面的应用 首先我们先了解一下VS生成win32应用程序的一个重要函数——WinMain函数,类似于控制台程序必须有一个main函数一样,WinMain函数就是桌面应用程序的mai 阅读全文
posted @ 2020-07-11 17:08 Kylimi 阅读(566) 评论(0) 推荐(0)
摘要:第七章,这一张我们了解ESP和EBP两个寄存器的差别,和通过OD查看程序是如何调用函数的(包括main函数和其他的函数) 首先,我们先给出结论,程序调用函数的过程: 1.执行函数1,将ESP保存着主函数1的栈区。然后将EBP压入栈,并将ESP赋值给EBP 2.然后esp开辟栈区,并将变量放入变量的值 阅读全文
posted @ 2020-07-09 16:44 Kylimi 阅读(171) 评论(0) 推荐(0)
摘要:第六章是分析一个crackme文件: 首先还是看看这个文件,打开之后是什么样子的: 打开后是两个弹窗: 点了确定之后就没有了。根据书本的步骤,我们要通过修改关键跳,破解。 首先我们看到这个程序: 所以我们将关键跳的命令修改为: 可以看到我们把指令由原来的“je”改为了现在的“jmp”。因为“je”是 阅读全文
posted @ 2020-07-08 16:01 Kylimi 阅读(296) 评论(0) 推荐(0)
摘要:我们第一步还是查看这个crackme 我们看到这里叫我们输入。。。。。nome。。。。和codice。然而OK是灰色不能点击的,点击点击cancella并不是退出,而是将我们输入的codice归零。点击help会出现几个弹窗: 后面两个是说如果需要寻找帮助或者是解出来了,请联系作者,然后是作者的联系 阅读全文
posted @ 2020-07-08 13:36 Kylimi 阅读(289) 评论(0) 推荐(0)
摘要:base64是一种常见的加密方式,具体能用在哪里,咱这里就不细说了,这里只说一下,base64代码和密文的一些特征,方便在以后的CTF或者是逆向中快速识别这种加密方式。 ———————————————————————————————————————————— 首先我们来看看base64的加密过程,先 阅读全文
posted @ 2020-07-07 11:32 Kylimi 阅读(3613) 评论(0) 推荐(1)
摘要:也是先打开程序查看: 错误,我们还是用ida打开看看伪代码。 __int64 __cdecl main_0() { int input_lenth; // eax const char *v1; // eax size_t Dest_lenth; // eax int v3; // edx __in 阅读全文
posted @ 2020-07-06 22:09 Kylimi 阅读(157) 评论(0) 推荐(0)
摘要:记一次CTF的题。 CTF和平时破解的题不一样,需要从题目中的一些提示寻找突破口,有时还需要脑洞。 首先我们打开程序: 看到一个上下左右的提示,然后我们输入试着输入不同的值,发现输入1、3、4,都会弹出窗口,而输入2,则会继续这个循环。 在对程序有一个大概的了解之后,我们用IAD打开,查看一下伪代码 阅读全文
posted @ 2020-07-06 21:41 Kylimi 阅读(234) 评论(0) 推荐(0)
摘要:栈 栈的作用: 1.暂时保存函数内的局部变量。 2.调用函数时传递参数。 3.保存函数返回后的地址。 栈储存数据的原则:FILO(first in last out). 简单的来说,栈类似于一个桶,数据进入后,会一层一层往上堆叠,所以最先进去的数据,要上面的数据都拿走之后,才能出来。 如图所示,数据 阅读全文
posted @ 2020-07-06 17:25 Kylimi 阅读(159) 评论(0) 推荐(0)
摘要:在打开文件之前,我们看到文件夹里有一个txt文件: 打开之后,是一个类似于日记的提示: 上面说了使用Delphi写的,没有确定键,并且做了一些小手脚。具体是什么小手脚,没说,那我们只有进去看一下了。 首先是查看文件,打开之后会发现的确没有确定键,只有允许输入name和serial,然后我们输入假码: 阅读全文
posted @ 2020-07-06 16:23 Kylimi 阅读(321) 评论(0) 推荐(0)
摘要:我们以crackme第三题为例: 双击打开后,会出现这个NAG。 我们放入die,查看信息: 发现是VB的程序。 载入OB: 这里是一个十分明显的vb程序的特点:一个push一个call,我们查看这个0x004067D4的地址: 然后我们往后数0x4C个数字(ctrl+G,输入004067D4+4C 阅读全文
posted @ 2020-07-04 14:52 Kylimi 阅读(188) 评论(0) 推荐(0)
摘要:我们先通过peid查看本文件的基本信息: vb编写,无壳; 看到vb,我们就知道了,如果使用ida打开的话,不改变函数的名称的话看上去就十分吃力,所以我们使用VB Decompiler来静态查看: 虽然使用了VB Decompiler但是我们发现可读性还是很低,所以我可以打开od,动态结合静态一起查 阅读全文
posted @ 2020-07-04 14:07 Kylimi 阅读(194) 评论(0) 推荐(0)
摘要:今天在做creckme时遇到了几个第一次见的汇编指令: 首先,带F开头的基本都与浮点型有关。 我们先看到FLD和FSTP: FLD类似于 PUSH指令; FSTP类似于 POP指令; 然后是FADD FSUB FMUL FDIV: FADD的格式: fadd memvar //st0=st0+mem 阅读全文
posted @ 2020-07-03 15:32 Kylimi 阅读(682) 评论(0) 推荐(0)
摘要:我们知道平时的printf函数的格式为: printf("XXXXXX"); 改变颜色的话我们就要用到特殊的技巧: printf("\033[ 特效;字体颜色;背景颜色m XXXXXX \033[0m"); 例子: 阅读全文
posted @ 2020-07-02 21:36 Kylimi 阅读(354) 评论(0) 推荐(0)
摘要:X86架构基本程序运行寄存器 通用寄存器: 可用于传送、暂存数据,也可用于算术逻辑运算。8个中有四个(EAX,EBX,ECX,EDX)可分为H、L两部分。 注: 段寄存器 程序状态与控制寄存器: 指令指针寄存器: 阅读全文
posted @ 2020-07-02 18:03 Kylimi 阅读(142) 评论(0) 推荐(0)
摘要:大端序和小端序的区别: 一句话概括就是: 大端序:高地址低字节。 小端序:高地址高字节。 编写程序,到OD里面更加直观的查看: 在OD里打开,找到main函数: 我们看到这里,刚刚写的四个变量都表示了出来,我们在数据窗口中对它们进行跟随: 这样我么那就可以直观的看出,byte,word,dword, 阅读全文
posted @ 2020-07-02 16:52 Kylimi 阅读(240) 评论(0) 推荐(0)
摘要:打开exe文件,查看主要的流程 1.首先是一个弹窗: 2.其次三个按钮(两个注册码,一个退出: serial/name: serial: peid查壳 欸~没有壳 破解serial/name: 暴力破解: 输入假码后发现有弹窗和字符串 然后就搜索字符串: 我们看到有两个sorry字符串,根据上面提示 阅读全文
posted @ 2020-07-02 15:46 Kylimi 阅读(233) 评论(0) 推荐(0)
摘要:首先打开exe文件: 我们看到文件打开后就是输入name和serial,我们输入假码: 输入假码,弹出窗口。然后我们放入DIE中查看壳和编译器:20200702075236262.png) 发现没有壳,编译器是VB。 破译: 爆破: 我们搜索字符串,找到关键跳,直接修改关键跳: 破译注册机:首先我们 阅读全文
posted @ 2020-07-02 15:45 Kylimi 阅读(145) 评论(0) 推荐(0)
摘要:首先我们跟随书本,写一个带有弹窗的程序: 源代码是这样的: 然后我们跟随书本找一遍main函数: 首先我们跟随程序整体看一遍: 看到有一个0x401005,和我们的0x401000很近的一个地址,我们怀疑他就是main函数,所以我们进入看看 看到里面不仅有我们输入的字符串,而且还有一个messagb 阅读全文
posted @ 2020-07-02 15:44 Kylimi 阅读(313) 评论(0) 推荐(0)
摘要:MessageBox(NULL,L"窗口内容",L"窗口标题",uType); 重点: uType可分为几种: MessageBox(NULL, L"内容", L"标题",MB_OK); MessageBox(NULL, L"内容", L"标题",MB_OKCANCEL); MessageBox(N 阅读全文
posted @ 2020-07-02 13:36 Kylimi 阅读(192) 评论(0) 推荐(0)