跟著大佬學RE(一)

學了一個 map()函數的使用?

import base64rawData = "e3nifIH9b_C@n@dH"
target = list(map(ord, rawData))
# map 函數將 rawData 中的每個字符傳遞給 ord 函數。ord 函數返回給定字符的 Unicode 碼點
print(target)
# 打印 map 對象的內存地址,故須轉換為列表for i in range(len(target)):target[i] -= i
print(list(map(chr,target)))
#['e', '2', 'l', 'f', 'b', 'D', 'B', '2', 'Z', 'V', '9', '5', 'b', '3', 'V', '9']
src = ''.join(map(chr, target))
print(src)
# e2lfbDB2ZV95b3V9
decoded_data = base64.b64decode(src)print(decoded_data)

大小寫轉換

import string
key = "ADSFKNDCLS".lower()
print(key)
# adsfkndcls
enc='abcdefg'
print(enc.upper())
# ABCDEFG
charSet=string.ascii_uppercase+string.ascii_lowercase
print(charSet)
#ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

刮開有獎

hint:在編輯框輸入flag

彈出一個對話框,對話框對應函數是DialogFunc

運行卻沒有輸入框和按鈕,上 RH 看看

最近有兩道題都用到了這個工具,也是來學習一下

首先 Resource Hacker 是一款windows應用程序的資源編譯器和反編譯器

1.可以查看和編輯可執行文件(exe, dll, src 等)和已編譯資源庫(res, mui )中的資源

2.提取 (保存) 資源為文件 (*.res) 格式,可作為二進制,或作為反編譯過的資源腳本或圖像。

圖標、位圖、指針、菜單、對話、字符串表、消息表、加速器、Borland 窗體和版本信息資源都可以完整地反編譯為其各自的格式,不論是作為圖像還是作為 *.rc 文本文件都可以。

3. 修改 (替換) 可執行文件的資源。

圖像資源(圖標、指針和位圖)可以被相應的圖像文件(*.ico, *.cur, *.bmp)、*.res 文件、甚至是另一個 *.exe 文件所替換。

對話、菜單、字符串表、快捷鍵和消息表資源腳本(以及 Borland 窗體)可以通過使用內部資源腳本編輯器被編輯和重新編譯。

資源也可以被某個 *.res 文件所替換,只要替換的資源與其是同一類型并且有相同的名稱即可。

4. 添加 新的資源到可執行文件。

允許一個程序支持多種語言,或將自定義圖標或位圖(公司的標識等)添加到程序的對話中。

5. 刪除 資源。大多數編譯器添加了應用程序永遠都不會用到的資源到應用程序中。刪除這些不使用的資源可以減小應用程序的體積。

一些可執行文件使用壓縮算法進行“打包”或“壓縮”。這不僅會減小文件大小,還會使查看和修改資源變得稍微困難??一些

ES_READONLY

WS_DISABLED

WS_DISABLED

CONTROL 129,-1,STATIC,SS_BITMAP | WS_CHILD | WS_VISIBLE, 7,7,230,72

加上 WS_VISIBLE 屬性

也是修復成功了,但輸入點擊沒有反應,不知道是沒有回顯還是怎么的

就是一個簡單base64得到五位flag,還有兩位是經過一個比較復雜的遞歸函數,可以寫個代碼跑也可以直接動調,我就動調了

import base64
v4='ak1w'
v5='V1Ax'
flag=[0]*8
v4=base64.b64decode(v4)
v5=base64.b64decode(v5)
flag[5]=v4[0]
flag[6]=v4[1]
flag[7]=v4[2]
flag[3]=v5[1]
flag[4]=v5[2]
flag[2]=v5[0]
flag[0] = ord('3') + 34
flag[1] =ord('J')
for i in range(8):print(chr(flag[i]),end='')

最后也可以看到是成功才有回顯。

CrackRTF

這個是 SHA_1哈希函數

CryptCreateHash 函數的第二個參數應該用來指定 hash 的類型

SHA1也是要知道 round 的好像,不看了,直接爆破(反正都是數字)

import hashlib
def sha1Encode(plain):sha=hashlib.sha1(plain.encode('utf-8'))return sha.hexdigest().upper()
passwd=''
for i in range(100000,1000000):plain=str(i)+'@DBApp'#print(plain)if sha1Encode(plain)=='6E32D0943418C2C33385BC35A1470250DD8923A9':passwd=str(i)break
print(passwd)
# 123321

第二部分就是一個 md5 找個網站或者用 hashcat (沒用過)

全出來了:~!3a@0123321@DBApp

[2019紅帽杯]easyRE

分析首先就是簡單的異或,然后有十次 base64

寫個腳本

import base64
target = "Vm0wd2VHUXhTWGhpUm1SWVYwZDRWVll3Wkc5WFJsbDNXa1pPVlUxV2NIcFhhMk0xVmpKS1NHVkdXbFpOYmtKVVZtcEtTMUl5VGtsaVJtUk9ZV3hhZVZadGVHdFRNVTVYVW01T2FGSnRVbGhhVjNoaFZWWmtWMXBFVWxSTmJFcElWbTAxVDJGV1NuTlhia0pXWWxob1dGUnJXbXRXTVZaeVdrWm9hVlpyV1hwV1IzaGhXVmRHVjFOdVVsWmlhMHBZV1ZSR1lWZEdVbFZTYlhSWFRWWndNRlZ0TVc5VWJGcFZWbXR3VjJKSFVYZFdha1pXWlZaT2NtRkhhRk5pVjJoWVYxZDBhMVV3TlhOalJscFlZbGhTY1ZsclduZGxiR1J5VmxSR1ZXSlZjRWhaTUZKaFZqSktWVkZZYUZkV1JWcFlWV3BHYTFkWFRrZFRiV3hvVFVoQ1dsWXhaRFJpTWtsM1RVaG9hbEpYYUhOVmJUVkRZekZhY1ZKcmRGTk5Wa3A2VjJ0U1ExWlhTbFpqUldoYVRVWndkbFpxUmtwbGJVWklZVVprYUdFeGNHOVhXSEJIWkRGS2RGSnJhR2hTYXpWdlZGVm9RMlJzV25STldHUlZUVlpXTlZadE5VOVdiVXBJVld4c1dtSllUWGhXTUZwell6RmFkRkpzVWxOaVNFSktWa1phVTFFeFduUlRhMlJxVWxad1YxWnRlRXRXTVZaSFVsUnNVVlZVTURrPQ=="
for _ in range(10):target = base64.b64decode(target)
print (target)

得到一個網址:b'https://bbs.pediy.com/thread-254172.htm'[原創]看雪CTF從入門到存活(六)主動防御-CTF對抗-看雪-安全社區|安全招聘|kanxue.com

elf 文件執行:

elf 從 start 函數開始執行(由 Entry point 指定),然后執行順序是 __libc_start_main -> __libc_csu_init -> _init_array 中的函數 -> main -> __libc_csu_fini -> _fini_array 中的函數。

這道題的 start 函數:

2019紅帽杯easyRE

_init_array 地址可以在 __libc_csu_init 函數中找到:

2019紅帽杯easyRE

翻一翻 _init_array 和 _fini_array 中的函數,每個都點過去 F5 看一下:

2019紅帽杯easyRE

_fini_array 的第二個函數指針 sub_400D35 最為可疑:

2019紅帽杯easyRE

Youngter-drive

嗯,運行不了,只能靜態分析了

兩個API函數

?::hObject = CreateMutexW(0, 0, 0); ? ?

創建或打開一個命名的或非命名的互斥體對象。互斥體對象用于線程同步,確保多個線程在同一時刻只有一個線程訪問共享資源。

CloseHandle(hObject);

?關閉內核對象句柄的函數。hObject:這是一個句柄,指向一個內核對象。此對象可以是文件、文件映射、進程、線程、安全和同步對象(如互斥體、信號量、事件)等。

StartAddress函數

sub_4011

要注意,這個函數看似沒有用,但 count 也減一了,寫腳本時要注意。

剛好前幾天學了一點的線程,也大致知道這兩個函數交替執行,且線程1先拿到鎖

也是遇到了一個棧不平衡的花指令:

這個棧不平衡之前也是有遇到的,需要學學。

table='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
target='TOiZiZtOrYaToUwPnToBsOaOapsyS'+'y'
flag=['']*len(target)
for i in range(len(target)-1,-1,-1):if i%2:if ord(target[i])<97:flag[i]=chr(table.index(target[i])+96)else:flag[i]=chr(table.index(target[i])+38)else:flag[i]=target[i]
print(''.join(flag))
#ThisisthreadofwindowshahaIsESE

[GKCTF2020]Check_1n

main()函數里看不出什么,string窗口看看

一眼像base64,解一下

得到:Why don't you try the magic brick game

動調一下

不知道在干嘛,是個操作系統

點擊也沒用阿

還有 ida 顯示中文需要修復一下

是要自己猜密碼好像,看到密碼錯誤的字符串,雙擊跟進,找到函數

找到密碼在 aHelloworld里,即“HelloWorld”

運行一下,不知道怎么操作,啊!就只能用幾個方向鍵搞好像

[GXYCTF2019]luck_guy

也是提示了:try to patch me and find flag

確實可以自己寫個腳本跑,或者就是 patch

現在來學一下 patch ,那個 KeyPatch插件不知道怎么又沒了,煩

0x04008CA是case4的開始地址,讓函數進來直接跳這

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/21466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/21466.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/21466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電腦中病毒了怎么辦?7招教你保護電腦安全!

“不知道怎么回事&#xff0c;我的電腦莫名其妙就中病毒了&#xff0c;實在不知道應該怎么操作了&#xff0c;希望大家可以幫我&#xff01;” 在數字化時代的浪潮中&#xff0c;電腦已成為我們生活與工作中不可或缺的一部分。然而&#xff0c;就像任何事物都有其陰暗面一樣&am…

Python | 武理刷題

1. 為什么是非法的&#xff1f; a1a1 在Python&#xff08;以及大多數其他編程語言&#xff09;中&#xff0c;表達式 a1a1 是非法的&#xff0c;因為它試圖將一個值&#xff08;a1 的結果&#xff09;賦給一個表達式&#xff08;a1 本身&#xff09;&#xff0c;而不是一個…

ip地址快速切換軟件有哪些好處

ip地址快速切換軟件有哪些好處&#xff1f;IP地址快速切換軟件具有諸多顯著的好處&#xff0c;以下是對其主要優勢的詳細闡述&#xff1a; 首先&#xff0c;IP地址快速切換軟件極大地提升了網絡活動的靈活性和便捷性。對于需要經常切換網絡環境或進行多賬號管理的用戶而言&…

新版 Vivado 2024.1分享(附安裝包)

Vivado新版本來了&#xff0c;文末附下載方法。 Vivado 2024.1版本的亮點主要集中在多個方面的功能增強和優化上。 Vivado 2024.1版主要亮點&#xff1a; 通用訪問與性能提升&#xff1a; MicroBlaze? V軟處理器&#xff08;基于RISC V開源ISA&#xff09;提供了更廣泛的通…

Python應用開發——Streamlit 創建多頁面應用程序進行APP的構建

創建多頁面應用程序 在附加功能中,我們介紹了多頁面應用程序,包括如何定義頁面、構建和運行多頁面應用程序,以及如何在用戶界面的頁面間導航。更多詳情,請參閱多頁面應用程序指南Multipage apps - Streamlit Docs 在本指南中,讓我們通過將上一版本的 streamlit hello 應…

基于深度學習的音樂合成算法實例

基于深度學習的音樂合成算法可以生成高質量的音樂片段。以下是一個簡化的基于深度學習的音樂合成算法實例,使用了LSTM網絡來生成音樂序列。這個示例展示了如何使用LSTM網絡來訓練和生成音樂。 數據準備 首先,需要準備訓練數據。可以使用MIDI文件作為訓練數據,并將其轉換為…

AI大模型在穿戴設備健康中的心率深度融合與案例分析

文章目錄 1. 架構設計2. 應用場景3. 實現步驟3.1 步驟1&#xff1a;數據預處理3.2 步驟2&#xff1a;邊緣計算初步分析3.3 步驟3&#xff1a;數據上傳到云端3.4 步驟4&#xff1a;云端復雜分析3.5 步驟5&#xff1a;深度學習模型訓練與部署 4. 云端API設計4.1 安裝Flask4.2 API…

美國前總統特朗普竟然入駐TikTok,粉絲破24萬

大家好&#xff01; 我是老洪&#xff01; 剛看到一則關于美國前總統特朗普的新聞&#xff0c; 特朗普竟然入駐TikTok了&#xff0c;太令人驚訝了。&#xff08;為什么驚訝&#xff0c;后面再說&#xff09; 更為驚人的是&#xff0c;他的到來竟然引來了眾多粉絲的熱烈追捧&…

如何從清空的回收站中恢復已刪除的Word文檔?

“嗨&#xff0c;我將 10 個 Word 文檔移動到回收站&#xff0c;然后用清潔軟件清理回收站。現在我意識到我犯了一個大錯誤——我刪除了錯誤的文件。我想知道是否可以從清空的回收站中恢復已刪除的Word文檔。我沒有數據恢復的經驗&#xff0c;也不精通計算機技術。有沒有簡單的…

三.一布局和布局切換的實踐與探索

在前端開發中&#xff0c;靈活的布局切換是一項非常實用的功能。今天&#xff0c;我想和大家分享一下如何在主組件中通過更換 Layout 目錄下的組件來實現布局切換。 首先&#xff0c;我們有一個主組件 index.vue&#xff0c;它承擔著整個頁面的主要邏輯和展示。 而在 Layout …

SG90舵機(Arduino)/XY軸搖桿使用(Arduino)

XY軸搖桿使用 需要注意&#xff0c;必須是 ADC 引腳才可以接收模擬信號輸入 /** 接線* PS2搖桿 Arduino* x A0* y A1* sw 7 */const int yg_x_pin A0; const int yg_y_pin A1; const int yg_btn_pin 7; // 搖桿按下的輸入引腳 void…

Django 里解決自定義中間件的問題

如果在項目文件夾下創建一個文件夾utils&#xff0c;里面存自己定義的中間件。 要是出現這種問題 django.core.exceptions.ImproperlyConfigured: utils.md.ExampleMiddleware isnt a subclass of AppConfig.解決方法&#xff1a; 在 settings.py 里 # 將自定義的中間件寫在…

旋轉編碼器、DS1302 實時時鐘、紅外遙控模塊、雨滴探測傳感器 | 配合Arduino使用案例

旋轉編碼器 旋轉編碼器是一種用作檢測自動化領域中的角度、速度、長度、位置和加速度的傳感器。 有絕對式和增量式&#xff0c;這里使用增量式&#xff08;相對&#xff09;。 絕對輸出只是周的當前位置&#xff0c;是他們成為角度傳感器。增量輸出關于軸的運動信息&#xff0…

Python中degrees怎么用

degrees() 函數可以將弧度轉換為角度。 語法 以下是 degrees() 方法的語法&#xff1a; import math math.degrees(x) 注意&#xff1a;degrees() 是不能直接訪問的&#xff0c;需要導入 math 模塊&#xff0c;然后通過 math 靜態對象調用該方法。 參數 x -- 一個數值。 返…

視頻SK配置教程

視頻SK配置教程 提供的pika接口服務&#xff08;國外的&#xff0c;所以要反代&#xff09;&#xff0c;創建一個pika賬號并開通pika套餐 反向配置教程 https://blog.csdn.net/u012241616/article/details/139391954?spm1001.2014.3001.5502 1、進入站點后臺->功能->…

.Net Core Console 項目如何使用 HttpClient 與 Web 服務通信

前言 HttpClient 類是在 .NET Framework 4.5 和 .NET Core 中引入的新的 HTTP 客戶端類&#xff0c;是 .NET 用于發送和接收 HTTP 請求的類&#xff0c;相比之前的 WebRequest 和 HttpWebRequest&#xff0c; 它提供了現代的、易用的 API&#xff0c;并且具有更好的性能和擴展…

2024 cicsn magicvm

文章目錄 參考檢查逆向vm::runvm::vmvm_alu::set_inputvm_mem::set_inputvm_id::runvm_alu::runvm_mem::run 漏洞思路參考的exp 參考 https://forum.butian.net/share/3048 https://akaieurus.github.io/2024/05/20/2024%E5%9B%BD%E8%B5%9B%E5%88%9D%E8%B5%9Bpwn-wp/#SuperHea…

9個輕量化的效率神器,保證你100%用得上

給你推薦9個輕量化的效率神器&#xff0c;保證你100%用得上。 首先介紹uTools的3個效率技巧 快速啟動 想要快速打開一個應用&#xff0c;不用去一堆的應用圖標里面去尋找&#xff0c;直接按下快捷鍵&#xff0c;輸入應用的名稱或首字母&#xff0c;便可以找到應用&#xff0…

GNeRF論文理解

文章目錄 主要解決什么問題&#xff1f;結構設計以及為什么有效果&#xff1f;個人想法。 主要解決什么問題&#xff1f; 本文主要想要解決的問題是 如何使用uncalibrated的照片來進行Nerf重建。雖然說現在已經有了一些方式可以對相機位姿進行估計和優化&#xff0c;但是他們限…

journal日志管理

1、systemd-journald詳解 systemd-journald日志默認保存在/run/log/journal中&#xff0c;重啟會被清楚&#xff0c;如果存在/var/log/journal目錄&#xff0c;systemd-journald日志會自動改為記入在這個目錄中&#xff0c;同時日志輪轉也會啟動&#xff0c;日志輪狀每月啟動&…