bugku-逆向-7、love
首先下載reverse_3.exe,再用PEiD查殼:
無殼,是用C++寫的控制檯程式。再用IDA開啟,F5反編譯檢視原始碼:
我們發現程式碼的主要邏輯就是輸入一串flag字串Str,Str經過sub_4110BE函式,返回給v1一個字串,v1再複製給Dest字元陣列,Dest陣列經過一個for迴圈的逐個加運算,最後將得到的Dest字元陣列和Str2字串’e3nifIH9b_C@n@dH’比較是否相等,相等則輸出rigth flag!
點開sub_4110BE函式:
剛開始覺得這個函式怎麼這麼複雜,後來看到下面的aAbcdefghijklmn[]陣列,結合函式的作用是將三個字元一組轉化成四個字元,才發現它就是Base64編碼:
所以,我們要獲得flag就要先按for迴圈的逐個減運算,然後Base64解碼即可。
Python程式碼如下:
# py -3
# -*- coding: utf-8 -*-
import base64
Str2 = "e3nifIH9b_C@n@dH"
length = len(Str2)
str1 = ""
for i in range(0,length,1):
str1 += chr(ord(Str2[i]) - i)
# e2lfbDB2ZV95b3V9
print(str1)
result = str(base64.b64decode(str1), "utf-8")
# {i_l0ve_you}
print(result)
得到flag:{i_l0ve_you}
相關文章
- 7數的逆向操作(7)
- E - Love “A“
- dome_love
- 7數的逆向操作(4)
- 7數的逆向操作(8)
- 7數的逆向操作(6)
- 7數的逆向操作(5)
- 7數的逆向操作(2)
- 7數的逆向操作(3)
- 7數的逆向操作(1)
- 7數的逆向操作(17)
- 7數的逆向操作(16)
- 7數的逆向操作(15)
- 7數的逆向操作(18)
- 7數的逆向操作(9)
- 7數的逆向操作(14)
- 7數的逆向操作(11)
- 7數的逆向操作(12)
- 7數的逆向操作(13)
- 7數的逆向操作(10)
- Love Memory-Sweet Time
- [CISCN 2019 初賽]Love Math
- OJ-1028: I love 閏年!、JavaJava
- 逆向操作、加法、乘法、除法:構成的謎宮(7)
- L1-026 I Love GPLT 分數 5
- 逆向通達信 x 逆向微信 x 逆向QtQT
- 羽夏逆向——逆向基礎
- Android 逆向(四) - adb常用逆向命令Android
- iOS逆向(7)-LLDB,自制LLDB指令碼,竄改微信紅包金額iOSLLDB指令碼
- 【JS逆向百例】cebupacificair 航空逆向分析JSAI
- 逆向工程核心原理(1)逆向基礎
- 逆向3
- 逆向logmein
- SMC逆向
- JS 逆向JS
- Flutter逆向Flutter
- 逆向-1
- Anno 讓微服務、混合程式設計更簡單(Net love Java)微服務程式設計Java