from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

TWctf2ndを解いた感想等

global page

解けなかった。むずい・・・

writeup見たらphp filter使うっぽい。php filterなんて初耳なんだよなあ・・・

php filterはphp5.2より搭載された新機能?

php filterはfile streamとは違う機能っぽい。んでfile steramはhttp://やphp://というプロトコル事態とは違う概念っぽい。後者のプロトコルはもともとphpで標準実装しておりその標準搭載されているプロトコルphp内で使うことができる?

んでファイルストリームってのは

Make a Palindrome!

ソルバーというほどでもないものを作ったが途中でフリーズする糞仕様

最初回文のアルゴリズム再帰でできるかなと思ってがんばってたんだけど競プロerでもないし基本情報レベルのアルゴリズムにすら苦戦する人間にそんなことができるはずもなくブルートフォースにした。ブルートフォースブルートフォースでめんどくさいなあとか思ってpythonをググりまくってたらitertools.permitationなるものを発見した。pythonつよい。。。

pythonのjoinくっそキモイのでなんとかしてくれ。まるでjsのperseintみたい。

どうでもいいんですが7zってexplorerじゃひらけなくてnutilsだとひらけるんだね。(デフォルトで。

# -*- coding:utf-8 -*-

# Server connection example file for Python 2

import socket

import sys

import itertools



#print("import end")



host = 'ppc1.chal.ctf.westerns.tokyo'

if len(sys.argv) > 1:

    host = sys.argv[1]

port = 31111

if len(sys.argv) > 2:

    host = int(sys.argv[2])



client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect((host, port))



client_file = client.makefile('b')



while client_file.readline().strip() != "Let's play!":

    pass



def iskai(str): return 0 if str == str[::-1] else 1



client_file.readline()

for case in range(0, 30):

    client_file.readline()

    words = client_file.readline().split()[2:]

    # words: input

    # answer: answer

    ##  Please write some code here

    all=list(itertools.permutations(words))

    #print(all)

    i=0

    while iskai("".join(all[i])):

        i+=1

    answer = all[i]

    #

    client_file.write(' '.join(answer) + "\n")

    client_file.flush()

    ret = client_file.readline()[8:-1]

    print(ret)

    if 'Wrong Answer' in ret:

        print(client_file.readline())

        sys.exit(1)

pdbデバッグしてみたんだがpdbの使用経験すくなすぎていちいちググるのがめんどくさいくて放置してたら終わってた。

調べたら2問め以降で要素がめっちゃ増えてて30000ぐらいにforの量が増えててそれでしんだっぽい?でもそんなんでフリーズしないとおもうんだけどなあ・・・

python -m pdb solve.pyデバッグするんだけどどうも一度問題をsolveした後whileで回りまくってて死んでるんだよね

listコマンド、押しまくると結構広い範囲でソースがみれるっぽい。

どうでもいいんですがslackって独自のうpろだもってんのな。

whereコマンドでスタックフレームを見てみたらなんか<string>(1)<module>()とかいうのをみつけた。なんだこれ

現在のスタックフレームの一つ上のスタックだな?lしても[EOF]とか出るだけだし。。。

まあ気を取り直してprofileモジュールを使ってsolve.pyを実行してみたら普通に動いた・・・なんだこれ・・・やっぱマシンのcpu不足だこれ。。。

ps: ubuntu系のディストリビューションってgnome-system-monitorってパッケージをもっているらしくて便利だった。

jsのライフゲームみたいなやつ

canvas使って文字列を鯖に投げてかくにんしてるっぽい。 2020ぐらいならpromise使って非同期でいけるかなと思って実際EZモードならいけたけど実際は2020マスで2進数400桁をブルートフォースなので400回回すだけじゃなかった。。。

当然firefox落ちる。終わり!w

やっぱこいつもpythonでpost投げまくるソルバー書くのが一番早そう。