にっき

2007/12/13 23:17:52

りふれくた〜


『MJ12bot/v1.0.8』ってなんだか見かけないくろ〜ら〜さんを見かけたからちょっと調べてみたら・・・
Majestic12.co.uk の解説ぺ〜じっぽいとこにある
引用:
Too old version: v1.0.8 - current bot version is v1.2.0 (v1.2.1 has just been released) - if you see v1.0.8 of the bot then it is fake, tell us its IP though please as we want to add it to the list of fake bots IPs above!

・・・ばっちり悪い子な偽装ぼっとさんみたいにう(´ω`;【みかん
ってことでさくっとおかえりいただくにう
RewriteCond %{HTTP_USER_AGENT} MJ12bot\/v1\.[0-1]\.

これでさくっと処理完了だからそんなことはおいといて...〆(・x・。【みかん
今日はでばぐや無茶するのに欠かせないりふれくしょん系のをまとめてご〜ご〜☆ヾ(・x・。【みかん



呼んだのは誰?
028-caller.lua
function foo()
    return debug.getinfo(2,[[n]]).name;
end

function bar()
    print(debug.getinfo(1,[[n]]).name .. [[ #=> ]] .. foo());
end

function baz()
    print(debug.getinfo(1,[[n]]).name .. [[ #=> ]] .. foo());
end

bar();
baz();

debug.getinfo() は他にもいろんな情報を取得できるっぽいから便利かなぁ?
とりあえず入力の仕様がないから普通に実行すると
C:\tool\lua>lua5.1.exe source\021-030\028-caller.lua
bar #=> bar
baz #=> baz

こんなかんじ...〆(・x・。【みかん

めそっど名の一覧
032-MethodList.lua
function MethodList(o)
    local ret = {};
    local key,val = next(o);
    
    while key ~= nil do
        if type(val) == [[function]] and string.sub(key,1,5) == [[test_]] then
            table.insert(ret,key);
        end
        key,val = next(o,key);
    end
    
    return ret;
end

require([[mylib]]);

a = {
    a = function() return nil end,
    test_moge = function() return [[moge]] end,
    test_test = function() return [[test]] end,
    test_var = 15
};

b = {
    a = 1,
    b = function() end,
    c = 23,
    test_ = 45,
    test_12 = function() end
};

PrintTable(MethodList(a));
PrintTable(MethodList(b));

受け取ったて〜ぶるの全ぷろぱてぃを順番に調べて,
関数型で『test_』ではじまるぷろぱてぃを集めるだけ☆
型とかぷりふぃっくすあたりを指定できるようにしといてもよかったのかなぁ?
とりあえず普通に実行すると
C:\tool\lua>lua5.1.exe source\031-040\032-MethodList.lua
[test_moge,test_test]
[test_12]

こんなかんじ☆

ろ〜かる変数の一覧
035-LocalValue.lua
function foo()
    local x = 1;
    local y = [[hello]];
    
    local ret = {};
    local i = 1;
    
    while debug.getlocal(1,i) ~= nil do
        local n,v = debug.getlocal(1,i);
        if n ~= [[ret]] and n ~= [[i]] then
            ret[n] = v;
        end
        i = i + 1;
    end
    
    return ret;
end

require([[mylib]]);
DumpTable(foo());

さっきのと似てるけど今回は自分自身の変数を拾わないとだから debug.getlocal() で☆
わ〜く変数も拾っちゃうから除外設定がけっこうめんど〜にう(´・ω・`;【みかん
とりあえずこれまた普通に実行すると
C:\tool\lua>lua5.1.exe source\031-040\035-LocalValue.lua
[y=>hello,x=>1]

これでいいのかなぁ?

それにしても debug 系のってくろ〜じゃ内部からだとちゃんと取れにゃいにう(´・ω・`;【みかん


こめんと

こめんとする?



 
投稿された内容の著作権はこめんとの投稿者に帰属するっぽいです☆
また,現在 IE6 以下で Sleipnir,Lunascape,Donut じゃないゆ〜ざえ〜じぇんとからの描き込みを制限してますです☆
該当しちゃうかたはてきとうにゆ〜ざえ〜じぇんとを偽装しちゃってくださいです(´ω`;【みかん
さぶこんてんつ
前月 2024年 4月 翌月
  1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30
 
       
             
  • あじ あじ
  • ED ED
  • えでん えでん
  • えれふぃ えれふぃ
  • ぐらぶれ ぐらぶれ
  • etc etc
  • にっき にっき

あわせて読みたい

先頭に戻る
めにう 先頭に戻る