- 博客(60)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 多版本开发的管理
工作中遇到同一个项目,多个版本的开发。比如base版本已经发布,但是还在更新迭代中。pro版的新需求已经需要开发了。base版本迭代的功能,有些功能也需要加到pro版本中。这样的现象遇到了好几次,两个版本管理起来,比较麻烦。
2025-03-10 21:25:49
273
原创 周记-模态对话框的阻塞和非阻塞
这周遇到一个bug,就是执行完一个操作后,需要记录日志,但是日志时间会出现延迟。原因是在弹出操作执行成功的对话框之后,再记录日志,对话框是模态和阻塞的,关闭对话框后才会记录日志。看起来是一个偶现的bug,立即关闭了的提示的对话框,日志时间就是正常的,关的晚一些,就会出现日志时间的延迟。这个对框架实现的常见原理需要了解,就是说使用一个框架或者工具时,编程语言等等,需要了解惯用法。这是一个比较简单的bug。
2025-01-19 12:45:23
146
原创 周记-CIE XYZ和RGB的区别
其实我也不太懂。是因为项目中LCD液晶屏换了,同样的底板驱动时,显示的效果发生了变化。内核驱动也没有参数可以校准。linux驱动只是把RGB值发给显示屏,改些背光啥的,其他改不了。从屏的资料查找到两款屏幕的色坐标不同,就是XYZ坐标。想通过改RGB达到和之前相同的显示效果,这里涉及到XYZ和RGB之间的转换,两者是矩阵关系。但是也没有成功,后续只能让UI人员修改图片。这里也有解放思想的影子,在和同事领导交流这个问题的时候,因为我们公司没有LCD显示屏的专家,但是领导的思路和我这个虾兵蟹将的思路是不一样的。
2025-01-11 21:22:58
340
原创 周记-Repeater中的children和item区别
在开发的界面时,用到了,表头需要根据是否存在显示的项,来进行显示。如果判断有没有存在显示的项,可以用下面的代码表示的子项,而是访问中的项,这里要用到,不能去访问。这是一个比较简单的问题,这里我学到的一点是,了解基本用法,也就是用某个框架时,需要了解和掌握基本的惯用法,包括学习编程语言时也是。掌握了惯用法,可以类推,而不是每次都在互联网上查找。虚拟机占的磁盘太大了,所以用了移动硬盘,虚拟机也常开着,然后电脑就不时的蓝屏。找IT协助,说只能重装系统试下,那还是算了。感觉还是硬盘掉了的原因,容易碰到,链接不稳
2025-01-06 22:03:02
305
原创 周记-唐纳德的《计算机程序设计艺术》
开发一个协议,字段有些多,每个字段是QT的属性,需要写Q_PROPERTY,一个一个编辑的话比较繁琐,耗费时间。后来就用代码生成了头文件和源文件,get和set还有signal函数,内容基本都是固定的,只要有字段的名字就可以。所以用代码去生成比较方便。linux内核中也有这样的例子,比如对于logo的处理,会把logo图片的内容,在编译期间,生成头文件,头文件中有图片的十六进制数组。加快linux的启动时间,不用在启动过程中,再去读取图片数据。
2024-12-29 16:33:14
403
原创 周记-修改系统实践对软件的影响
使用QT开发,软件中用到了很多QTimer,包括和系统时间有关的,比如QDateTime。软件中有修改系统时间的功能,修改时间后会重启系统,这样软件不会受到系统时间的影响。有时候会同步时间,如何判断修改时间对应用软件的影响。这要看类使用的系统调用,是不是受到系统时间的影响,用的是CPU时间还是系统时间。qml。
2024-12-22 10:53:41
204
原创 如何学好C++?
刚开始学C++,陷入在语法的迷惑世界里,主要是不明白为什么这么设计。后来,C++出了很多新的标准,越来越读不懂新的标准,同样,不知道为什么会有这样的标准出现,目的是什么。之前听到一个消息,大概是,写effective系列的作者,表示不会再写新书了,因为他自认为无法理解新的标准了,也说明了新标准的复杂。和C++相比,C语言更容易一些,那是太简单了。只有98年和2011年的两个标准。随着学习和工作的深入,后来发现学习路线可能是不对的,前面一直在C++的表层游荡,没有深入到核心的部分,但什么是C++核心的部分
2021-11-21 20:29:46
1267
原创 使用windbg调试器定位程序的内存泄漏
windbg是windows平台下功能强大且轻量级的调试器,支持调试C/C++、C#等。之前在定位差压总控台的崩溃bug时,用到了windbg,功能比较强大,但是用起来比较费劲,需要记忆常用的命令,最重要的是界面比较丑。使用windbg最关键的是符号的配置,符号文件是链接程序过程中,生成的附件文件,其内容包含全局变量,局部变量,函数名称和入口地址,源代码行号等,符号对于调试应用程序非常重要。使用VS编译程序时,默认生成了以pdb结尾的符号文件。对于windows公共的系统程序(exe,动态库
2021-07-31 09:47:49
1964
原创 理解汇编语言
从汇编语言中,可以很好地理解CPU的运行,特别是对计算机整体架构的理解。冯诺依曼最早提出了以存储器为核心的现代电子计算机架构。从编程语言的层次上看,汇编语言属于低级语言。计算机只可以识别(译码)二进制,但是为什么呢?因为计算机的元器件只有高低电平之分,而没有高、中高、中、中低和低之分,如果有这些,那也许计算机可以识别5进制的数了,就像控制灯的开关,只有开和关两个状态,现在某些灯可以调整亮度,可以理解调整电流的大小?而对于计算机的元器件,例如晶体二极管,它只有两个状态。计算机识别0和1,其实是识别电.
2021-06-12 22:51:47
1536
原创 图灵机探索
图灵机是阿兰图灵在解决可计算数判定性问题时,提出的一种解决方法,图灵在论文中使用到了该计算机器。刨去图灵机的分类和形式化的定义,图灵机执行一系列的状态变化。把只包含0和1的字符串输入到图灵机中,图灵机依次根据字符串的每个字符,来决定下一个的状态,当然需要有一个初始状态,机器从初始状态开始运行,把初始状态称为状态0,图灵机依次处理每个输入的字符,例如遇到字符0,跳转到状态1,遇到字符1,跳转到状态2,而在状态1和状态2,同样对输入的字符执行规定的状态变化。可以想象,图灵机处在某个状态时,可..
2021-06-12 22:49:31
1294
原创 __RTC_CheckEsp实现原理
01371563 mov esi,esp01371565 push offset string "pause" (1377804h)0137156A call dword ptr [__imp__system (137A3F4h)]01371570 add esp,401371573 cmp esi,esp01371575 call @ILT+420(__RTC_CheckEsp) (13711A...
2021-04-11 13:45:43
1418
原创 【C++】根据类的成员变量地址获取对象地址
/* 根据一个成员变量的地址获取类对象的地址 */template<class class_type, class data_type>void *GetBaseFromDataMember(data_type class_type::*mem, void* pmem){ union temp{ int class_type::*mem; int offset; }; union PtrToInt { void *p.
2021-04-08 21:49:01
2118
翻译 QObject详细描述(来自assistant.exe)
详细描述QObject类是所有Qt对象的基类。QObject是Qt Object Model的核心。这个模型的核心特征是,为了无缝对象通信的,叫做signals和slots的一个强大的机制。你可以使用connect()连接一个信号和槽,使用disconnect()销毁该连接。为了避免永远不会结束的通知循环,你可以使用blockSignals()临时地组织信号。保护函数connectNotify()和disconnectNotify()让追踪连接成为可能。QObjects使用obje...
2020-11-23 22:08:57
373
原创 8086汇编:DOS系统功能调用表举例(INT 21h)三
OB 检验键盘状态输入:无输出:AL = 00(有输入) AL = 01(无输入); 0b.asm; masm 0b.asm; link 0b.obj; debug 0b.execode segment assume cs:codemain: mov ah, 0bh int 21h mov ax, 004ch int 21hcode endsend main调试结果,使用r运行,使用p步过。...
2020-10-23 14:00:06
774
原创 【8086汇编】输入任意数量的无符号整数,并使用冒泡排序进行排序后输出
不知道为啥,使用dosbox运行后,输出结果正确,但是调用4ch,退出程序时,没有退出。data segmentbuf db ? ; buf 用来保存输入的数字(字符串),无符号数,无法输入负数db ?db 10 dup(?)array dw 100 dup(?) ; array 用来保存输入的数字number dw 1 dup(?)
2020-10-17 11:42:11
1943
2
原创 【深入理解】C函数调用与汇编语言
函数在调用时,需要关注的有几个点,如何传递参数,如何返回到原来的地方继续执行。今天通过查看函数对应的汇编进行分析。函数和调用函数的代码如下:long long add(long long x, long long y) { long long sum = x + y; return sum;}…long long x = 3, y = 7;long long a = add(x, y);函数add有两个long long的参数x和y,在函数中,有一个局部变量sum,赋值
2020-10-14 13:16:18
612
原创 程序运行时,为什么栈的访问比堆的访问更快?
我不是在问,程序转换为汇编代码后,访问堆的汇编代码,多了一步,就是访问栈中的指针(局部的指针),再去访问堆。从汇编代码层面,直接访问栈和堆,为什么access stack faster than heap?是CPU缓存机制吗,还是其他?...
2020-09-27 21:31:41
405
原创 C++类单一继承时(带有虚函数)在内存模型上的探索
注:demo程序只是为了探索对象模型。在《深度探索C++模型》一书中,作者在描述编译器对vptr在class object的布局做了描述,一般放在data member的前面,也就是class object的最前面,也可以放在data member的后面。今天使用g++编译器和gdb调试器,来试验vptr在base class和derived class中的布局。单个类中包含虚函数时的虚指针布局假设有一个base class B,代码如下:class B {public:
2020-09-20 14:16:25
152
原创 WAF 绕过方法
命令注入通配符?,*在bash shell中,问号?表示通配符,可以替换任意的单个字符(非空),*表示通配符,可以匹配任意长度(包括空)。例如下面的命令与/usr/sbin/cat /etc/passwd是等价的。来自exploit-db上的一篇文章/usr/s?in/?at /et?/pass?dSQL注入注释/**/在SQL查询语句中加入注释,例如select/**/from,当WAF不摘除注释而去匹配正则表达式时,可能会匹配不上,从而绕过。...
2020-08-12 21:13:57
1885
原创 C语言关键字static
staticC语言中的关键字static有3个用法,它表示静态变量或函数,被声明为静态的变量,存在在静态/全局变量区。它的作用主要是:通过static限定外部对象,可以达到隐藏外部对象的目的。1,函数中的静态局部变量。函数中的静态局部变量在函数调用过程中,它一直存在,无论函数是否被调用,它只可以被赋值一次,再次调用该函数时,里面的局部变量不会进行初始化。2,文件(模块)中的全局静态变量。文件(模块)中的全局静态变量只能被该文件中的其他函数使用,无法被其他文件(模块)中的函数使用。
2020-08-12 20:30:36
228
原创 8086汇编:DOS系统功能调用表举例(INT 21h)二
续上一篇8086汇编:DOS系统功能调用表举例(INT 21h)09 向标准输出写字符串说明:DS:DX,保存字符串地址,字符串以"$"结尾; write string to standard output; 09.asm; masm.exe 09.asm; link.exe 09.obj; 09.exedata segments db 'hello, world!', '$'data endscode segment assume ds:data, cs:c
2020-06-17 20:52:23
1377
原创 8086汇编:DOS系统功能调用表举例(INT 21h)
参考链接:DOS Interrupts开发环境:dosbox,windows01 从标准输入(STDIN)读取字符说明:返回值 AL = 读取的字符; read char from stdin; 01.asm; masm.exe 01.asm; link.exe 01.obj; 01.execode segment assume cs:codemain: mov ah, 01h ; read char from stdin
2020-06-14 20:18:54
3126
原创 ddos类型及攻击测试
ddos是分布式拒绝服务攻击,对于一个提供服务的服务器,短时间内恶意访问次数过多,频率过高时,正常的用户无法访问,正常使用业务,造成拒绝服务。ddos工具很多,一方面是ddos攻击的原理,需要熟悉协议原理(包括网络层,传输层,应用层)。hping3是linux下的一个ddos工具,记录下它的使用。假设服务器IP是192.168.1.1,服务端口是80。TCP SYN Floodhping3 --flood --syn -p 80 192.168.1.1TCP ACK Floodh
2020-06-14 19:52:10
1456
原创 用了这么久的Linux系统,谈谈感受
用了这么久的Linux系统,谈谈感受把笔记本电脑换成linux操作系统,也有一段时间了。总体的感受与windows相比,还是不太方便,因为大部分人使用的是windows,涉及需要共同使用的软件时,很不方便。从接触电脑开始,就是windows,用了好几年的windows,说放弃就放弃了,这是不现实的。就像身上的赘肉跟了自己多年,突然你说要减肥,赘肉舍不得,你也舍不得呀。在大学的一...
2020-04-19 18:41:45
1601
原创 让我来问问你,Python不能做什么?
让我来问问你,Python不能做什么?如果有人问你,Python能用来做什么,如果你用过Python,你肯定可以向他滔滔不绝地介绍Python的各种强大功能。但是,假如问你,Python不能做什么?你可能要思考一下了。2020年1月份,TIOBE指数发布编程语言排行榜,Python语言排在第3名,TIOBE指数是一个编程社区指数,该指数根据编程语言在各大搜索引擎的搜索次数等指标...
2020-03-29 13:31:17
976
原创 C语言参数传递所使用的寄存器
探索下C语言的函数是如何传递参数的,寄存器?栈?,何时使用寄存器,使用哪些寄存器,什么时候使用栈来传递参数。这是容易疑惑的地方。用gcc编译C程序,看看C语言是如何传递参数的。同时用到了edb调试器。使用的操作系统是linux 64位。思路是编写一个简单的函数,具有个数不同的参数。函数没有具体的意义,纯粹是为了探索C语言的函数是如何传递参数的。函数有1个参数// a.c// gc...
2020-02-09 13:12:53
9023
原创 HTTP响应码
参考:rfc2616,https://developer.mozilla.org/zh-CN/docs/Web/HTTP/StatusHTTP响应码分为5种,1xx,2xx,3xx,4xx,5xx,来看一些这么多的响应码的含义。目前来看,没有一个web服务器实现了所有的响应码,因此,实践中见不到所有的响应码是正常的。信息响应 1xx100 Continue客户端应该继续请求。100...
2020-01-18 09:36:46
256
原创 同IP,不同端口,登录一个页面时,旧版本firefox发送另一个端口的cookie
遇到的一个问题,一个服务器开了两个不同的端口,相当于两个网站,假设A和B。例如127.0.0.1:81和127.0.0.1:80,当我登录A后,浏览器缓存了A的cookie等信息。然后我再去登录B,这时候发现登录不了,抓包发现,在登录B的过程中,提交的cookie信息中,包含了网站A的cookie信息,网站B无法识别,因此返回了302重定向,重定向到了登录页面。我的firefox比较老,是...
2019-09-16 19:57:35
295
原创 wampserver安装后,远程访问出现403
wampserver集成了apache2、mysql和PHP,但是默认安装后,如果远程访问,出现403错误,没有权限访问。其实是默认配置的问题。可以遍历httpd.conf,将其中的Require local修改为Require all granted。如果配置了虚拟主机,需要修改/extra/vhosts.conf文件,将其中的Require local修改为Require all gr...
2019-09-11 21:58:35
433
原创 python xlrd,读取excel文件
xlrd就是excel read的意思,用来读取excel表格。在做自动化测试的时候用到了这个库,看一下常用的函数。import xlrdfilename = "abc.xls"book = xlrd.open_workbook(filename) # 打开一个工作薄,不需要手动进行关闭sheet = book.sheet_by_index(0) # 获取一个工作表,以i...
2019-09-11 21:52:58
2899
原创 PHP配置文件php.ini的一些事儿
工作时候遇到的问题,在用dvwa靶机环境时,发现上传大文件会失败,需要修改PHP的配置文件php.ini,包括多个字段都要进行修改。所以就记录下php.ini的一些配置。更详细的内容可以参考PHP官网。下面的PHP7.3中cli目录下的配置文件,做些注释。[PHP];;;;;;;;;;;;;;;;;;;; About php.ini ;;;;;;;;;;;;;;;;;;;;; ...
2019-09-11 21:35:06
2191
原创 tftp协议-没有认证的简单文件传输协议
笔试时,有一道题目,tftp的端口号是多少。这个以前没有接触过,就随便写了个端口。tftp全称是Trivial File Transfer Protocol,简单文件传输协议,比ftp还要简单,没有认证机制,它使用UDP协议,端口号是69。我用IPOP开启了tftp服务器,使用wireshark抓包时,发现只有客户端发给服务器的tftp包,比如读请求,然后收到块后的确认,却没有收到服务器发来的...
2019-07-16 23:11:05
1036
原创 mysql union 联合语句错误
在测试SQL注入的时候,mysql提示错误,因为联合语句查询的结果的列数不同,导致了这个错误。例如下面的SQL查询语句:select * from user where user_id='1' union select version();表user有6列,而union后面的语句:select version()查询结果只有一列,因此会出现错误,把后面的语句查询结果变成6列就可以了。s...
2019-07-09 23:12:11
1648
原创 本地端口转发-有中间商但是不赚差价
本地端口转发想象这样一个场景,在局域网里面,有一个主机A,由于限制,主机A不能访问外网,现在要使其能够访问外网的一台主机C。而局域网中有一台边界主机B,B既可以与主机A通信,也可以与外网通信,这时我们可以使用主机B做跳板,使主机A能够访问外网的主机C。举个形象的例子,你的左边坐了一个帅哥(A),你的右边坐了一个美女(C),然后左边的帅哥(A)写了一封情书(请求数据包),请你帮忙传递,你用左...
2019-07-06 17:32:27
1435
原创 寻找问题的本质和围绕问题的本质
掌握不了问题的本质,容易出现南辕北辙的现象,我相信,世界上百分之九十九的事情都是有其规律可循的,如果没有探究到问题的本质,就可能会围绕着问题转圈圈,而没有实质性的进展。其实目的地就在你身边,转个身或扭个头就发现了,而往往我们就错过了这些,一直在目的地的周围徘徊。曾经有过这样的感受,在学习一门新语言的过程中,会去上网去查找相关的知识,这一找不要紧,一下又钻进其他知识中去了,而忘记了当初的目的地在...
2019-06-04 21:43:57
805
原创 [逆向,栈溢出]《0day安全:软件漏洞分析技术》2.3.2控制程序的执行流程 复现
记录一下。程序使用dev-cpp编译运行,注意要修改为32位debug,安装的ollydbg只能调试32位的应用程序。C源代码,来自书上。多了两个头文件string.h和stdlib.h。#include <stdio.h>#include <string.h>#include <stdlib.h>#define PASSWORD "1234...
2019-05-02 11:20:08
393
原创 [8086汇编]读取无符号整数并打印该整数
使用0ah中断调用号,读取字符串,然后将字符串转换成整数,打印该整数。; read u int number; readuint.asm; masm.exe readuint.asm; link.exe readuint.obj; readuint.exedata segmentbuf db 5db ?db 5 dup(?)number dw 0data endsco...
2019-04-26 13:20:17
1312
原创 [8086汇编]打印无符号整数函数
8080汇编中关于打印只有打印字符和字符串,没有打印整数的,因此写了一个打印整数的函数print_int,参数存放在寄存器ax中。在dosbox中模拟通过。; test.asm, run in dosbox; assembly: masm test.asm; link : link test.obj; run : test.exedata segmentdata en...
2019-04-16 16:46:48
1767
3
原创 [8086汇编]int 21h dos函数码
在8086汇编中,会用到很多的中断调用,21h中断是最常用的,这里总结下21h的函数功能码,以及一些小的example code。下图是int 21h DOS函数码。包括控制台读写,获取系统信息,文件目录管理等。(int 21h DOS功能码)01 Read character from STDINinput: AH = 01output: AL = read cha...
2019-04-16 15:46:49
2779
许多算法都是现成的,是否有必要去掌握各种算法及其细节的实现?
2016-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人