apk-re2-wp 0x00     看 exeinfope.exe 发现是 .NET。
 
0x01     使用 ILSPY 静态分析此文件,发现有:
0x02-wp1     重点在于 read 是怎么读的,用的是 streamReader 读此 exe 文件,因此 wp 可写为:
1 2 3 4 5 6 7 8 9 10 11 text1 = "Super Secret Key"  text2 = open ("1.exe" , "r" , encoding = 'unicode-escape' ).read() flag = ""  for  x in  text1:    for  i in  range (len (text2)):         if  x == text2[i]:             num = i * 1337  % 256              flag += str (hex (num))[2 :].zfill(2 )             break  print (flag)
 
0x03-wp2     此程序尝试连接 127.0.0.1:31337,如果连接成功就接着操作,那么我们使用 http.server 生成一个本地的 31337 端口服务器。
0x04-wp3     直接用 nc -l -p 31337 监听端口,然后运行1.exe 即可。
 
知识点1: NET类型要用ILSPY或dnSPY分析,ILSPY用来静态分析代码最好了,它的函数名虽然可能乱码不显示,但是单击函数名还是能跟踪的。而dnSPY用于动态调试的,它的函数名不仅乱码不显示,点击后还无法跟踪:(dnsPY用于动态分析,ILSPY用于静态分析 )
知识点2: exe 文件是 unicode 编码。python 读的时候要这样:
1 text = open ("1.exe" , "r" , encoding = 'unicode-escape' ).read() 
 
知识点3: nc是一个网络监测工具,其中
1 nc -l -p XX // -l 监听模式 -p 要监听的端口 
 
知识点4: http.server模块-快速搭建 web服务。
命令行。 
 
1 2 python3 -m http.server 88 python2 -m SimpleHTTPServer 88 
 
代码调用 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 from  http.server import  HTTPServer, BaseHTTPRequestHandlerimport  jsondata = {'result' , 'this is a test' } host = ('localhost' , 88 ) class  Request (BaseHTTPRequestHandler ):    timeout = 5      server_version = "Apache"       def  do_GET (self ):         self.send_response(200 )         self.send_header("Content-type" ,"text/html" )         self.end_headers()         buf = """<!DOCTYPE HTML>                  <html>                     <head>                         <title>Get page</title>                     </head>                 <body>                     <form action="post_page" method="post">                         username: <input type="text" name="username" /><br />                         password: <input type="text" name="password" /><br />                         <input type="submit" value="POST" />                     </form>                 </body>                 </html>        	"""         self.wfile.write(buf.encode())       def  do_POST (self ):       	datas = self.rfile.read(int (self.headers['content-length' ]))             self.send_response(200 )         self.send_header("Content-type" ,"text/html" )         self.end_headers()     	    html = '''<!DOCTYPE HTML>          <html>             <head>                 <title>Post page</title>               </head>             <body>                 Post Data:%s  <br />                 Path:%s             </body>         </html>'''  %(datas,self.path)        self.wfile.write(html.encode())    if  __name__ == '__main__' :    server = HTTPServer(host, Resquest)     print ("Starting server, listen at: %s:%s"  % host)     server.serve_forever()      
 
文件服务器 
 
1 2 3 4 5 from  http.server import  HTTPServer, SimpleHTTPRequestHandler  if  __name__ == '__main__' :    server = HTTPServer(('localhost' , 89 ), SimpleHTTPRequestHandler)     server.serve_forever()