- 博客(78)
- 收藏
- 关注
原创 Arch 下 安装使用 mysql
今天跑一个webserver项目的时候,报了一个错。/usr/include/mysql/mysql_com.h:1034:10: fatal error: mysql/udf_registration_types.h: No such file or directory 1034 | #include <mysql/udf_registration_types.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~compilation
2020-06-13 22:38:35 405
原创 c++ 输入输出流 的学习
前言最近要准备面试,于是复习一下C++的语法。看起了C++ Primer这本书。在看书上示例代码的时候,产生了一些疑惑。话不多说,直接动手调试一遍吧。示例代码#include <iostream>int main(){ // prompt user to enter two numbers std::cout << "Enter two numbers:"<< std::endl; int v1 = 0, v2 = 0; std::cin >
2020-06-11 23:01:17 197
原创 CrackMe160 学习笔记 之 066
分析004013B1 |. 6A 14 push 14 ; /Count = 14 (20.)004013B3 |. 8D45 EB lea eax, dword ptr [ebp-15] ; |004013B6 |. 50 push eax ; |Buffer004013B7 |.
2020-05-10 10:29:40 179
原创 CrackMe160 学习笔记 之 064
前言这是个VB程序。界面还做的挺好看的。思路对输入字符串转大写计算生成新的字符串并比较验证。分析字符串转大写0040D96F . FF15 3CF14000 call dword ptr [<&MSVBVM50.#528>] ; MSVBVM50.rtcUpperCaseVar遍历并计算字符串0040D9BC > /66:3BB5 48FFF>cmp si, word ptr [ebp-B8]0040D9C3 . |0
2020-05-09 20:49:29 229
原创 CrackMe160 学习笔记 之 062
前言这是个VB程序。通过一个双重循环对用户名运算生成新的字符串来比较。思路偶数字符不变,单数转成ASCII码值再拆出来算。分析验证输入00403CDA 8D85 2CFFFFFF lea eax, dword ptr [ebp-D4] ; 输入用户名前四个字节00403CE0 50 push eax00403CE1 8D85 DCFEFFFF lea eax, dword p
2020-05-08 20:46:21 203
原创 CrackMe160 学习笔记 之 061
前言这个题目太依赖日期格式了,只有yy/mm/dd格式的短日期才能通过验证。分析判断输入00402FD0 . E8 0DE3FFFF call <jmp.&MSVBVM60.__vbaStrCmp> ; 判断输入不为空00402FD5 . 8BF0 mov esi, eax00402FD7 . F7D...
2020-05-08 10:49:45 203
原创 CrackMe160 学习笔记 之 060
前言这是个VB程序,通过对输入字符串运算来判断。思路关键数据初始化00402B1E . C745 B4 B96DA>mov dword ptr [ebp-4C], 0AF6DB900402B25 . C745 B8 FFFFF>mov dword ptr [ebp-48], 7FFFFFFF00402B2C . C745 E0 52000&...
2020-05-07 15:33:59 300
原创 CrackMe160 学习笔记 之 059
前言这也是个VB程序。和上个程序是一个系列的。注册码是"This is the correcj code",极有可能是作者拼错了。思路把注册码分成五部分,转成ASCII码字符串依次和输入相比较。讲道理,没什么难度,但VB的反汇编看起来要花时间。分析关键逻辑00402FE7 . 50 push eax ...
2020-05-05 17:47:09 215
原创 CrackMe160 学习笔记 之 058
前言这是个VB程序。虽然VB的反汇编代码看起来有点麻烦,这个却不复杂。思路程序的逻辑大致如下。输入 “use hexeditor to look for hardcoded codes” -> "Yes! You have solved it!!"输入 “Use bpx __vbastrcomp to break with Softice” “Use hexeditor to l...
2020-05-02 16:06:21 242
原创 Mac同时使用不同版本的pwntools
前言最近在做pwn的题目,好像也不怎么难,可能我做的题目比较简单吧。其中就需要安装pwntools这种python工具,首先就需要搭建环境。搭建环境的时间甚至可能比我做题目花的时间还要多。。。先附上一张效果图。环境搭建众所周知,mac上的HomeBrew默认安装的是最新的版本。如果你用的不是最新的版本,那么HomeBrew就会删除你当前的版本并且更新成最新的版本。如果你一开始先装...
2020-03-18 21:10:11 676 1
原创 CrackMe160 学习笔记 之 057
前言简单题,字符串都是明文比较。思路通过00403682 . E8 1FDDFFFF call <jmp.&MSVBVM60.__vbaVarTstEq> ; \__vbaVarTstEq判断是选择了哪个弹窗再通过00403696 . FF90 F8060000 call dword ptr [eax+6F8]进入真正的判断...
2020-02-29 19:44:10 170
原创 CrackMe160 学习笔记 之 053
前言这个题目花了两天还没做出来,其中写注册机的时候涉及了矩阵的运算。这一块不是很熟,算来算去始终算不对,我裂开了。]感觉在这一块花太多的时间没有意义。现在先存个档,以后等我研究透了线性代数再来解决注册机的问题吧。思路首先搜索字符串。发现作者依旧把字符串藏起来了。不过仍然有办法,打开16进制文本编辑器。搜索失败字符串的位置。计算得到在内存里偏移的位置,下内存断点。(或者push ...
2020-02-29 17:09:17 514
原创 CrackMe160 学习笔记 之 054
前言偶尔做个简单的题目放松一下。思路直接分析即可。分析OK按钮点击事件00427B65 |. E8 26E2FEFF call 00415D90 ; 获取name保存到ebp-400427B6A |. 8B45 FC mov eax, dword ptr [ebp-4]00427B6D |....
2020-02-26 17:25:42 214
原创 CrackMe160 学习笔记 之 052
前言这个题目做了我好几天,难度不用我说了吧。话不多说,先放图。输入为空输入小于4个字符输入大于4个字符思路作者没有给我们查找字符串的机会,不过可以找到这个。很明显就是最后判断的信息。接着全局查找这条指令,来到点击事件的入口处。push 0041B208 首先关注的当然是比较的指令了。00401EB7 8B5404 1C mov ed...
2020-02-26 17:08:26 676
原创 CrackMe160 学习笔记 之 051
前言题目倒不是不难。注册机花了点时间。你可能不信,为了写这几行破代码,花了我一个下午。思路直接搜字符串即可。分析点击事件004011ED |. 6A 09 push 9 ; /Count = 9004011EF |. 68 21214000 push 00402121 ...
2020-02-22 15:56:28 190
原创 CrackMe160 学习笔记 之 050
前言这个题目需要去弹窗和PATCH。难度不大。思路一直按 F8。来到此处。右键,分析代码。可以看到真正的代码。后面的步骤比较简单,直接用图片表示了。去弹窗PATCH...
2020-02-20 16:09:33 190 1
原创 CrackMe160 学习笔记 之 049
前言这个题目虽然简单,做起来给人一种眼前一亮的感觉。Mac终端上0和O挺像的,我一开始还输错了没发现。思路首先找到判断的位置。再一步一步往前分析。可以看到失败跳转有7处。分析00401127 > /6A 00 push 0 ; /lParam = 000401129 . |6A ...
2020-02-19 20:26:07 287
原创 CrackMe160 学习笔记 之 048
前言这个题目挺新颖的。本身不难,但是注册机写的有点心累。思路直接从搜索字符串找到点击事件,开始分析。有个地址保存着所有按钮的ID。点击不同的按钮会产生不同的值,复杂度取决于概率问题。值得注意的一点是,作者还混淆了按钮的顺序,怪不得说让我们用资源查看器看。分析CHECK 按钮点击事件00401117 > /33F6 xor esi, e...
2020-02-19 16:32:16 227
原创 CrackMe160 学习笔记 之 047
前言这个题目要出凑出KEYFILE。如果懒得凑的话,直接绕过也是可以的。最后的KEYFILE。思路这种题目直接找CreateFileA函数即可。分析004010A9 . E8 2F020000 call <jmp.&KERNEL32.ReadFile> ; \ReadFile004010AE . 85C0 ...
2020-02-17 20:21:14 162
原创 CrackMe160 学习笔记 之 045
前言这是个简单的题。不过我不知道他怎么把字符串藏起来的。思路定位到点击事件分析。分析以后这种简单的题目都不写注册机了。00421DE4 |. BB 37000000 mov ebx, 37 ; ebx初始化0x3700421DE9 |. 8D55 F8 lea edx, dword ptr ...
2020-02-17 10:03:54 163
原创 CrackMe160 学习笔记 之 044
前言感觉这个题目中规中矩。都是一些反汇编里常见的函数。眼睛瞄一下就能看出来了。思路和计算出的字符串比较。分析看着这个跳转表,注册机写起来也没意义。00421BAE |. E8 45FCFEFF call 004117F8 ; 获取name地址保存到ebp-18中00421BB3 |. 8B45 E8 ...
2020-02-16 15:13:53 226
原创 CrackMe160 学习笔记 之 040
前言又是一个简单题。太简单就不写注册机了。思路把每个字符加5生成新字符串。分析0042D4CD |. E8 8EC9FEFF call 00419E60 ; 获取name地址保存到ebp-8中0042D4D2 |. 837D F8 00 cmp dword ptr [ebp-8], 00042D4D...
2020-02-15 12:54:53 177
原创 CrackMe160 学习笔记 之 039
前言这个程序有几个指令一开始没看懂,查了一下才知道。思路很容易就可以发现有一个跳转表。根据不同的输入进入不同的函数。004010D4 > \33C0 xor eax, eax ; Case 111 (WM_COMMAND) of switch 0040104F004010D6 . 66:8B4...
2020-02-15 10:08:36 213
原创 CrackMe160 学习笔记 之 037
前言还算简单。思路固定字符串比较,加了一点浮点指令的计算。分析0040DF60 55 push ebp0040DF61 8BEC mov ebp, esp0040DF80 8B5D 08 mov ebx, dword ptr [ebp+8] ; 取参数中取出e...
2020-02-14 09:49:49 303
原创 CrackMe160 学习笔记 之 034
前言这个题目我犯了一个愚蠢的错误。最后生成的前两位必为0x1234,我就一直在找0x12的ASCII码。忘了可以直接以16进制数写进内存的。思路文件验证首先找到CreateFileA函数。0040102D |. E8 76040000 call <jmp.&KERNEL32.CreateFileA> ; \CreateFileA然后开始...
2020-02-13 20:13:54 223
原创 CrackMe160 学习笔记 之 033
前言简单题,分分钟做出来的那种。又可以开始水博客了。思路整个指令很短,很容易找到验证函数。指令也都很简单很容易就分析出来了。分析点击事件00401228 . 68 8E214000 push 0040218E ; 压入name地址0040122D . E8 4C010000 call 00401...
2020-02-13 16:49:52 212
原创 CrackMe160 学习笔记 之 032
前言这个程序算法流程并不难。主要因为它不是直接调用函数的,是通过寄存器调用的,一开始有点让人摸不着头脑。思路UPX壳。脱壳。绕过检测文件。dump下来生成新程序。(懒得在虚拟机里创建 文件了)首先当然是搜索找到获取name和key的函数。通过观察发现,每次输入key以后都会走这个函数。00437DD3 |> \E8 00FEFFFF call 00437BD8 ...
2020-02-13 13:52:01 408
原创 CrackMe160 学习笔记 之 031
前言和上个题目差不多,就是多加了一步异或。最近连续几个都是这种简单题目。逼着我水博客。分析00402B40 > \55 push ebp00402B41 . 8BEC mov ebp, esp00402B43 . 83EC 0C sub esp, 0C00402B46 . 68...
2020-02-12 16:01:16 249
原创 CrackMe160 学习笔记 之 030
前言这个也是简单题。不过VB的反汇编看起来要花点时间。不像上一个,几分钟就搞定了。继续水博客。思路注册码是固定字符串。只不过它加了点运算,没有那么直接而已。分析004030F0 > \55 push ebp004030F1 . 8BEC mov ebp, esp004030F3 . 83EC 0C ...
2020-02-12 12:51:45 253
原创 CrackMe160 学习笔记 之 029
前言又是一个简单的题。水一水博客。思路比上个crackme进步一点。至少作者知道用逐个字符串比较来避免明文serial了。但并没有增加什么难度。而且这个程序依旧写的不严谨,serial比name长依然可以验证通过。分析004014B1 |. 8BEC mov ebp, esp004014B3 |. 6A FF push ...
2020-02-12 10:02:46 192
原创 CrackMe160 学习笔记 之 028
前言这个题目又给我水博客的机会了。思路固定字符注册码。它还只比较前几位,真的不严谨。本来还想看一下库函数的,跳转太多就作罢了,下次一定。分析004014B0 . 64:A1 0000000>mov eax, dword ptr fs:[0]004014B6 . 6A FF push -1004014B8 . 68 701B40...
2020-02-11 21:53:05 152
原创 CrackMe160 学习笔记 之 027
前言这个直接爆破了,没什么好讲的。水博客真开心。思路看指令是作者遍历了各个目录,从D盘开始。CeateFileA的返回值和-1比较,不想等则成功。把这行语句改成jmp就行了。0040138C . 0F84 F3000000 je 00401485 ; 关键跳因为我这是虚拟机,所以直接爆破了。分析0040120...
2020-02-11 19:43:20 194
原创 CrackMe160 学习笔记 之 026
前言一开始我是这样想的,这种难度不高指令又特别多的程序,而且还是VB,调试起来真的浪费时间。调着调着发现没有这么简单。这个程序竟然有反调试的功能,会修改最终生成的KEY!竟然在这里栽了个跟斗。而且为了调试这个程序,虚拟机不知死机了多少次。不过索性还是做出来了。思路整个程序并不难,就是计算并拼接字符串。重点在于它的反调试功能。下面是输入“test_”时,生成的KEY。真...
2020-02-11 18:08:55 506
原创 CrackMe160 学习笔记 之 025
前言偶尔做点简单的题放松一下。思路去弹窗搜索字符串,找到弹窗初始化的函数。00405905 55 push ebp改为ret指令即可。搜索字符串,看到“55555”,心想,这别是验证码吧。输入,验证通过。没想到还就真的是。太简单都不想截图了。水博客不需要理由。...
2020-02-10 17:12:47 144
原创 CrackMe160 学习笔记 之 024
前言这个程序和023是一个作者。说实话,这个作者是真的牛逼,能用汇编写出这样的程序。每次调他写的程序就很头疼。然而我还是差不多只花了一天就写出了注册机。思路这个程序没有明显的字符串,搜索字符串在这里不管用了。那么从API入手。和上个程序一样,找到获取name和获取key的函数。因为是重复同样的步骤,我这里就不啰嗦了。找到关键跳转。虽然我这里写了注释,但是一开始可能并不那么容...
2020-02-10 13:19:36 456
原创 CrackMe160 学习笔记 之 023
前言这个程序需要我们写出注册机。思路没有注册按钮。说明是由定时器来判断输入的。查看API。找到获取name输入和获取key输入的函数。在验证函数可以看到如下语句。004012AE |> \A2 67314000 mov byte ptr [403167], al ; [403167] = al004012B3 |. 83F8 10 ...
2020-02-09 10:01:06 283
原创 CrackMe160 学习笔记 之 022
前言这个程序和017有点差不多,都不是明文字符串比较。虽然作者尝试用冗长的程序来恶心人,在我看来,其实没什么效果。思路输入字符,来到验证函数,发现是用数字1和0比较(输入错误时)。说明这里不是真正的验证函数。因为有过调试这种程序的经验,所以很快找到了真正的验证函数。然后开始分析。如果你一开始直接修改跳转,注册成功。你会发现接下来注册不了了。其实删除c:\windows\MTR.d...
2020-02-08 15:22:50 268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人