欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析go逆向符號(hào)恢復(fù)

 更新時(shí)間:2023年08月04日 11:34:38   作者:Wo0w  
這篇文章主要介紹了go逆向符號(hào)恢復(fù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

之前一直沒怎么重視,結(jié)果發(fā)現(xiàn)每次遇到go的題都是一籌莫展,刷幾道題練習(xí)一下吧

準(zhǔn)備

go語言寫的程序一般都被strip去掉符號(hào)了,而且ida沒有相關(guān)的簽名文件,沒辦法完成函數(shù)名的識(shí)別與字符串的定位,所以第一步通常為恢復(fù)相應(yīng)符號(hào)文件,網(wǎng)上有許多腳本可以用來恢復(fù)
**golang_loader_assist :**靠匯編代碼的特征來找出 runtime_morestack 和 runtime_morestack_noctxt 函數(shù),然后在 IDAPro 種遍歷對(duì)這兩個(gè)函數(shù)交叉引用的位置來找出函數(shù)體。
https://github.com/strazzere/golang_loader_assist
**IDAGolangHelper :**從 pclntab 結(jié)構(gòu)中解析、恢復(fù)函數(shù)符號(hào),Go 二進(jìn)制文件中還有大量的類型、方法定義的信息,也可以解析出來
https://github.com/sibears/IDAGolangHelper
**go_parser:**功能比前面幾個(gè)工具更加完善的 Go 二進(jìn)制文件解析工具,除了解析前面提到的函數(shù)名、字符串和數(shù)據(jù)類型信息
https://github.com/0xjiayu/go_parser
直接用ida運(yùn)行下載的python文件即可恢復(fù)

go go go! gorev

*ctf的一道簽到題,可惡使用前兩個(gè)腳本的時(shí)候顯示代碼錯(cuò)誤和恢復(fù)失敗,第三個(gè)可以使用

在這里插入圖片描述

其中v16是輸入前由隨機(jī)數(shù)產(chǎn)生,可以動(dòng)調(diào)產(chǎn)生,比較函數(shù)里面應(yīng)該是直接實(shí)現(xiàn)了比較函數(shù),所以看著比較奇怪可以直接看第一個(gè)寄存器比較,得到最終的比較字符串

import base64
str1 = b'fiAGBkgXN3McFy9hAHRfCwYaIjQCRDFsXC8ZYBFmEDU='
str2 = base64.b64decode(str1)
print(str2)
rand = b'TcR@3t_3hp_5_G1H'
flag =''
for i in range(len(str2)):
    flag += chr(rand[i % 16] ^ str2[i])
    print(flag)

easy_go

被strip掉了,用golang_loader_assist恢復(fù)符號(hào)

在這里插入圖片描述

#include"stdio.h"
int main(){
	int byte_561538[] =
{
  0xDB, 0x9E, 0xB7, 0x9A, 0x91, 0xCA, 0xA1, 0x6B, 0x97, 0xC1, 
  0x74, 0xB3, 0x90, 0x00, 0x00, 0x00
};
	int byte_561518[] =
{
  0xD3, 0x75, 0x9B, 0xF9, 0xA3, 0x87, 0xED, 0x93, 0x8D, 0xDD, 
  0x77, 0xED, 0x67, 0x00, 0x00, 0x00
};
	int byte_561528[] =
{
  0xB7, 0x9C, 0x79, 0x43, 0x9B, 0xAF, 0x94, 0xE4, 0x94, 0x71, 
  0xEC, 0xEA, 0x8E, 0x00, 0x00, 0x00
};
	for(int i=0;i<13;i++){
		for(int k=0;k<128;k++){
			if(((byte_561538[i] + byte_561518[i] * k )&0xff) ==byte_561528[i] ){
			    putchar(k);
				break;
			}
		}
	}
	getchar();
return 0;
}

注意&與==的優(yōu)先級(jí),操作單位是字節(jié)所以需要異或0xff

go_get_the_flag

先符號(hào)恢復(fù)然后發(fā)現(xiàn)輸入是和程序一起輸入的,分析程序

在這里插入圖片描述

發(fā)現(xiàn)有一個(gè)比較字符串和輸入的長(zhǎng)度為18也正好契合輸入得到

fb{.60pcln74b_15_4w350m3}

參考鏈接:https://jiayu0x.com/2020/09/28/go-binary-reverse-engineering-tips-and-example/

到此這篇關(guān)于go逆向符號(hào)恢復(fù)的文章就介紹到這了,更多相關(guān)go逆向符號(hào)恢復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang加密解密之RSA(附帶php)

    Golang加密解密之RSA(附帶php)

    安全總是很重要的,各個(gè)語言對(duì)于通用的加密算法都會(huì)有實(shí)現(xiàn)。本文先是對(duì)RSA算法進(jìn)行了簡(jiǎn)單介紹,后才進(jìn)行介紹如何用Go實(shí)現(xiàn)RSA的加密解密,下面一起來看看吧。
    2016-08-08
  • 一文詳解GO如何實(shí)現(xiàn)Redis的AOF持久化

    一文詳解GO如何實(shí)現(xiàn)Redis的AOF持久化

    這篇文章主要為大家詳細(xì)介紹了GO如何實(shí)現(xiàn)Redis的AOF持久化的,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-03-03
  • GoLang sync.Pool簡(jiǎn)介與用法

    GoLang sync.Pool簡(jiǎn)介與用法

    這篇文章主要介紹了GoLang sync.Pool簡(jiǎn)介與用法,Pool是可伸縮、并發(fā)安全的臨時(shí)對(duì)象池,用來存放已經(jīng)分配但暫時(shí)不用的臨時(shí)對(duì)象,通過對(duì)象重用機(jī)制,緩解GC壓力,提高程序性能
    2023-01-01
  • goland設(shè)置顏色和字體的操作

    goland設(shè)置顏色和字體的操作

    這篇文章主要介紹了goland設(shè)置顏色和字體的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Go語言 go程釋放操作(退出/銷毀)

    Go語言 go程釋放操作(退出/銷毀)

    這篇文章主要介紹了Go語言 go程釋放操作(退出/銷毀),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • go語言日志記錄庫(kù)簡(jiǎn)單使用方法實(shí)例分析

    go語言日志記錄庫(kù)簡(jiǎn)單使用方法實(shí)例分析

    這篇文章主要介紹了go語言日志記錄庫(kù)簡(jiǎn)單使用方法,實(shí)例分析了Go語言日志記錄的操作的技巧,需要的朋友可以參考下
    2015-03-03
  • Go語言中實(shí)現(xiàn)打印堆棧的errors包的用法詳解

    Go語言中實(shí)現(xiàn)打印堆棧的errors包的用法詳解

    因?yàn)镚o語言提供的錯(cuò)誤太簡(jiǎn)單了,以至于簡(jiǎn)單的我們無法更好的處理問題,所以誕生了很多對(duì)錯(cuò)誤處理的庫(kù),github.com/pkg/errors是比較簡(jiǎn)潔的一樣,本文就來聊聊它的具體用法吧
    2023-07-07
  • Go語言字典(map)用法實(shí)例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    Go語言字典(map)用法實(shí)例分析【創(chuàng)建,填充,遍歷,查找,修改,刪除】

    這篇文章主要介紹了Go語言字典(map)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Go語言字典的創(chuàng)建、填充、遍歷、查找、修改、刪除等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-02-02
  • Go語言自帶測(cè)試庫(kù)testing使用教程

    Go語言自帶測(cè)試庫(kù)testing使用教程

    這篇文章主要為大家介紹了Go語言自帶測(cè)試庫(kù)testing使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Golang中crypto/ecdsa庫(kù)實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證

    Golang中crypto/ecdsa庫(kù)實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證

    本文主要介紹了Golang中crypto/ecdsa庫(kù)實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證,將從ECDSA的基本原理出發(fā),詳細(xì)解析如何在Go語言中實(shí)現(xiàn)數(shù)字簽名和驗(yàn)證,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02

最新評(píng)論