ITPub博客

首页 > 数据库 > Oracle > [20261002]验证sskgphpjw函数参与运算的字符串是否存在规律.txt

[20261002]验证sskgphpjw函数参与运算的字符串是否存在规律.txt

原创 Oracle 作者:lfree 时间:2026-10-06 21:00:28 0 删除 编辑

[20261002]验证sskgphpjw函数参与运算的字符串是否存在规律.txt

--//bpftrace脚本跟踪sskgphpjw函数,无意间发现参与字符串运算存在某个规律,很明显每次运算的ascii码在原来的基础上+1.

# bpftrace  sskgphpjw.bt 0
Attached 2 probes
[16:22:49] sskgphpjw pid=5033 ptr=0x00007ffed434d0e0 len=43 str=book/u01/app/oracle/product/21.0.0/dbhome_1
[16:22:49] sskgphpjw pid=5033 return hash_value=0x5507207c 1426530428
[16:22:49] sskgphpjw pid=5033 ptr=0x00007ffed434d0e0 len=43 str=cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
[16:22:49] sskgphpjw pid=5033 return hash_value=0x7e0edb60 2114902880
[16:22:49] sskgphpjw pid=5033 ptr=0x00007ffed434d0e0 len=43 str=dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
[16:22:49] sskgphpjw pid=5033 return hash_value=0x99eaaedc 2582294236
[16:22:49] sskgphpjw pid=5033 ptr=0x00007ffed434d0e0 len=43 str=errn2x342dss2rudfoh2surgxfw25413132gekrphb4
[16:22:49] sskgphpjw pid=5033 return hash_value=0x32fcf5bc 855438780

book/u01/app/oracle/product/21.0.0/dbhome_1
cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
errn2x342dss2rudfoh2surgxfw25413132gekrphb4

--//能否写一个bash shell脚本验证是否正确。仅仅带入book/u01/app/oracle/product/21.0.0/dbhome_1,输出如下
cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
errn2x342dss2rudfoh2surgxfw25413132gekrphb4

--//我的测试:
$ echo -n book/u01/app/oracle/product/21.0.0/dbhome_1 | od -An -v -t u1 | awk '{for(j=1;j<=NF;j++) printf "%c", ($j+1)}';echo
cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2

$ echo -n book/u01/app/oracle/product/21.0.0/dbhome_1 | od -An -v -t u1 | awk '{for(j=1;j<=NF;j++) printf "%c", ($j+2)}';echo
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3

$ echo -n book/u01/app/oracle/product/21.0.0/dbhome_1 | od -An -v -t u1 | awk '{for(j=1;j<=NF;j++) printf "%c", ($j+3)}';echo
errn2x342dss2rudfoh2surgxfw25413132gekrphb4
--//开始的写法要比前面复杂,想到了使用od,没考虑使用awk,直接参考了kimi的解答。

--//自己原始的写法如下:
$ echo -n book/u01/app/oracle/product/21.0.0/dbhome_1 | od -An -v  -t u1 -w1 | xargs -IQ bash -c "echo 'obase=16; Q+3'|bc" | xxd -r -p; echo
errn2x342dss2rudfoh2surgxfw25413132gekrphb4


--//顺便贴出kimi的解答:
#!/bin/bash
# sskgphpjw 字符串规律验证: 每次运算每个字符 ASCII 码 +1
# 用法: ./sskgphpjw.sh "book/u01/app/oracle/product/21.0.0/dbhome_1" [迭代次数,默认3]

s="${1:-book/u01/app/oracle/product/21.0.0/dbhome_1}"
n="${2:-3}"

echo "输入: $s"
for ((i=1; i<=n; i++)); do
    # od 输出每个字节的十进制值, awk 逐字节 +1 (mod 256) 后再转回字符
    s=$(printf '%s' "$s" | od -An -v -tu1 | \
        awk '{for(j=1;j<=NF;j++) printf "%c", ($j+1)%256}')
    echo "第${i}次+1: $s"
done

$ . a1.sh
输入: book/u01/app/oracle/product/21.0.0/dbhome_1
第1次+1: cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
第2次+1: dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
第3次+1: errn2x342dss2rudfoh2surgxfw25413132gekrphb4


--//deepseek的解答:
#!/bin/bash
s="book/u01/app/oracle/product/21.0.0/dbhome_1"
for offset in 1 2 3; do
  out=""
  for ((i=0; i<${#s}; i++)); do
    c="${s:$i:1}"
    # 获取 ASCII 码,加 offset,再转回字符
    printf -v code "%d" "'$c"
    new=$((code + offset))
    printf -v ch "\\x$(printf '%02x' $new)"
    out+="$ch"
  done
  echo "$out"
done

$ . a2.sh
cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
errn2x342dss2rudfoh2surgxfw25413132gekrphb4
--//printf -v code "%d" "'$c"写法非常特殊,注意$c前有1个单引号,表示转化成asc码。
--//对比前面的执行效率较低。

perl -e '
my $s = shift;
for my $o (1..3) {
    my $r = $s;
    $r =~ s/(.)/chr(ord($1)+$o)/ge;
    print "$r\n";
}
' "book/u01/app/oracle/product/21.0.0/dbhome_1"

cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
errn2x342dss2rudfoh2surgxfw25413132gekrphb4

python3 - <<'PY' "book/u01/app/oracle/product/21.0.0/dbhome_1"
import sys
s = sys.argv[1]
for o in (1, 2, 3):
    print("".join(chr(ord(c) + o) for c in s))
PY

cppl0v120bqq0psbdmf0qspevdu032/1/10ecipnf`2
dqqm1w231crr1qtceng1rtqfwev14302021fdjqoga3
errn2x342dss2rudfoh2surgxfw25413132gekrphb4

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3184451/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7968772