最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

準備

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

go go go! gorev

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

在這里插入圖片描述

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

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ù)符號

在這里插入圖片描述

#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)先級,操作單位是字節(jié)所以需要異或0xff

go_get_the_flag

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

在這里插入圖片描述

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

fb{.60pcln74b_15_4w350m3}

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

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

相關(guān)文章

  • Go語言hello world實例

    Go語言hello world實例

    這篇文章主要介紹了Go語言hello world實例,本文先是給出了hello world的代碼實例,然后對一些知識點和技巧做了解釋,需要的朋友可以參考下
    2014-10-10
  • 服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運行參數(shù)的保存

    服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運行參數(shù)的保存

    這篇文章主要介紹了服務(wù)器端Go程序?qū)﹂L短鏈接的處理及運行參數(shù)的保存,這里針對使用Go語言編寫的Socket服務(wù)器進行實例說明,需要的朋友可以參考下
    2016-03-03
  • Go語言指針用法詳解

    Go語言指針用法詳解

    Go指針和C指針在許多方面非常相似,但其中也有一些不同。本文詳細講解了Go語言指針的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • mac下安裝golang框架iris的方法

    mac下安裝golang框架iris的方法

    這篇文章主要介紹了mac下安裝golang框架iris的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 詳解go-zero如何實現(xiàn)令牌桶限流

    詳解go-zero如何實現(xiàn)令牌桶限流

    令牌桶算法既能夠?qū)⑺械恼埱笃骄植嫉綍r間區(qū)間內(nèi),又能接受服務(wù)器能夠承受范圍內(nèi)的突發(fā)請求,因此是目前使用較為廣泛的一種限流算法,本文就來看看go-zero如何實現(xiàn)令牌桶限流的吧
    2023-08-08
  • go貨幣計算時如何避免浮點數(shù)精度問題

    go貨幣計算時如何避免浮點數(shù)精度問題

    在開發(fā)的初始階段,我們經(jīng)常會遇到“浮點數(shù)精度”和“貨幣值表示”的問題,那么在golang中如何避免這一方面的問題呢,下面就跟隨小編一起來學(xué)習(xí)一下吧
    2024-02-02
  • Go底層select的原理分析

    Go底層select的原理分析

    這篇文章主要介紹了Go底層select的原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • GO中的條件變量sync.Cond詳解

    GO中的條件變量sync.Cond詳解

    條件變量是基于互斥鎖的,它必須基于互斥鎖才能發(fā)揮作用,條件變量的初始化離不開互斥鎖,并且它的方法有點也是基于互斥鎖的,這篇文章主要介紹了GO的條件變量sync.Cond,需要的朋友可以參考下
    2023-01-01
  • golang?防緩存擊穿singleflight的實現(xiàn)

    golang?防緩存擊穿singleflight的實現(xiàn)

    本文主要介紹了golang?防緩存擊穿singleflight的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 基于Go語言開發(fā)一個編解碼工具

    基于Go語言開發(fā)一個編解碼工具

    這篇文章主要為大家詳細介紹了如何基于Go語言開發(fā)一個編解碼工具,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起了解一下
    2025-03-03

最新評論

视频| 嵊泗县| 阜新市| 封丘县| 本溪市| 罗定市| 静海县| 昌吉市| 余姚市| 砀山县| 南开区| 百色市| 马鞍山市| 长垣县| 双鸭山市| 交城县| 黄平县| 玉山县| 寿阳县| 揭西县| 黑山县| 九寨沟县| 铁岭县| 岑巩县| 长泰县| 玉门市| 天长市| 太康县| 梓潼县| 西青区| 灌南县| 新邵县| 巫溪县| 买车| 七台河市| 宜城市| 双柏县| 博客| 孟村| 临漳县| 社会|