- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 Project Overview
Go real project ,Now that we've got a much better sense on basic of Go, some of ideas behind packages and import statements and whatnot.we're going to move on our very first real project.
2025-05-05 18:50:19
685
原创 Go package
There are two package types in Go, One is an executable type of package , and other is a reusable one.
2025-04-26 21:58:43
969
原创 How do we run the Go program?
Last section we put together a very simple,very basic and very boring program.In this chapter and the next couple of chapters, we'll break this thing down line by line.Maybe, you are going to be really surprised because even though this is a very boring pr
2025-04-23 21:54:21
902
原创 Cursor installation and GO configuration
Let us go to open up the office website of CursorCursor - The AI Code EditorYou can click the first button to download the cursor installer directly if your operating system is Windows. Otherwise, you need to click the second button to open the download pa
2025-04-14 21:48:38
918
原创 Go installation process
In this section we are going to do a little bit of set up on our local machines so that we are able to run build compile go projects.Here is a diagram of the flow that we are going to go through.First ,I am going to open a new broser tab and navigate to go
2025-04-11 14:30:30
1247
原创 windows技术基础知识
字符集其实就是一个预先定义好的表格, 里面将每个文字都罗列出来,并且为每个文字指定一个独一无二的数字来代替。以淬渊阁中的“淬”举例:ASCLL:这个编码无法表示中文,所以他的字符集找不到Unicode:十六进制: 0x6DEC十进制:28140二进制:0110 1101 1110 1100字母A举例:ASCLL:十六进制: 0x41十进制:65二进制:01000001Unicode:十六进制: 0x41十进制:65二进制:01000001。
2025-04-03 16:06:15
1522
原创 汇编学习结语
一天之内挑战计划太乐观了, 不过还好,这次我总共用了三天完成了系列汇编指令的学习,有的指令也深入进行了验证,输出了系列文章,收获颇多。接下来我将开启一个专栏,用于记录学习OllyDbg的使用。
2025-04-02 17:43:58
838
原创 汇编学习之《call, return指令》
进入函数后可以看到栈顶ESP 寄存器里面的值就是之前call 下面一个指令的函数地址。从01bbfbf8变成了01bbfbf4, 栈顶的值也是之前记录的call下面的一个指令地址002582e2。这个也好理解,先把函数下一个地址入栈, 接下来执行函数,当函数遇到retn指令的时候出栈到那条指令就可以继续执行了。首先打开OllyDbg,导入你的程序,找到一个call 函数,通过F8执行到call函数处,先不要执行函数。第二步通过push 指令将函数地址指令额下一行的指令的地址压入栈中。
2025-04-02 14:48:59
572
原创 汇编学习之《jcc指令》
JCC(Jump on Condition Code)指的是条件跳转指令,c++中的就是if-else, while, for 等分支循环条件判断的逻辑。它包括很多指令集,各自都不太一样,接下来我尽量将每一个指令的c++ 源码和汇编代码结合起来看,加深学习映像。学习这章之前还是要了解 EFL 标记寄存器的知识:以上标志寄存器部分重点看下 CF,ZF,SF,OF,PF.理解下面的意思:cmp x,yx -y ==> 影响 CF, ZF 标记位。
2025-04-02 14:00:18
1293
原创 汇编学习之《jmp, nop指令》
无条件跳转指令比如我这里现在的位置当前CPU 指令位置 00258335我们期望跳转到的目标位置:00258348在当前CPU 位置执行 jmp 00258348可以看到执行成功。
2025-04-01 15:41:40
466
原创 汇编学习之《test, cmp 指令》
它和逻辑与(and)计算方式是一样,他们两个的区别,and 会改变对象的值,test指令不会改变,但是它会改变EFL标志寄存器的ZF零位标记的值。实际上是做的减法运算,与算数sub运算指令的区别是,cmp指令不改变作用对象的值,但还是会改变EFL标志寄存器的ZF标志位。其实:cmp eax,1 可以用来判断 eax 和 后面的数字是否相等,比如 ZF 位是1表示相等,否则不是。这里可以看到 eax 变成了0, EFL 标志寄存器的ZF零标志位被设置成了1(零 zf=1, 非零=0)可以看到eax的值变了。
2025-04-01 14:41:37
615
原创 汇编学习之《移位指令》
当我们执行SAL EAX 1语句后, 最高位放入二零EFL标志寄存器的CF位,通过OD也可以看到C位是1,同时最低位1向左移动1位后,十六进制的结果就是2;备注: 无论左移还是右移,是将对应的最高或最低位放入到CF中,也就是说放入前是0,CF是1,放入后CF就是0,反之亦然。通过上面我可以看到,我们设置MOV EAX, 80000001后, 其实32位最高位就是1,最低位也是1,右移一次,最高位不变,然后向右移动,最低位移入EFL 标志寄存器的CF位中。OllyDbg查看执行查看。
2025-04-01 13:36:57
1067
1
原创 汇编学习之《运算和逻辑指令》
以上有一个问题, 我们c++代码申请了一个4个字节的整数的临时变量,为啥汇编语言是偏移了12个字节 (0xC), 有知道原因的朋友在评论区告诉我下呢?二进制 not 0011 == > 1111 1111 1111 1111 1111 1111 1111 1100 (十六进制FFFFFFFC)其实这里比较简单,我放过来去搞了一个c++代码,然后同步调整汇编,观察执行过程。二进制: 0001 and 0010 ==> 0000 (十进制0)OD 查看32位,四个字节,所以前面的0也会被反转。
2025-04-01 11:15:27
434
原创 汇编学习之《标志寄存器》
标志寄存器: flag寄存器16位。这个标志寄存器并不是完全占满16位,它总共就有9位地址被用。EFL(Extended Flags Register)是指 扩展标志寄存器,它是x86架构中的一部分,用于存储处理器的标志位,用于反应最近一次算数运算,逻辑运算和比较操作的结果。EFL寄存器中的标志位用于决定条件调整和其他控制操作。上面图有俩部分,第一个部分是标志位的状态区域, 下面EFL 是寄存器的16进制值。
2025-03-31 19:43:40
888
1
原创 汇编学习之《扩展指令指针寄存器》
这里要区分下,之前比如EAX,ECX我们都是测试的数据,二这里EIP里面放入的数据是指向某个地址。简单记忆,只要指令是XXP以P结尾的就是存放的地址,比如之前ESP栈顶地址寄存器,EBP栈底地址寄存器。EIP (Extended Instruction Pointer): 保存cpu 下一次将要执行的代码的地址。通过OllyGbd可以看到CPU即将执行指令的地址和EIP 内部放入的地址一致,多次F8依然是这样。
2025-03-30 17:13:34
275
原创 汇编学习之《变址寄存器》
ESI 和 EDI 属于 32 位通用寄存器,它们是 16 位寄存器 SI 和 DI 扩展后的版本。变址寄存器就是ESI(Extended Source Index)源索引寄存器, EDI(Extended Destination Index)目的索引寄存器。用来存放一个地址的寄存器。我简单的理解了下这个ESI和EDI 在运行过程中会自增,两个会不断的指向下一个地址, ESI会不端执行到下一个源地址。之前博主孙冉老师说这个指令不会怎么用,我这里先暂时简单了解下,记住这个寄存器名字就好了。
2025-03-30 16:41:40
325
原创 汇编学习之《指针寄存器&大小端学习》
操作栈的寄存器栈: 保存函数里面传递的参数,局部变量等。EBP: 指向栈底的指针ESP: 指向栈顶的指针。
2025-03-30 15:59:54
1582
原创 汇编学习之《数据寄存器》
数据寄存器分类:用途分类EAX(Accumulator):累加寄存器,也称为累加器。比如1+1=2, 2这个结果就会放到EAX中。EBX(Base):基地址寄存器,顾名思义,就是地址了。ECX(Count):计数器寄存器,比如for(int i; i< 100;i++) 这里的i的数据就存入这里。EDX(Data):数据寄存器,比如int a = 5; 这个a就是的数据就存入EDX中。
2025-03-30 06:39:02
850
原创 汇编学习之《工具安装和进制学习》
ollyDbg 一款免费使用的软件,用于查看我们的执行程序。本软件作者是 Oleh Yuschuk(解压下载的文件就可以运行,我电脑上开始运行的时候提示到有的库比系统中的版本低了,我们选择是就可以。另外会提醒如下,我们选择设置管理员权限运行就可以了。我简单描述下设置快捷方式发送快捷方式: 右键-点击属性-发送桌面快捷方式。设置管理员运行: 右键桌面快捷方式-选择顶部快捷方式-选择高级-选择用管理员身份运行(R)-确认-确认-再次运行OK.
2025-03-30 04:58:50
1007
原创 汇编语言学习前言
汇编语言的由来:操作:寄存器ebx的内容移动eax 中。机器指令:1000100111011000汇编指令:mov eax, ebx备注:eax,ebx是指cpu上的一个元件,它可以暂时存储数据,0/1,它的访问速度大于内存访问速度, 我们叫它寄存器。机器语言(硬编码): 由0和1构成的为什么有汇编语言?汇编语言就是为了方便我们阅读和记忆机器指令。因为机器指令阅读不友好,不好记忆。
2025-03-30 01:48:38
164
原创 Qt读物之qmake使用(.pro文件详解)
qt是通过pro文件进行项目管理, 这里涉及到编译文件指定,动态库和静态库引用,跨平台编译等。之前使用的时候都是从百度等地方快速检索,本次抽抽点时间来整体学习。qmake 手册。
2025-03-15 18:43:12
442
原创 linux 邮件配置
1 修改 vim /etc/mail.rc set bsdcompat set from=xxxxxx@qq.com set smtp=smtps://smtp.exmail.qq.com:465 set smtp-auth-user=xxxxxxxx@qq.com set smtp-auth-password=xxxxxxxx set smtp-auth=login
2018-01-31 10:04:00
1816
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人