小编Jon*_*art的帖子

使用十六进制编辑器在ELF可执行文件中查找整数声明的变

我想通过使用十六进制编辑器更改可执行文件中的整数声明变量的值,只是假设我知道在代码中声明了一个变量类型int,变量是这样的:

int value = 1337;

我想编辑可执行文件使用十六进制编辑器搜索值1337并将其更改为其他东西,我在ubuntu尝试ghex但我不知道如何搜索它我转换为十六进制但我没有找到它,先谢谢你们.

hex hex-editors elf

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

如何搜索和替换多个 ZIP 文件中的字符串?

我在寻找正确的命令来搜索和查找 Unix 上包含 XML 文件的多个 ZIP 文件中的字符串时遇到问题。

我能够在多个 ZIP 文件中找到搜索字符串,但未能成功替换查找内容并替换该字符串。

不幸的是,这不太有效。一旦找到解压缩文件(到临时位置)的字符串,我就尝试使用 grep 和 sed 命令。但我可能错误地认为我可以编辑临时文件?

oldAddress='<ns1:line1/>'
newAddress='<ns1:line1>somestring</ns1:line1>'

for file in *.zip; do
    unzip -c "$file" | grep -q "<ns1:line1/>" | xargs -l {} sed -i 's/$oldAddress/$newAddress/g'
done
Run Code Online (Sandbox Code Playgroud)

提前致谢。

unix bash shell grep sed

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

是否可以使用Python以编程方式创建Blender文件(.blend)?

我知道Python是在Blender中使用的标准脚本语言,但是我找不到用python创建.blend文件的方法.

我想要做的是不要在blender中使用python,而是"在python中使用blender(libs?)".

我计划的工作流程如下:

  1. 为我的模型定义一些参数;
  2. 定义"生成配方"以创建将保存到文件的适当Blender对象;
  3. 创建一个python脚本来存储参数和过程.当脚本运行时,会在同一文件夹中创建一些.blend文件;
  4. 使用Blender可视化模型.如果需要更改模型,请对脚本进行更改,再次运行并再次打开.

python blender 3d-model

5
推荐指数
2
解决办法
6590
查看次数

python:UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xc0:无效的起始字节

我正在尝试编写一个脚本,通过创建随机的utf-8编码字符串然后将其解码为unicode来生成随机unicode.它适用于单个字节,但有两个字节就失败了.

例如,如果我在python shell中运行以下命令:

>>> a = str()

>>> a += chr(0xc0) + chr(0xaf)

>>> print a.decode('utf-8')

UnicodeDecodeError: 'utf8' codec can't decode byte 0xc0 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

根据utf-8方案https://en.wikipedia.org/wiki/UTF-8#Description,字节序列0xc0 0xaf应该以0xc0开头1100xaf开头有效10.


这是我的python脚本:

def unicode(self):
    '''returns a random (astral) utf encoded byte string'''
    num_bytes = random.randint(1,4)
    if num_bytes == 1:
        return self.gen_utf8(num_bytes, 0x00, 0x7F)
    elif num_bytes == 2:
        return self.gen_utf8(num_bytes, 0xC0, 0xDF)
    elif num_bytes == 3:
        return self.gen_utf8(num_bytes, 0xE0, …
Run Code Online (Sandbox Code Playgroud)

python unicode encoding utf-8

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

解决错误C3821:托管类型或功能不能在非托管功能中使用

我正在编写一个C++/CLI层来处理一些互操作.

本机API填充了涉及固定数组,联合,匿名结构等的复杂结构:

typedef struct DECLSPEC_ALIGN(16) _FOO {
    union {
        BAR Bar;
        struct {
           POP   Array[8];
           DWORD More;
        };
    };
} FOO, *PFOO;
Run Code Online (Sandbox Code Playgroud)

我正在尝试将此数据结构转换为更"理智"的.NET类,供C#使用.问题是,我不能使用这个遗留结构,而gcnew我的新类在同一个函数中:

Foo^ Test::GetFoo(HANDLE h)
{
    FOO foo;                              // Necessarily unmanaged

    if (!::GetFoo(h, &foo))
        throw gcnew Exception("GetFoo failed");

    Foo^ result = gcnew Foo();            // Necessarily managed

    // populate result

    return result;
}
Run Code Online (Sandbox Code Playgroud)

这样做会给出错误:

错误2错误C3821:'void Test :: GetFoo(HANDLE)':托管类型或函数不能在非托管函数中使用

如果本机结构和a gcnew不能存在于同一个函数中,那么人们怎么能希望(甚至手动)对两者之间的数据进行编组?

这里有许多Q/A涉及包装非托管类,这似乎与此无关.

.net windows interop c++-cli

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

gRPC设置问题。出现间歇性RPC不可用错误

我有一个grpc服务器和客户端,大多数时候都能正常工作,但是偶尔会收到“传输正在关闭”错误:

rpc error: code = Unavailable desc = transport is closing
Run Code Online (Sandbox Code Playgroud)

我想知道我的设置是否有问题。客户端很基础

connection, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock())
pb.NewAppClient(connection)
defer connection.Close()
Run Code Online (Sandbox Code Playgroud)

并以类似超时的方式拨打电话

ctx, cancel := context.WithTimeout(ctx, 300*time.Millisecond)
defer cancel()

client.MyGRPCMethod(ctx, params)
Run Code Online (Sandbox Code Playgroud)

我正在做的另一件事是检查连接以查看它是处于打开,空闲还是正在连接状态,如果有则重新使用该连接。否则,请重拨。

服务器没有任何特殊配置

grpc.NewServer()
Run Code Online (Sandbox Code Playgroud)

设置我可能正在设置的grpc客户端/服务器是否存在任何常见错误?

rpc go grpc

5
推荐指数
2
解决办法
4257
查看次数

它们被称为“环境”还是“环境”变量?

我一直使用“环境变量”这个术语,但我有一位消息灵通的同事一直说“环境变量”。

哪一个是正确的?

terminology environment-variables

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

为什么\n在Log.Info方法中不起作用?

Log.Info中下面的String.Format方法中的\n将"\n"打印为文本而不是开始新行; 为什么它不起作用?任何的想法?我怎样才能使它工作?

Log.Info(String.Format("Some arguments : \n Since : {0}\nBefore: {1}\nLog file name : {2}", since, before,logFileName));
Run Code Online (Sandbox Code Playgroud)

谢谢!

.net c# log4net string-formatting

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

ld链接器脚本产生巨大的二进制

我正在使用binutils-2.21.53.0.1-6.fc16.x86_64.

我有一个小的目标文件,hello.o只有足够的"东西"来包含所有部分的内容:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .text             PROGBITS         0000000000000000  00000040
       000000000000005d  0000000000000000  AX       0     0     4
  [ 2] .rela.text        RELA             0000000000000000  00000808
       0000000000000060  0000000000000018          15     1     8
  [ 3] .data             PROGBITS         0000000000000000  000000a0
       0000000000000000  0000000000000000  WA       0     0     4
  [ 4] .bss              NOBITS           0000000000000000  000000a0
       0000000000000053  0000000000000000  WA       0     0     32
  [ 5] .rodata           PROGBITS …
Run Code Online (Sandbox Code Playgroud)

elf ld linker-scripts

4
推荐指数
3
解决办法
2775
查看次数

我可以将指针传递给Linux内核空间以获取__user参数吗?

我已经读过__userLinux内核中的说明符,用于标记Sparse的函数参数以检查函数参数.

特别是,给定

int foo1( char * buf );
Run Code Online (Sandbox Code Playgroud)

一个人不能传递指向用户空间的指针buf.

反过来怎么样?在

int foo2( char __user * buf );
Run Code Online (Sandbox Code Playgroud)

可能必须通过用户提供的指针?我猜测前者是因为用户提供的指针确实可以是任何东西,但我还没有在任何地方找到__user的正式规范.

c pointers linux-kernel

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