アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
暗号化は解読された模様 (スコア:3, 興味深い)
---
//=============================================================================
//
// 山田オルタナティブ 復号化
//
// Copyright 2005. Coded by ナイア◆facelesskk
//
//=============================================================================
#include <stdio.h>
#include <string.h>
char basestrings[] = " 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪";
char basestring2[] = "!#$%&'()=~|QWERTYUIOP`{ASDFGHJKL+*}ZXCVBNM<>?_1234567890-^qwertyuiop@[asdfghjkl;:]zxcvbnm,./";
int MyStrSearch( int offset, char a, char b) {
int i;
for (i=offset*2;i<strlen(basestrings);i+=2) {
if (basestrings[i] == a && basestrings[i+1] == b) {
return i/2 - offset;
}
}
return -1;
}
int main(int argc, char *argv[])
{
char *encstring;
int nRnd;
char decstring[1024];
char host[256], user[256];
int i, j, val, port;
if (argc < 2 ) {
printf( "usage: %1 string\n", argv[0] );
return 0;
}
encstring = argv[1];
nRnd = MyStrSearch( 0, *encstring, *(encstring+1) );
if (nRnd < 0) {
printf( "不正な文字列です。\n" );
return 0;
}
for (i=0,encstring+=6;*encstring;encstring+=2,i++) {
val = MyStrSearch( nRnd, *encstring, *(encstring+1) );
decstring[i] = (unsigned char)val;
}
decstring[i] = 0;
for (i=0,j=0;decstring[j]!=0;i++,j++) {
if (basestring2[i] == 0) {
i = 0;
}
decstring[j] ^= basestring2[i];
}
sscanf( decstring, "%s\n%d\n%s\n", host, &port, user );
printf( "Host: %s:%d\n", host, port );
printf( "User: %s\n", user );
return 0;
}
Re:暗号化は解読された模様 (スコア:3, おもしろおかしい)
Re:暗号化は解読された模様 (スコア:2, 参考になる)
重複符号化の影響で一部の情報が喪失する気がする。
∪ 0x81be 0x879c
∩ 0x81bf 0x879b
∠ 0x81da 0x8797
⊥ 0x81db 0x8796
≡ 0x81df 0x8791
≒ 0x81e0 0x8790
√ 0x81e3 0x8795
∵ 0x81e6 0x879a
∫ 0x81e7 0x8792
Re:暗号化は解読された模様 (スコア:1, 興味深い)
> sscanf( decstring, "%s\n%d\n%s\n", host, &port, user );
バッファーオーバーフロー脆弱性がありますね。マヌケ。
Re:暗号化は解読された模様 (スコア:1, 参考になる)
> for (i=0,encstring+=6;*encstring;encstring+=2,i++) {
> val = MyStrSearch( nRnd, *encstring, *(encstring+1) );
> decstring[i] = (unsigned char)val;
> }
引数に2048バイト以上渡せるなら、ここでもバッファ・オーバー・フロー。
おふとぴ (スコア:0)
Re:おふとぴ (スコア:1, 興味深い)
<a href="javascript:void(document.body.style.wordBreak='break-all')">長い行を折り返し</a>
上記コードをエディタに貼り付けて、ローカルに.htmlファイルとして保存し、ブラウザで開きます。
表示されたリンクをお気に入りに追加してください。
(その後、このファイルは削除してかまいません。)
横スクロールバーが出てしまった画面で、お気に入りからコレを選択すると、横長が解消します。
ただし、FireFoxでは駄目でした。スタイルシートの word_break:break-all; に対応していないのですね。
Re:おふとぴ (スコア:0)
ここに、<TT style='word-break:break-all;'> とかつけられるといいんですけどね…。
でも、全部のコメントにこのスタイルシートつけると、それはそれで困ります。英単語の途中で改行されちゃうので。
なんかいい方法ないですかねぇ。
モデレータが後からこのタグを追加できるようにするとか。
コードだから、強制改行入っても問題ないかな…。
#個人的な対策としては、ユーザースタイルシート使うとか、
#Proxomitronとかでタグ追加とか。
#ただし、ユーザースタイルシートの場合はサイト指定できなかった気が…。
Re:おふとぴ (スコア:0)
Re:おふとぴ (スコア:0)
とだけ書いたファイルを用意して、ieの
ツール→インターネットオプション→ユーザー補助→ユーザースタイルシート
で指定してみました。
とりあえず横幅伸びるのは直った…。
他のサイトでも反応しちゃうけど、TTなんて滅多に使ってないからいいかな?
FireFoxだとサイトごとにユーザースタイルシートを切り替えられるみたいなので試してみた。
…FireFoxは word-break に対応していなかった...orz
横スクロールバーは鬱陶しい (スコア:0)
一瞬Firefoxが壊れたのかと思った;-(