- 博客(8)
- 收藏
- 关注
原创 buuctf luck_guy
选中0x7F666F6067756369LL点击R转换为字符串 这个字符串先拼接给f2。看case1说明flag是把f2拼接到f1后得到的。是偶数位上的就--,奇数位上的就-2 然后写脚本。这篇博客里大佬说过的小端序 要把字符串倒过来。flag就是do_not_hate_me。进入patch_me函数。进入get_flag函数。点进f1 里面存的是这个。用ida打开以后f5。
2023-10-15 17:09:00
122
1
原创 buuctf 不一样的flag
那么这句的意思是先把v3[27]强制转换成一个指向_WORD类型数据的指针 然后*赋值0给这个指针指向的地方。#的ASCII码是35并且当最后为#时flag正确,1234又表示上下左右,所以是通过上下左右的行走到达#号的,(1)用ida打开后的伪代码, *(_WORD *)& 不明白这是什么意思于是参考大佬博客。WORD表示字,字=2byte,也就是4位16进制,16比特。(2)DWORD 表示双字,双字=4byte,也就是8位。'1'的ASCII码是49,所以碰到一就退出。,也就是32比特(二进制)。
2023-10-08 20:49:52
134
1
原创 bugku love
打开exe文件后只有enter the flag,于是用ida打开。flag的每个字符分别和所在的位置数相加得到str2。于是搜索了这道题发现用了base64加密 奥~新名词。发现有right flag这个字符串 然后f5。这块好像是用来加密的。
2023-10-02 22:32:20
93
1
原创 x86学习(2)
栈是在内存中开辟的一段连续的存储空间,写入数据是从低位到高位push,读取时从高位到低位pop,ss为栈的段寄存器,sp为栈的偏移地址一直指向栈顶。SAR是算术右移指令,右移时用符号位补足,SHR是逻辑右移指令,右移时用0补足。10000000算数右移一位是11000000,逻辑右移一位是01000000。test指令是与运算,一个为零即为零,会改变ZF寄存器中的值。cmp指令:看的此位大佬的。
2023-09-30 21:17:37
64
原创 x86学习(1 plus)
我一开始写的如下图所示,把0800H存在bx中,但是bx:[2]指向的不是08002。ds:[xxx]这种格式前面必须是段寄存器才能指向想要的地址应该。将“hello”写入0800:0000中。
2023-09-24 23:06:49
49
1
原创 x86汇编语法学习(1)
运行出来以后寄存器中是20CD是因为 段地址默认存在DS中,str表示的是字符串的偏移地址 默认0,所以ax中存的是0700:0000的数据。(1)mov 只能两个字节,如果三个字节会报错 因为ax是十六位寄存器能存放两个字节。可是这样只能传两个字节(怎么把整个hello传进去我还不知 还在学习中)获取用db dw的字符串就加个标记str 这是一个伪指令。start(名字可改):表示程序入口:指令开始的位置。如果想要存字符串的话要获得字符串的段地址。dw:一次偏移两个字节的倍数的空间。
2023-09-23 21:31:48
83
1
原创 bugku游戏过关
4、双击改成输出flag所在的函数的地址(一开始勾了fill with NOP's不能运行,不勾了就能运行了)--右击保存为可执行文件(copy to executable)--运行。2、跳转到此地址:Ctrl+G 再向上找出这个函数的起始地址004EE940 发现是由004E7AB4跳转过来的 继续跳到这发现由004EF66C跳转过来 接着跳。所以将这一行改为跳转到flag输出的地址就可以了,那样不管输入数字几都能直接输出flag。3、跳转到这发现上面有八个jnz指令,这就是输入数字的地方。
2023-09-22 21:15:23
257
1
原创 SQL第一步
columns数据列信息表 COLUMN_NAME(字段)查询字段名 TABLE_NAME(字段)查询字段归属那个表。tables数据表信息表 table_name(字段)存放表名 table_schema(字段)查询表所属的数据库。schemata 数据库信息表 schema_name(字段)存放数据库名。1、判断字符型(1' or 1='1')还是数字型(1 or 1=1)2、判断字段数:union select 1,2,3 order by。3、查询MySQL中包含的数据库、表、字段。
2023-09-01 17:42:48
55
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人