1. 程式人生 > >南郵CTF逆向題第三道Py交易解題思路

南郵CTF逆向題第三道Py交易解題思路

首先看題

下載後顯示為Py.pyc 嘗試notepad++開啟顯示亂碼

所以直接百度

#!/usr/bin/env python
# encoding: utf-8
import base64

def encode(message):                        #def定義了一個encode模組的變數
    s = ''                                  #為了存入最後的目標串
    for i in message:                       #ord()函式主要用來返回對應字元的ascii碼
        x = ord(i) ^ 32                     #將輸入的字串中每個字元ascii碼都與32進行異或運算
        x = x + 16                          #每個都加上16
        s += chr(x)                         #再將它們一個一個轉為字元
    
    return base64.b64encode(s)              #最後再將新串進行一次base64加密

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'    #輸入的串
flag = ''                                   #為了存入最後的目標串
print 'Input flag:'                         #螢幕提示資訊 請輸入flag
flag = raw_input()                          #獲取輸入
if encode(flag) == correct:                 #如果加密後的flag與correct相同  輸出correct
                                                            
    print 'correct' 
else:                                       #否則輸出wrong
    print 'wrong'                        

所以我們只要將這個串"XlNkVmtUI1MgXWBZXCFeKY+AaXNt"解一次base64

再將每個字元ascii碼都減下16

接著與32異或即可得到flag

解密程式碼如下:

import base64
 
correct ='XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
 
s = base64.b64decode(correct)
 
flag =''
 
for i in s:
 
i = chr((ord(i)-16)^32)
 
flag += i
 
print flag

執行結果:

相關推薦

CTF逆向Py交易解題思路

首先看題 下載後顯示為Py.pyc 嘗試notepad++開啟顯示亂碼 所以直接百度 #!/usr/bin/env python # encoding: utf-8 import

CTF逆向maze解題思路

如題 先百度一下名字 萬一有收穫呢 猜測可能考到迷宮演算法 依舊是ELF 直接載入IDA 我一般習慣先shift+f12看下字串 再看看main __int64 __fastcall main(__int64 a1,char**a2,char**a3) { con

CTF逆向WxyV2解題思路

如題 看提示應該與第四道題WxyVM一樣是ELF檔案 那麼我們直接上IDAx64 首先找到main函式 還是習慣性檢視下可疑字串 按下F5檢視虛擬碼(中間有大段 我省略截圖了) 這次就不一行一行分析了 大致意思是: 獲取一個字串存放到地址694100處 限制

CTF逆向一道Hello,RE!解題思路

首先可以看到提示如下 我還是查了一下 無殼 提示用IDA 那我們就載入 shift+f12查詢字串 雙擊進入 在右側視窗接著雙擊 然後f5看到了虛擬碼 於是點選字串全按R即可 我再用OD試一下 段首F2下斷 F9執行 段下來後接著單步 走到這個call

bugkuCTF平臺逆向遊戲過關題解

題目連結: tips 查殼發現無殼(截圖略) OD載入 發現有兩個重要的段 0x001 0x002 分析處0x001每次輸入n的值都會有隻有那一個跳轉調向它 那麼我們直接修改跳轉地址指向我們的0x002的段首試一下 成功跳轉後直接F8單步向下跟 如果遇到向上跳轉

ctf逆向最後一

你大概需要一個優秀的mac //雖然是osx下的程式,但並不一定真的要有mac…. 正好我也沒mac,只能拖到ida裡面了,發現還真可以….ida有點厲害 找到right wrong字串,觀察下主框架然後果斷f5看下虛擬碼 可以看出來就是簡單的輸

bugkuCTF平臺逆向逆向入門題解

題目連結: tips: 雙擊無法執行 提示版本不對(win10) 查殼顯示不是有效的PE檔案 用WinHex開啟顯示 一看發現是圖片的base64編碼 可以這樣 <img src="data:image/png;base64,這裡放字元"/> 將文件

170707 逆向-CTF逆向(WxyVM1)

1625-5 王子昂 總結《2017年7月7日》 【連續第278天總結】 A. 南郵CTF逆向(4) B. 4: 記事本打開發現檔案頭是ELF,拖入IDA進行反編譯,發現只有幾

170708 逆向-CTF逆向(maze)

1625-5 王子昂 總結《2017年7月8日》 【連續第279天總結】 A. 南郵CTF逆向(5、6) B. 5: 又是maze,拖到IDA分析後發現主要內容就在main中: if ( strlen(&

ctf攻防平臺REWxyVM1

用Winhex開啟以後可以看出來是ELF檔案,所以用IDA開啟,找到main函式,F5。 可以看出來,程式的意思就是:輸入flag,經過sub_4005B6那個函式進行運算,然後長度必須為24,再與最終答案進行比較,檢測是否正確。 接下來看那個執行的

ctf平臺 逆向 WxyVM2

直接 IDA F5出原始碼, 非常好懂,就是做比較 for ( i = 0; i <= 24; ++i ) { if ( *(&byte_694100 + i) != dword_694060[i] ) v1 = 0; } 但是這段程式碼之前有

100792C Colder-Hotter (人生互動

This is an interactive problem. Egor and Petr are playing a game called «Colder-Hotter» on a 2D plane. At the beginning of the game Egor

ctf-密碼學(前五

寫writeup之前先來介紹一下Base編碼系列:base16,base32與base64。 1. Base16編碼使用16個ASCII可列印字元(數字0-9和字母A-F)對任意位元組資料進行編碼。Base16先獲取輸入字串每個位元組的二進位制值(不足8位元在高位補0),

愛奇藝2018秋季Java筆試第二場 程式設計 牛牛和羊羊 求數學期望

連結:https://www.nowcoder.com/questionTerminal/128d8d7d1898406b817fc69baa20602f 來源:牛客網 牛牛和羊羊非常無聊.他們有n + m個共同朋友,他們中有n個是無聊的,m個是不無聊

CTF練習題——web

南郵CTF練習題(http://ctf.nuptzj.cn/) web(缺注入實戰1,好像網炸了): 簽到題:(http://chinalover.sinaapp.com/web1/) 直接右鍵檢視原始碼得到flag 關鍵是<a style="display:none

9.27考試 SD_le NOIP模擬 建造遊樂場題解

closed sin es2017 com 需要 style pla math spl   這道題當時沒讀完題時腦部了無數種問法,然而最後還是猝不及防。一開始還以為是結論題,然而死也退不出來,就先去打第二題了。然後在想這道題時,我想到的是這樣的思路(由於當時時間緊迫,

愛創課堂每日一十二天-談談浮動和清除浮動?

前端 前端學習 前端入門浮動的框可以向左或向右移動,直到他的外邊緣碰到包含框或另一個浮動框的邊框為止。由於浮動框不在文檔的普通流中,所以文檔的普通流的塊框表現得就像浮動框不存在一樣。浮動的塊框會漂浮在文檔普通流的塊框上。愛創課堂每日一題第三十二天-談談浮動和清除浮動?

愛創課堂每日一十三天- 如何評價AngularJS和BackboneJS?

前端 前端學習 前端入門backbone具有依賴性,依賴underscore.js。Backbone + Underscore + jQuery(or Zepto) 就比一個AngularJS 多出了2 次HTTP請求.Backbone的Model沒有與UI視圖數據綁定,而是需要在View中自行操作DO

愛創課堂每日一十五天- 說說你對閉包的理解?

前端 前端學習 前端入門使用閉包主要是為了設計私有的方法和變量。閉包的優點是可以避免全局變量的汙染,缺點是閉包會常駐內存,會增大內存使用量,使用不當很容易造成內存泄露。在js中,函數即閉包,只有函數才會產生作用域的概念閉包有三個特性:1.函數嵌套函數2.函數內部可以引用外部的參數和變量3.參數和變量不會

《劍指offer》算法

rotate 小數 條件 ted 同學會 amp number cover 最小數 今日題目: 斐波那契數列 青蛙跳臺階問題(及其變種:變態跳臺階) 矩形覆蓋 旋轉數組的最小數字 矩陣中的路徑 機器人的運動範圍 細心的同學會發現,第1,2,3題其實對應的是《劍指》書上的