交换两个子字符串

时间:2019-05-02 14:55:29

标签: c

我使用 ghidra 对二进制文件进行了反向工程,它使用calloc()从内存中获取字符串,然后使用种子获取该字符串的两个随机部分。然后,它将交换这两个子字符串。它会执行1000次,然后显示答案。我不确定 *(未定义*)需要替换为什么(这是我第一次使用C)

我尝试仅存储两个子字符串并以这种方式交换它们,但是我需要将它们存储在相同的内存位置中,以便再次打印出来。

  lVar5 = ftell(__stream);
  iVar2 = (int)lVar5;
  __ptr = calloc((long)(iVar2 + 1),1);
  iVar3 = rand(); 
  iVar3 = iVar3 % (iVar2 + -1);
  iVar4 = rand();
  iVar4 = iVar4 % (iVar2 + -1);
  uVar1 = *(undefined *)((long)__ptr + (long)iVar4);
  *(undefined *)((long)__ptr + (long)iVar4) = *(undefined *)((long)__ptr + (long)iVar3);
  *(undefined *)((long)iVar3 + (long)__ptr) = uVar1;

0 个答案:

没有答案