一括表示

− 野ざらし言 −

[828] スパムすり替え用マクロ

めざら 2006/05/10(Wed) 06:10
<mezala@nifty.com> http://homepage3.nifty.com/mezala/
 スパム発言を消した殻を管理者の発言にすり替えて埋める場合,記録されて
いる発言時刻が仕事中の時間帯ではまずいという場合もあり,それを改竄する
ためのマクロです。Web Forum のログには UNIX 時間で記録された部分があり,
その部分と表示されている時刻を合わせて変更します。
 また,IP アドレス,パスワード,URI,メールアドレスを設定しておいて,
元のものと差し替えます。これらは必須ではありませんが,パスワードは元の
ままだと変更される可能性が残る(そんなこたぁしないでしょうが)ので,過
去の自分の発言ログのいずれかからコピーしておいたほうがよさそうです。
 UNIX 時間の取得には,Emmett 博士の文字列→ロング整数変換ルーチンを拝
借しました。

----------^ SPAM2ME.DEF ( date:2006-05-20 time:16:20 ) -----< cut here
= spam2me = by H_ear
#if 0
WebForumログの発言時刻変更とip/pwdのすりかえ
#endif
* mad for vz!
1 ^\ "" ?.
        (vw)??.
        ; ---- customizable data ----^
        a="",           ;ip address
        b="",           ;password
        c="",           ;uri
        d="",           ;mail address
        e="",           ;handle
        ; ---- customizable data ----$

        #> #> mb-,                              ;safety
        (5){ &> }
        #b &> #y #b &?("<>%s",b) #B mb-,        ;pwd
        #b &> #y #b &?("<>%s",a) #B mb-,        ;ip
        &d &m("日付が変わらない程度に調整する時間を入力")
        h-, pw.0-, mx+, &g("時刻調整(-12〜12)") mx-,
        &m("") ((r==-2 || r==-1) && pw.0==0)?>k ;skip
        (r>12 || r<-12 || r==0)?>k
        u+, (r<0)?{ u-, h=r=-r, } t=r*3600,     ;%- 符号と数値に分ける
        #b &> #d #d #y
        dz[=kz, l=kp..-1, dz],                  ;size
        ax=kz, si=kp-l-3, &02
        pu..0=ax, pu..1=dx,
        (u)?{ &Ia(pu,t) }?{ &Is(pu,t) }         ;%- 符号付きに未対応
        &?("%lu",pu..0,pu..1)
 :k     #< #<
        mp[=2, RX[+,
        ps[="<>0[0-9]/[0-1][0-9]/[0-3][0-9]-[0-2][0-9]:[0-5][0-9]<>",
        #c
        ps], RX], mp],
        (h)??>m
        (4){ #f } &n
        (r>23 || r<0)?{ &m(40) >z }     ;取得ミスなら終了
        h=(r+24-h)%24,                  ;時刻を変更
        mi[+, &?("%02d",h) mi], &>      ;★日付は変更しない手抜き
 :m     #b &> #y #b &?("<>%s",e) #B mb-,        ;handle
        #b &> #y #b &?("<>%s",c) #B mb-,        ;uri
        #b &> #y #b &?("<>%s",d) #B mb-,        ;mail address
 :z     ; ---- exit ----
        #b &> #d #d #y
        &d #] .

00:     ; ---- search back '<' ----
        ; <-- void
        ; --> (r)
        #s
        (r==-1 || lh+lx==0)?{ (1) . }
        (cd!='<')?>^
        (0)
02:     ; = get longint_str to ax,dx = by Emmett
        ; input:  ax=segment, si=offset
        ; output: ax,dx [&m("%ld",ax,dx)]
        ;         ax==dx==-1: 10進数ではない
        ; ----------------------------------------------------------------
        ; ----- longdec -----
        &i(3+$)."$
        $(56,8E,D8,33,C0,8B,D0,BF,0A,00,50,AC,8A,C8,58,80)$
        $(F9,30,7C,05,80,F9,39,7E,02,EB,15,50,8B,C2,F7,E7)$
        $(8B,D8,58,F7,E7,03,D3,80,E9,30,B5,00,03,C1,EB,DA)$
        $(59,2B,F1,83,FE,01,75,05,B8,FF,FF,8B,D0,C3)"
*

[Variables]
        a       ip address
        b       password
        c       uri
        d       mail address
        e       handle
        h       調整時間(常に正の値)
        l       スタックにある文字列(UNIX時間)の長さ
        t       指定秒
        u       符号のフラグ
[Buffers]
        pu      先頭4バイトにロング整数
        pw      指定時間の入力に使用
        kz      スタックをごみ箱に使用
[History]
2006/05/20 0.10 1st ver.
[Notes]
日付の変わらない範囲で,ってところがキモですな。何という手抜き。(^^;
----------$ SPAM2ME.DEF ( lines:85 ) -----------------------< cut here

[838] 最新スパム消去用マクロ

めざら 2006/05/21(Sun) 18:32
[828]へのコメント <mezala@nifty.com> http://homepage3.nifty.com/mezala/
 スパムが書き込まれたらさっさと対処したい。
 でも番号は飛ばしたくない,というわけでログを1発言戻すマクロです。

----------^ DEL1SPAM.DEF ( date:2006-05-21 time:13:35 ) ----< cut here
= del1spam = by H_ear
#if 0
Web Forumのログから最新発言を削除
#endif
* mad for vz!
1 ^\ "" ?.
        #^ #< &n (r<1)?.                ;削除する発言番号
        a=d=r, &s
        mp[=2, ps[=pa, RX[-, mb-,
        #F &?("\x ^%d<>",d) #m
        #c
        (r==-1)?{ &m("削除対象発言がありません") >z }
        #b #> #> #d #y #^ #<
 :l     ; ---- 次に新しい発言を探す ----
        #F &?("\x ^%d<>",a--) #m
        #c
        (r==-1)?{
                (a<2)?{ &m("次の番号がありません") >z }
                >l
        }
        #> #>
        (6){ &> }
        #b (-1){ #s (cd=='>')?{#d} } #G ;paにIPアドレスを取得
        #s #s ps=pr,
        #b (-1){ #s (cd=='>')?{#d} } #G ;prにUNIX時間を取得
        #^ #< #l
        &?("%d<>%s<>%s<>",a,pa,pr)
        #< &m("正常終了")

 :z     ; ---- exit ----
        RX], ps], mp],
        &d #] .
00:     #s (cd!='<')?>^
*
[Variables]
        d       削除する発言の番号
        a       前の発言番号
[Buffers]
        pa      番号検索とIPアドレス取得
        pr      UNIX時間を取得
[History]
2006/05/21 0.10 1st ver.
[Notes]
工夫した点は特になし。面倒だからできればいいのさ。
----------$ DEL1SPAM.DEF ( lines:44 ) ----------------------< cut here

↑ このページの先頭