第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 x pos 二進(jìn)制文件中提取文本

從 x pos 二進(jìn)制文件中提取文本

Go
qq_花開花謝_0 2022-07-18 15:48:53
我正在嘗試讀取二進(jìn)制文件以從不同位置獲取字符串;讀取 {IP,login,pwd} 我的想法是找到第一個(gè) ip 并在之后讀取數(shù)據(jù),因?yàn)橹g的長度是一樣的:Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F00000060  5F 00 00 00 00 11 E0 BB 5F 00 00 00 00 01 34 31  _.....à?_.....4000000070  2E 31 39 31 2E 39 37 2E 36 32 00 00 00 00 00 00  .091.17.02......00000080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000090  00 00 73 75 70 70 6F 72 74 00 00 00 00 00 00 00  ..support.......000000A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................000000B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................000000C0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................000000D0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................000000E0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................000000F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000100  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000110  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000120  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000130  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000140  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000150  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000160  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................00000170  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................我的圍棋代碼import (    "io"    "log"    "os")func main() {    file, err := os.Open("data")    if err != nil {        log.Fatal(err)    }    defer file.Close()    o2, err := file.Seek(110, io.SeekCurrent) <---- find first occurrence     byteSlice := make([]byte, 32)    bytesRead, err := file.Read(byteSlice)    if err != nil {        log.Fatal(err)    }        log.Printf("IP: %s\n", byteSlice)    }如何在找到 ip 后找到所有出現(xiàn)的 { ip, login, pwd },用我的代碼我只能找到第一個(gè) (ip) 32 位。去
查看完整描述

2 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

謝謝你的幫助,


我使用 file.Seek(x,0) 像這樣的代碼:


file, err := os.Open("data.bin")

check(err)

defer file.Close()


o1, err := file.Seek(110, 0)  <--- first position

check(err)

_ip := make([]byte, 15)

ipRead, err := file.Read(_ip)

clean_ip := strings.ReplaceAll(string(_ip[:]), " ", " ")


o2, err := file.Seek(21, io.SeekCurrent)

check(err)

_user := make([]byte, 15)

userRead, err := file.Read(_user)

clean_user := strings.ReplaceAll(string(_user[:]), " ", " ")


o3, err := file.Seek(532, 0)  <---- Second position

check(err)

_pwd := make([]byte, 20)

pwdRead, err := file.Read(_pwd)

clean_pwd := strings.ReplaceAll(string(_pwd[:]), " ", " ")

它的工作但不干凈


查看完整回答
反對 回復(fù) 2022-07-18
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

一種方法是迭代文件。本質(zhì)上,您可以重新實(shí)現(xiàn)該strings程序。它類似于使用bufio#Scanner.Scan,但您需要迭代空字節(jié)而不是換行符。您可以使用 bufio#Scanner.Split,Go 甚至提供了一些預(yù)制功能。


我采用了ScanLines并修改為使用空字節(jié)而不是換行符。此外,也 ScanLines返回空行,所以我添加了一個(gè)空文本檢查:


package main


import (

   "bufio"

   "strings"

)


func null(b []byte, eof bool) (int, []byte, error) {

   if eof { return 0, nil, nil }

   for n := range b {

      if b[n] == 0 {

         return n+1, b[:n], nil

      }

   }

   return len(b), b, nil

}


func main() {

   s := bufio.NewScanner(strings.NewReader("March\x00April\x00May\x00\x00June"))

   s.Split(null)

   for s.Scan() {

      if s.Text() != "" {

         println(s.Text())

      }

   }

}


查看完整回答
反對 回復(fù) 2022-07-18
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號