图片里隐藏文件技术

今天同事孙工传给我一张特殊的图片,用压缩文件打开这张图片发现里面还隐藏着一个txt文档。其实图片隐藏文件有很多方法,可以参考这篇文章,同事用到的就是上面提到的第一种方法–尾部追加法:把压缩文件加到图片末尾,解压直接用解压软件打开图片。

在Windows下敲命令: copy /b A.JPG + B.zip C.JPG,结果如下:



我大致看了一下zip的文件头,头两个字节Ascii为”PK”(估计是pkzip的缩写吧),估计zip通过”PK”定位文件开始,丢掉之前的所有数据,不过貌似这样做有点风险。

快餐店小票中的算术

上次在小米便当快餐店吃饭时,我发现小票上3个套餐的饭菜价格好像一道算术题,上面写的如下套餐:

1大荤 + 1小荤 + 1素 + 饭 = 10

1大荤 + 2小荤 + 饭 = 12

1大荤 + 2小荤 + 1素 + 饭 = 15

设 1大荤+饭 为变量x,则式子变为:

1小荤 + 1素 + x = 10

2小荤 + x = 12

2小荤 + 1素 + x = 15

上式可以求出:

小荤 = 5

素菜 = 3

x = 大荤 + 饭 = 2

看来这个套餐的大荤好像白送的-_-!!!。

teppoman2刺客游戏技巧

我以前一直玩teppoman2刺客游戏,一个日本人写的游戏,但最多只能玩到第5关。这个游戏难玩的原因之一是复杂的键盘操作:

  • 短跑(dash) – 快速按两次左/右方向键
  • 空中滑行(glide) – 短跑之后跳跃
  • 刹住(skid) – 滑行之后,按下相反的方向键
  • 反跳(reverse jump) – 刹住之后跳跃
  • 身体冲浪(body surf)- 在高处使出空中滑行,然后按住 Shift

我觉得最有用的就是反跳,但恰恰按键最复杂。如向前反跳为:快速按两次右方向键,马上再按一次左方向键,再按Shift。这一连串按键需一气呵成,我等懒人实在没办法只能借助Python的威力搞定这些按键了。

基本思路是Hook键盘keyup事件,然后用Win32 API SendInput或keybd_event函数模拟键盘输入,需要的Python第三方库有:pywin32、pyHook。

具体实现是用’z’键作向前反跳,用’x’键作向后反跳。

Python语言: Codee#23900
#-*- coding:UTF-8 -*-
import time
import win32gui
import win32api
import win32con
import pyHook

# global
g_hwndWind = None

def SimulateKey(vk, t = 0.05):
    scan = win32api.MapVirtualKey(vk, 0)
    # down
    win32api.keybd_event(vk, scan, 0, 0)
    time.sleep(t)
    # up
    win32api.keybd_event(vk, scan, win32con.KEYEVENTF_KEYUP, 0)
    # simulate time delay
    time.sleep(0.05)

def OnKeyboardEvent(event):
    global g_hwndWind
    print event.MessageName
    if event.Window == g_hwndWind:
        if event.Ascii == ord('z'):
            # 'z' simulate jump back (right+right+left+shift)
            SimulateKey(win32con.VK_RIGHT)
            SimulateKey(win32con.VK_RIGHT)
            SimulateKey(win32con.VK_LEFT)
            SimulateKey(win32con.VK_SHIFT, 0.5)
        elif event.Ascii == ord('x'):
            # 'x' simulate jump front
            SimulateKey(win32con.VK_LEFT)
            SimulateKey(win32con.VK_LEFT)
            SimulateKey(win32con.VK_RIGHT)
            SimulateKey(win32con.VK_SHIFT, 0.5)
    return True

def main():
    try:
        # find teppoman2 window handle
        global g_hwndWind
        g_hwndWind = win32gui.FindWindow("Mf2MainClassTh", "偰偭傐儅儞俀")

        # create the hook mananger
        hm = pyHook.HookManager()
        hm.KeyUp = OnKeyboardEvent

        # hook into the and keyboard events
        hm.HookKeyboard()

        # message poll
        win32gui.PumpMessages()
    except:
        print "can't find window"

if __name__ == "__main__":
    main()

读《曾国藩》by唐浩明

我们被历史书灌输太平天国运动的伟大,抹黑曾国藩为刽子手、曾剃头,这其实是众多冤案中的一件罢了。

我从小留恋于姑父的书房,常常赞叹书之繁多,每每看姑父卧室床头放的几本书中必有一本讲曾国藩的书,而且都是当时罕见的锦布包装。我一向很崇拜姑父,爱屋及乌,对曾国藩也仍眼相看。

正所谓乱世出英雄,英雄造时势。从一个遵从孔孟之道的读书人,转变为人人敬畏的的全军统帅曾剃头,屡战屡败,内外交困,步步紧逼,其中的酸甜苦辣何人可解。

我尤其佩服其冷静自省,除督办军务无空闲外每日坚持写日记并记录做错的事以此为戒,这个不是一般人能做到的。每次做重大决定,必然到独自一人静下心来默想,等考虑全部细节后才实施。