V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MarioLuisGarcia
V2EX  ›  分享发现

今天刚发现 py 文件可以自己改变自己的内容,感觉可以用这个写出很好玩的东西!

  •  
  •   MarioLuisGarcia · 2014-05-01 18:01:03 +08:00 · 3664 次点击
    这是一个创建于 3857 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个简单的例子。

    vim test.py

    f = open('test.py', 'a')
    f.write("print 'hello world'\n") # \n to start a new line to avoid syntax error
    13 条回复    2014-05-02 08:33:13 +08:00
    Tink
        1
    Tink  
       2014-05-01 18:10:22 +08:00 via iPhone
    运行中的文件也能改嚒?比如一个死循环,运行中也能修改内容?
    koykoi
        2
    koykoi  
       2014-05-01 18:32:21 +08:00
    已经编译成pyc执行了吧 当然可以改
    phyng
        3
    phyng  
       2014-05-01 18:41:36 +08:00
    楼主可以试试两个py文件互相修改互相调用¯﹃¯
    lululau
        4
    lululau  
       2014-05-01 18:44:10 +08:00
    都可以改的啊

    test.c:

    FILE *f = fopen("./test", "a");
    fprintf(f, "\nhello world\n");
    fclose(f);
    phuslu
        5
    phuslu  
       2014-05-01 18:57:38 +08:00   ❤️ 1
    Monad
        6
    Monad  
       2014-05-01 19:13:52 +08:00 via iPhone
    试试写一个输出自己内容的py
    yakiang
        7
    yakiang  
       2014-05-01 19:54:23 +08:00
    quine
    loading
        8
    loading  
       2014-05-01 20:22:58 +08:00 via Android
    你们自我进化吗?
    alexapollo
        9
    alexapollo  
       2014-05-01 20:24:32 +08:00
    @phuslu 大神的这个密码看不懂啊……
    phuslu
        10
    phuslu  
       2014-05-01 20:43:52 +08:00
    @alexapollo 啊,不好意思,写了一个类似的 gist 的,发现贴出来以后没有显示,我再试下啊。

    https://gist.github.com/phuslu/9cf138e5ee4ea67ea425
    Mutoo
        12
    Mutoo  
       2014-05-02 00:07:20 +08:00
    冯诺依曼的储存程序体系一直都是这样的。程序即储存在存储介质上的数据。
    数据可以被改写,于是程序也可以。
    这导致了黑客可以利用不严格的指针检查越过数组边界改写栈空间附近程序。
    当一个有root权限程序在运行时被以这种方法修改的时候,黑客可以做任何他想做的事。
    hitsmaxft
        13
    hitsmaxft  
       2014-05-02 08:33:13 +08:00
    @phuslu 不用贴raw格式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:10 · PVG 17:10 · LAX 01:10 · JFK 04:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.