[FlareOn4]greek_to_me

32位exe

这里通过sub_401121得到一个值与loc_40117c异或解密,看sub_401121

 监听了本地端口2222

 但不知道值是多少,爆破

import sys
import os
import socket

ip = '127.0.0.1'
port = 2222
for i in range(255):
    os.startfile("C:UsersMyDesktopgreek_to_me.exe")
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((ip, port))
    s.send(chr(i))
    data = s.recv(1024)
    s.close()
    print data
    if 'Congratulations' in data:
        print "%x" % i
        break

得到buf值为a2

具体怎么解密我不管,直接动调,在下图中下了个断

 跑起来后

import sys
import os
import socket
ip = '127.0.0.1'
port = 2222
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
s.send(chr(0xa2))
s.close()

到断点断下,跳到40107c处看

 按c分析

填入的数就是flag

这题看到大佬有好些不同的做法https://bbs.pediy.com/thread-223512-1.htm

有空了试一试

 

原文地址:https://www.cnblogs.com/harmonica11/p/13050686.html