Skip to content

Instantly share code, notes, and snippets.

View mainframed's full-sized avatar

Soldier of FORTRAN mainframed

View GitHub Profile
@mainframed
mainframed / ECHO.RX
Created October 16, 2018 01:15
Echo a socket
/* REXX */
/* Change port to user number */
/* i.e. EVIL21 set port to 55521 */
p = '46290'
mf_ip = '0.0.0.0'
n = "25"x
txt = ''
r = "READY"||n
s = SOCKET('INITIALIZE','DAEMON',2)
s = SOCKET('SOCKET')
@mainframed
mainframed / tso_applid.sh
Created August 27, 2018 20:01
Add TSO applids
#!/bin/bash
for i in {11..99}; do
echo "A06TSO$i APPL AUTH=(NOACQ,NOBLOCK,PASS,NOTCAM,NVPACE,TSO,NOPO), X"
echo " EAS=1,ACBNAME=TSO00$i "
echo "*"
done
//SKELLY JOB (ASSY),'SKELLY',CLASS=A,MSGCLASS=Y, 00010000
// NOTIFY=&SYSUID,MSGLEVEL=(1,1) 00020000
//ASM EXEC PROC=HLASMCL 00030000
//SYSIN DD * 00040000
CLR70 TITLE 'C L E A R - TSO' 00050000
PRINT ON,DATA,GEN 00060000
CLEAR CSECT 00080000
* SETUP registers and save areas thanks @bigendiansmalls * 00110000
MAIN STM 14,12,12(13) # Save caller reg 00140000
LR 8,15 # Base register 00150000
#!/bin/bash
# This output goes in to <whatever>.VTAMLST(A0TCP)
echo "[+] Creating 00 through 99 LUs for" $1
STRLENGTH=`echo -n $1 | wc -m`
if [ "$STRLENGTH" -ne "6" ] ; then
echo "[!] The name you entered ($1) not long enough."
echo "[!] Must be 6 characters long"
exit
fi
/* REXX */
/* Simple HTTP REXX CURL */
/* Usage: HTTPR 'URL' or HTTPR '-O DATASET URL' */
/* Arguments: -O output to a file */
/* URL site to get */
/* By default the script will display the contents of the URL to the screen */
/* Cribbed from: */
/* https://groups.google.com/forum/#!topic/bit.listserv.tsorexx/lk74hblwn3U */
/* Copyright Soldier of FORTRAN */
/* trace i */
for i in `strings "//'user01.jcllib'"`
do
echo "$i ======"
cat "//'user01.jcllib($i)'"|grep pass
done
/* REXX */
/* Maps Storage to find UNIX UID/GID location */
ASCB_PTR = C2X(STORAGE(D2X(X2D("224")),4))
ASXB_PTR = C2X(STORAGE(D2X(X2D(ASCB_PTR) + X2D("6C")),4))
ACEE_PTR = C2X(STORAGE(D2X(X2D(ASXB_PTR) + X2D("C8")),4))
ACEE_LEN = C2D(STORAGE(D2X(X2D(ACEE_PTR) + X2D("14")),1))
ACEE_UID = STORAGE(D2X(X2D(ACEE_PTR) + X2D("15")),ACEE_LEN)
ACEEOCOX = C2X(STORAGE(D2X(X2D(ACEE_PTR) + X2D("98")),4))
ACEX = STORAGE(D2X(X2D(ACEEOCOX)),76)
USP = C2X(STORAGE(D2X(X2D(ACEEOCOX) + X2D("48")),4))
@mainframed
mainframed / LISTAPF.REXX
Created January 30, 2018 23:19
Simple rexx script to list APF authorized datasets
/* REXX */
/* Thanks to FILE221 on CBT Tape for mapping this out */
/* Lists APF Authorized datasets */
numeric digits 20 /* need this for D2X/C2D */
CVT = C2D(STORAGE(10,4)) /* CVT Pointer */
CVTAUTHL = C2D(STORAGE(D2X(CVT + 484),4))
IF CVTAUTHL = C2D('7FFFF001'x) THEN DO
/* The APF Table is Dynamic, not Static */
CVTECVT = C2D(STORAGE(D2X(CVT + 140),4))
ECVTCSVT = C2D(STORAGE(D2X(CVTECVT + 228),4))
#!/bin/sh
#
# This little script will list a lot of datasets and their members
# You need to install tsocmd from ibm (but most people have already)
#
# By SoF
echo " CATList by SoF"
echo ""
echo " [+] Getting Catalog"
@mainframed
mainframed / INFO.REXX
Created November 8, 2017 18:40
Quick REXX script to show user attributes. Used for demos.
/* REXX */
/* Quick REXX script to print LU info nicely */
A = OUTTRAP('OUT.')
ADDRESS TSO "LU"
B = OUTTRAP('OFF')
say WORD(OUT.1,1)
say WORD(OUT.2,1)
SAY OUT.3