标签: hexdump

Go - 二进制密码安全性

我打算在我的Go应用程序中保存密码/密钥以用于与其他一些应用程序的通信.我想知道如何保护它,例如有人获得二进制文件并在某个十六进制查看器中搜索它.这种安全措施是否常见,还是我担心太多?

security passwords hexdump go

2
推荐指数
1
解决办法
857
查看次数

为什么 Photoshop 文件以 8BPS 开头?

几乎从一开始,Photoshop 文件就以 8BPS 开始。(我已将其验证回 2.5 版)它在某些时候一定具有某种意义。

我认为 8B 可能是指位/通道,但将其保存为 16 或 32 没有区别。PS 可能是 PhotoShop,但也可能不是。与 Mac 保存文件的方式有关吗?

photoshop hexdump abbreviation

2
推荐指数
1
解决办法
3057
查看次数

PE(32位)和PE+(64位)结构有区别吗?

我知道 PE 32 位结构,我想知道 PE 32 位和 PE 64 位之间有什么区别(定义 64 位 PE 结构)?

debugging reverse hexdump portable-executable

2
推荐指数
1
解决办法
4840
查看次数

试图从内存中打印出有用的数据

void update_memblock(MEMBLOCK *mb)
{
    static unsigned char tempbuf[128 * 1024];
    SIZE_T bytes_left;
    SIZE_T total_read;
    SIZE_T bytes_to_read;
    SIZE_T bytes_read;

    bytes_left = mb->size;
    total_read = 0;

    while (bytes_left)
    {
        bytes_to_read = (bytes_left > sizeof(tempbuf)) ? 
sizeof(tempbuf) : bytes_left;
        ReadProcessMemory(mb->hProc, mb->addr + total_read, 
tempbuf, bytes_to_read, &bytes_read);
        if (bytes_read != bytes_to_read) break;

        memcpy(mb->buffer + total_read, tempbuf, bytes_read);

        bytes_left -= bytes_read;
        total_read += bytes_read;
    }
    mb->size = total_read;
}
Run Code Online (Sandbox Code Playgroud)

这是我当前的代码,我最初正在阅读另一个进程'内存使用ReadProcessMemory.现在我存储了临时数据tempbuf.我能够以tempbuf十六进制形式输出数据.但是我打算如图所示显示它,另外我在这里遇到的另一个复杂因素是bytes_left> sizeof(tempbuf)我只读取相当于tempbuf大小的足够数据.如何读取更多数据,因为我定义的数组只能支持尽可能多的数据?

in_this_format

c memory windows hexdump

2
推荐指数
1
解决办法
271
查看次数

如何从字符串中删除所有非字母字符?

我一直在开发一个程序,该程序将采用十六进制文件,如果文件名以“CID”开头,那么它应该删除前 104 个字符,在那之后有几个单词。我也想删除单词之后的所有内容,但问题是我想要隔离的部分长度各不相同。

\n\n

我的代码目前是这样的:

\n\n
y = 0\nimport os\nfiles = os.listdir(".")\n\nfilenames = []\nfor names in files:\n    if names.endswith(".uexp"):\n        filenames.append(names)\n        y +=1\n        print(y)\nprint(filenames)\n\nfor x in range(1,y):\n    filenamestart = (filenames[x][0:3])\n    print(filenamestart)\n    if filenamestart == "CID":\n        openFile = open(filenames[x],\'r\')\n        fileContents = (openFile.read())\n        ItemName = (fileContents[104:])\n        print(ItemName)\n
Run Code Online (Sandbox Code Playgroud)\n\n

输入示例文件(从 HxD 中提取):

\n\n
.........................\xc3\xbd\xc3\xbf\xc3\xbf\xc3\xbf................E.................!...1AC9816A4D34966936605BB7EFBC0841.....Sun Tan Specialist.................9.................!...9658361F4EFF6B98FF153898E58C9D52.....Outfit.................D.................!...F37BE72345271144C16FECAFE6A46F2A.....Don\'t get burned............................................................................................................................\xc3\x81\xc6\x92*\xc5\xbe\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经成功删除了前 104 个字符,但我还想删除“Sun Tan Specialist”之后的字符,这些字符的长度会有所不同,所以我只剩下那部分。

\n\n

我感谢任何人能给我的任何帮助。

\n

python hex hexdump

2
推荐指数
1
解决办法
2万
查看次数

为什么 hexdump 将 0x0A 解析为点?

该问题基于以下命令的输出:

$ hexdump -C acpid.pid
00000000  36 39 37 0a                                       |697.|
00000004
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,0x36 0x39 0x37被解析为其关联的符号6 9 7。由于0x0A是换行符,因此它们不是表示它的普通符号(根据 ASCII 表),但是

为什么0x0A解析为一个点?

我的操作系统是Ubuntu 18.04.3。

ascii hexdump linefeed ubuntu-18.04

2
推荐指数
1
解决办法
496
查看次数

Native perl hexdump - 只检查零值

我正在尝试检查磁盘或磁盘映像是否为"空".我假设如果第一个1mb和最后一个1mb是零则这是真的.我开始尝试重新创建,hexdump但此时似乎有点啰嗦.

这是我的代码:

open DISK, $disk or die $!;
for( 1 .. 1024 ) {
    $buffer = undef;
    sysread(DISK, $buffer, 1024, 0) or last;
    for ( split //, $buffer ) {
        if( ord($_) =~ /[^0]/ ) {
            $flag++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

perl hexdump

1
推荐指数
1
解决办法
332
查看次数

如何hexdump大文件

我想输出8go文件的hexdump结果.是否有可能一件一件地做?如何指定有限数量的行(我已阅读手册页,它似乎对应于-n长度,但它不起作用)

hexdump

1
推荐指数
1
解决办法
3040
查看次数

十六进制转储为二进制-等效xxd -r

在Linux bash shell中,我使用以下命令将纯十六进制转储转换为二进制

$ echo "8cd59ef53c9aaa68311b73767e0975e7" | xxd -r -p > xxd_out.bin
Run Code Online (Sandbox Code Playgroud)

当我在文本查看器中打开文件时,它看起来像 ŒÕžõ<šªh1sv~ uç

或在xxd中

$ xxd -b xxd_out.bin
00000000: 10001100 11010101 10011110 11110101 00111100 10011010  ....<.
00000006: 10101010 01101000 00110001 00011011 01110011 01110110  .h1.sv
0000000c: 01111110 00001001 01110101 11100111                    ~.u.
Run Code Online (Sandbox Code Playgroud)

或在Notepad ++ Hex-Editor(插件)视图中 在此处输入图片说明

如何在Ruby中获得相同的二进制输出?有没有可用的库xxd -r -p

ruby hexdump

1
推荐指数
1
解决办法
1044
查看次数

如何在保留不可打印字符的同时将十六进制转换为 ASCII

我今天在调试时遇到了一些奇怪的问题,我设法将其追溯到一开始我忽略的事情。

看一下这两个命令的输出:

root@test:~# printf '%X' 10 | xxd -r -p | xxd -p
root@test:~# printf '%X' 43 | xxd -r -p | xxd -p
2b
root@test:~#
Run Code Online (Sandbox Code Playgroud)

第一个 xxd 命令将十六进制转换为 ASCII。第二个将 ASCII 转换回十六进制。(43 十进制 = 2b 十六进制)。

不幸的是,它似乎是十六进制转换为ASCII并没有保留非打印字符。例如,原始十六进制“A”(十进制十进制 = A 十六进制),不知何故被xxd -r -p. 因此,当我执行逆操作时,我得到一个空结果。

我想做的是将一些数据输入到 minimodem 中。我需要通过位敲击有效地生成呼叫等待来电显示 (FSK)。我的 bash 脚本有正确的位,但如果我执行十六进制转储,则缺少不可打印的字符。不幸的是,minimodem 似乎只接受 ASCII 字符,我需要给它原始十六进制,但它似乎在转换中被吃掉了。是否有可能以某种方式保留这些字符?我不认为这是任何选择,所以想知道是否有更好的方法。

bash hex hexdump xxd

0
推荐指数
1
解决办法
39
查看次数