[20261008]验证Shared Memory Segments key以及Semaphore Arrays Key(11g).txt
[20261008]验证Shared Memory Segments key以及Semaphore Arrays Key(11g).txt--//根据前几天的测试,在11g下做一个验证:1.环境:SYS@book> @ ver1PORT_STRING
[20261008]gdb引入结构体是否可行.txt
[20261008]gdb引入结构体是否可行.txt$ cat sskgphpjw.cstruct sskgphpjw_input { unsigned char data[0x100]; // 偏移 0x00,字符串/名字数据 uint64_t len;
[20261008]bpftrace定义结构体例子.txt
[20261008]bpftrace定义结构体例子.txt--//前几天确定sskgphpjw函数计算Semaphore Arrays key。sskgphpjw函数仅仅传递1个参数,并且字符串长度实际0x108,rdi的地址实--//际上指向某个结构体的指针。--//当时就有1个想法,能否在bpftrace脚本定义1个结构体,实现类似功能。$ cat sskgphpjw1.btstruct ss
[20261007]关于oracle sskgph2函数.txt
[20261007]关于oracle sskgph2函数.txt--//在计算Semaphore Arrays Key时发现调用sskgpwidtokeys,跟踪整个过程时发现如下信息:# bpftrace sskgphpjw.bt 0Attached 9 probessskgpwidtokeys Beginsskgpbitspersem Begin[14:57:00] sskgpbitspers
[20261007]oracle Semaphore Arrays Key值的冲突.txt
[20261007]oracle Semaphore Arrays Key值的冲突.txt--//前面的测试已经验证了oracle Semaphore Arrays Key值使用sskgphpjw函数,通过跟踪它已经知道对应oracle Semaphore Arrays--//Key值.如果存在冲突呢?测试看看oracle如何处理这些问题。1.使用bpftrace监测结果如下:# bpftrace
[20261004]oracle sskgph2函数等价c以及python脚本.txt
[20261004]oracle sskgph2函数等价c以及python脚本.txt# bpftrace sskgphpjw.bt 0Attached 8 probessskgpwidtokeys Beginsskgpbitspersem Begin[10:21:51] sskgpbitspersem pid=4467 return hash_value=0x0000000e 14sskgpbi
[20261004]bpftrace查看oracle函数调用堆栈问题.txt
[20261004]bpftrace查看oracle函数调用堆栈问题.txt--//使用bpftrace建立脚本查看oracle sskgphpjw调用堆栈的问题,做一个记录:--//前面的分析已经确定sskgphpjw函数用来计算Semaphore Arrays Key,bpftrace脚本跟踪sskgphpjw函数,无意间发现参与字符串运算--//存在某个规律,很明显每次运算的ascii码在原
[20261002]验证sskgphpjw函数参与运算的字符串是否存在规律.txt
[20261002]验证sskgphpjw函数参与运算的字符串是否存在规律.txt--//bpftrace脚本跟踪sskgphpjw函数,无意间发现参与字符串运算存在某个规律,很明显每次运算的ascii码在原来的基础上+1.# bpftrace sskgphpjw.bt 0Attached 2 probes[16:22:49] sskgphpjw pid=5033 ptr=0x0000
[20261002]oracle Semaphore Arrays Key值的计算2.txt
[20261002]oracle Semaphore Arrays Key值的计算2.txt--//前面的测试已经确定使用sskgphpjw函数计算Semaphore Arrays Key,继续后面的测试。1.建立bpftrace脚本跟踪sskgphpjw执行时参数:$ cat test7.btuprobe:/u01/app/oracle/product/21.0.0/dbhome_1/bin/o
[20261001]oracle Semaphore Arrays Key值的计算.txt
[20261001]oracle Semaphore Arrays Key值的计算.txt--//尝试计算ipcs -s输出的Semaphore Arrays Key值的计算。1.问题提出:--//关闭数据库重新启动:--//修改/etc/sudoers建立加入如下:# grep oracle /etc/sudoersoracle ALL=(ALL)
[20261001]nm输出的问题.txt
[20261001]nm输出的问题.txt$ nm $(which oracle) | egrep "skgmhash|sskgphpjw"00000000057909b0 T skgmhash00000000057b5a30 t sskgphpjw--//提问:小写的t,大写T有什么区别,分别表示什么意思?--//deepseek解析如下:nm 输出里的第二列是符号类型。 T
[20260927]rlwrap与gdb配合使用问题.txt
[20260927]rlwrap与gdb配合使用问题.txt--//我个人比较偷懒,打过的命令总想不再按复杂的按键再次调唤出来。--//但是gdb现在的版本内部集成了readline库,但是两种总是配合不好,打过的命令退出后就没有记忆了,无法再调出。--//以前在centos 7.4就遇到类似问题,参考链接 : 20240922]gdb与rlwrap使用问题.txt--//当时的感觉就是还不如没有
[20260925]建立完善oname.sql脚本.txt
[20260925]建立完善oname.sql脚本.txt--//tpt 有1个ou.sql脚本,通过对象名查询相关信息,但是没有显示data_object_id,object_id的功能,自己写一个oname.sql脚本,支--//持data_object_id,object_id的显示,并且对象名查询支持正则表达式,这样更加灵活一些,在原来基础上再修改增加--//data_object_id,
[20260925]21c数字对象是什么(补充).txt
[20260925]21c数字对象是什么(补充).txt--//2024年8月事情记得第1次在21c跟踪执行sql语句library cache lock/library cache pin,有点点吃惊.直到现在不理解,现在大部分--//数字对象都知道来自那里,前段时间写了[20260901]表exp_head$的exp_id如何计算.txt,实际上还有1个数字对象无法确定,今天在整--//理笔记
[20260924]避免oracle audit sys operations记录到messages文件2(补充).txt
[20260924]避免oracle audit sys operations记录到messages文件2(补充).txt--//昨天通过修改/etc/rsyslog.conf文件,找到下划线那行,增加;local0.none;local1.none;local2.none如下内容。#*.info;mail.none;authpriv.none;cron.none action(type=&quo
[20260923]避免oracle audit sys operations记录到messages文件.txt
[20260923]避免oracle audit sys operations记录到messages文件.txt--//别人的抱怨,就是/var/log/message记录太多oracle sys用户执行的命令,其实在我看来主要对方不熟悉linux操作系统。--//不过还是仔细看一下是否可以将oracle sys操作记录的相关信息移动到单独的文件。1.环境:SYS@book> @ ver2=
[20260922]gdb下使用catch syscall与break有什么区别.txt
[20260922]gdb下使用catch syscall与break有什么区别.txt--//对于这2种方式有点混淆,在deepseek提问,给出的解答如下:一句话总结:break shmget 是用户态函数断点,通常断在 glibc 的 shmget() 包装函数入口;catch syscall shmget 是系统调用捕获点,断在真正的 shmget 系统调用进入/返回内核的边界。主要区别:
[20260922]bpftrace能否探测点内调用外部命令2.txt
[20260922]bpftrace能否探测点内调用外部命令2.txt--//deepseek给出的解答:方法一:使用 system() 函数(推荐)你可以在断点触发的探针动作中使用 system() 函数来执行 /bin/sleep 3。sudo bpftrace -e 'kprobe:你的断点函数 { printf("断点命中,开始休眠 3
[20260920]skgm表示什么.txt
[20260920]skgm表示什么.txt--//最近通过跟踪shmget,知道oracle内部通过skgmhash函数计算ipcs -m的key值.这里的skgm表示什么意思呢?--//oracle 许多函数采用英文的缩略写.$ ./lookup.awk skgmskgm : operating system dependent kernel generic memory (os depend
[20260920]跟踪那个oracle函数调用shmget(整理版本).txt
[20260920]跟踪那个oracle函数调用shmget(整理版本).txt--//最近测试遇到斜线的问题,导致本地主机无法连接实例,突然想了解共享内存段Key值的计算,肯定是某种hash算法,开始使用--//ora_hash函数盲猜,根本对不上。使用sqlplus登录连接数据库,确定在调用shmget时已经知道对应的key值,想确定到底那个--//oracle内部函数调用shmget,测试遇