[Info-vax] Reading SYSUAF with DCL problem
fredthebare at gmail.com
fredthebare at gmail.com
Wed May 9 01:24:33 EDT 2018
I am trying to extract some simple information from a SYSUAF.DAT, mainly username, owner, UIC, last logged-in etc. I have borrowed and repurposed some existing code from the internet.
I am opening and reading the file sequentially and can extract username, UIC, last logged-on OK, but owner is providing "trouble".
It is an old 7.3 system and I have extracted UAFDEF to get the offsets.
$ open /read /share uaf 'f$parse("SYSUAF","SYS$SYSTEM:.DAT",,,"SYNTAX_ONLY")
$loop:
$ read/end=done uaf rec
$ username=f$extr(4,12,rec) ! UAF$T_USERNAME, UAF$S_USERNAME
$ owner=f$extr(84,32,rec) ! UAF$T_OWNER, UAF$S_OWNER
UAFDEF is:
.MACRO $UAFDEF,$GBL
$DEFINI UAF,$GBL
$EQU UAF$C_USER_ID 1
$EQU UAF$C_VERSION1 1
$EQU UAF$C_KEYED_PART 52
$EQU UAF$C_MAX_PWD_LENGTH 32
$EQU UAF$K_MAX_PWD_LENGTH 32
$EQU UAF$C_AD_II 0
$EQU UAF$C_PURDY 1
$EQU UAF$C_PURDY_V 2
$EQU UAF$C_PURDY_S 3
$EQU UAF$K_CURRENT_ALGORITHM 3
$EQU UAF$C_CURRENT_ALGORITHM 3
$EQU UAF$C_PREFERED_ALGORITHM 127
$EQU UAF$K_PREFERED_ALGORITHM 127
$EQU UAF$C_PREFERRED_ALGORITHM 127
$EQU UAF$K_PREFERRED_ALGORITHM 127
$EQU UAF$C_CUST_ALGORITHM 128
$EQU UAF$K_CUST_ALGORITHM 128
$EQU UAF$K_FIXED 644
$EQU UAF$C_FIXED 644
$EQU UAF$K_LENGTH 1412
$EQU UAF$C_LENGTH 1412
$EQU UAF$S_UAFDEF 1412
$EQU UAF$B_RTYPE 0
$EQU UAF$B_VERSION 1
$EQU UAF$W_USRDATOFF 2
$EQU UAF$S_USERNAME 32
$EQU UAF$T_USERNAME 4
$EQU UAF$T_USERNAME_TAG 35
$EQU UAF$L_UIC 36
$EQU UAF$W_MEM 36
$EQU UAF$W_GRP 38
$EQU UAF$L_SUB_ID 40
$EQU UAF$S_PARENT_ID 8
$EQU UAF$Q_PARENT_ID 44
$EQU UAF$S_ACCOUNT 32
$EQU UAF$T_ACCOUNT 52
$EQU UAF$S_OWNER 32
$EQU UAF$T_OWNER 84
$EQU UAF$S_DEFDEV 32
$EQU UAF$T_DEFDEV 116
$EQU UAF$S_DEFDIR 64
$EQU UAF$T_DEFDIR 148
$EQU UAF$S_LGICMD 64
$EQU UAF$T_LGICMD 212
$EQU UAF$S_DEFCLI 32
$EQU UAF$T_DEFCLI 276
$EQU UAF$S_CLITABLES 32
$EQU UAF$T_CLITABLES 308
$EQU UAF$S_PWD 8
$EQU UAF$Q_PWD 340
$EQU UAF$L_PWD 340
$EQU UAF$S_PWD2 8
$EQU UAF$Q_PWD2 348
$EQU UAF$W_LOGFAILS 356
$EQU UAF$W_SALT 358
$EQU UAF$B_ENCRYPT 360
$EQU UAF$B_ENCRYPT2 361
$EQU UAF$B_PWD_LENGTH 362
$EQU UAF$S_EXPIRATION 8
$EQU UAF$Q_EXPIRATION 364
$EQU UAF$S_PWD_LIFETIME 8
$EQU UAF$Q_PWD_LIFETIME 372
$EQU UAF$S_PWD_DATE 8
$EQU UAF$Q_PWD_DATE 380
$EQU UAF$S_PWD2_DATE 8
$EQU UAF$Q_PWD2_DATE 388
$EQU UAF$S_LASTLOGIN_I 8
$EQU UAF$Q_LASTLOGIN_I 396
$EQU UAF$S_LASTLOGIN_N 8
$EQU UAF$Q_LASTLOGIN_N 404
$EQU UAF$S_PRIV 8
$EQU UAF$Q_PRIV 412
$EQU UAF$S_DEF_PRIV 8
$EQU UAF$Q_DEF_PRIV 420
$EQU UAF$S_MIN_CLASS 20
$EQU UAF$R_MIN_CLASS 428
$EQU UAF$S_MAX_CLASS 20
$EQU UAF$R_MAX_CLASS 448
$EQU UAF$L_FLAGS 468
$EQU UAF$V_DISCTLY 0
$EQU UAF$V_DEFCLI 1
$EQU UAF$V_LOCKPWD 2
$EQU UAF$V_RESTRICTED 3
$EQU UAF$V_DISACNT 4
$EQU UAF$V_DISWELCOM 5
$EQU UAF$V_DISMAIL 6
$EQU UAF$V_NOMAIL 7
$EQU UAF$V_GENPWD 8
$EQU UAF$V_PWD_EXPIRED 9
$EQU UAF$V_PWD2_EXPIRED 10
$EQU UAF$V_AUDIT 11
$EQU UAF$V_DISREPORT 12
$EQU UAF$V_DISRECONNECT 13
$EQU UAF$V_AUTOLOGIN 14
$EQU UAF$V_DISFORCE_PWD_CHANGE 15
$EQU UAF$V_CAPTIVE 16
$EQU UAF$V_DISIMAGE 17
$EQU UAF$V_DISPWDDIC 18
$EQU UAF$V_DISPWDHIS 19
$EQU UAF$V_DEFCLSVAL 20
$EQU UAF$V_EXTAUTH 21
$EQU UAF$V_MIGRATEPWD 22
$EQU UAF$S_NETWORK_ACCESS_P 3
$EQU UAF$B_NETWORK_ACCESS_P 472
$EQU UAF$S_NETWORK_ACCESS_S 3
$EQU UAF$B_NETWORK_ACCESS_S 475
$EQU UAF$S_BATCH_ACCESS_P 3
$EQU UAF$B_BATCH_ACCESS_P 478
$EQU UAF$S_BATCH_ACCESS_S 3
$EQU UAF$B_BATCH_ACCESS_S 481
$EQU UAF$S_LOCAL_ACCESS_P 3
$EQU UAF$B_LOCAL_ACCESS_P 484
$EQU UAF$S_LOCAL_ACCESS_S 3
$EQU UAF$B_LOCAL_ACCESS_S 487
$EQU UAF$S_DIALUP_ACCESS_P 3
$EQU UAF$B_DIALUP_ACCESS_P 490
$EQU UAF$S_DIALUP_ACCESS_S 3
$EQU UAF$B_DIALUP_ACCESS_S 493
$EQU UAF$S_REMOTE_ACCESS_P 3
$EQU UAF$B_REMOTE_ACCESS_P 496
$EQU UAF$S_REMOTE_ACCESS_S 3
$EQU UAF$B_REMOTE_ACCESS_S 499
$EQU UAF$B_PRIMEDAYS 514
$EQU UAF$V_MONDAY 0
$EQU UAF$V_TUESDAY 1
$EQU UAF$V_WEDNESDAY 2
$EQU UAF$V_THURSDAY 3
$EQU UAF$V_FRIDAY 4
$EQU UAF$V_SATURDAY 5
$EQU UAF$V_SUNDAY 6
$EQU UAF$B_PRI 516
$EQU UAF$B_QUEPRI 517
$EQU UAF$W_MAXJOBS 518
$EQU UAF$W_MAXACCTJOBS 520
$EQU UAF$W_MAXDETACH 522
$EQU UAF$W_PRCCNT 524
$EQU UAF$W_BIOLM 526
$EQU UAF$W_DIOLM 528
$EQU UAF$W_TQCNT 530
$EQU UAF$W_ASTLM 532
$EQU UAF$W_ENQLM 534
$EQU UAF$W_FILLM 536
$EQU UAF$W_SHRFILLM 538
$EQU UAF$L_WSQUOTA 540
$EQU UAF$L_DFWSCNT 544
$EQU UAF$L_WSEXTENT 548
$EQU UAF$L_PGFLQUOTA 552
$EQU UAF$L_CPUTIM 556
$EQU UAF$L_BYTLM 560
$EQU UAF$L_PBYTLM 564
$EQU UAF$L_JTQUOTA 568
$EQU UAF$W_PROXY_LIM 572
$EQU UAF$W_PROXIES 574
$EQU UAF$W_ACCOUNT_LIM 576
$EQU UAF$W_ACCOUNTS 578
$EQU UAF$S_DEF_CLASS 20
$EQU UAF$R_DEF_CLASS 580
$DEFEND UAF,$GBL,DEF
.ENDM
The problem is...the owner field has binary information in it and sometimes seems to start 1 character later...would appreciate some suggestions...
I know I could use F$PARSE to get rid of junk, but why is the actual owner start position not as in UAFDEF?
More information about the Info-vax
mailing list