问题标签 [reversing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
86 浏览

c - JUMP 表接近 .text 部分的末尾

我编写了以下非常简单的程序:

当我在 x64dbg(或任何其他调试器)上打开它时,我可以看到 IAT 位于该.rdata部分的开头,它确实包括我使用的函数,GetCurrentProcessIdandOpenProcess和其他函数。

然而,在接近正文部分的末尾,我看到了这段代码,它似乎也像一个跳转表: 这个表是什么?

我可以看到似乎被称为 IAT 的函数也被导入,但在我阅读的任何 PE 指南中都找不到对该表的任何引用。

这个表是什么,我如何通过 PE 部分或结构以某种方式以编程方式引用它?

0 投票
1 回答
634 浏览

debugging - 绕过 ptrace 反调试技巧

在调试 32 位 Linux 可执行文件时,我在绕过对 ptrace 的调用时遇到了一些麻烦。
我有这个二进制文件:ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.26, BuildID[sha1]=b1579d4c55e90110491da76331c9a158b77a5729, stripped

我一直在尝试调试它。所以由于它是一个剥离的二进制文件,我使用 gdb 找到了入口点。

到达入口点后,我打印出以下说明:

我知道0x8048480是主函数的地址。现在我在 main (0x8048480) 处放置了一个断点,然后运行程序,但我无法进入断点,程序以代码 01 退出。因此我决定运行strace ./binary命令,ptrace 调用禁止我进一步调试:

为了绕过这个,我尝试使用 LD_PRELOAD 环境变量。
因此我创建了一个简单的 .c 文件:

并使用以下命令将其编译为共享库:

这里是命令文件 ptrace.so 的输出

接下来,我首先使用命令在 shell 中设置环境变量 LD_PRELOAD export LD_PRELOAD=./ptrace.so,然后在 gdb 中设置set environment LD_PRELOAD=./ptrace.so

但这是输出:

我怎样才能绕过 ptrace 调用?

谢谢你。

0 投票
4 回答
301 浏览

c - 在没有库函数的情况下反转字符串

代码编译成功。但我无法反转字符串。因为我是一个初学者级的程序员,我真的无法弄清楚我犯的错误。

0 投票
1 回答
58 浏览

c++ - 赋值只在循环外有效

我正在学习 CPP(第一语言),并且正在尝试反转链表。此代码不起作用

这个正在工作

为什么第二个代码片段有效,而第一个无效?

0 投票
1 回答
46 浏览

c - 从多少个可重定位文件中构建一个 Elf 执行文件?

有没有一种方法可以从构建 Elf 执行文件的可重定位文件中找到多少?以及如何将段与其原始可重定位文件相关联?

预先感谢。

0 投票
2 回答
40 浏览

python - 我如何推导出这部分算法

我是 Python 编程的初学者,遇到了这个程序。

此算法用于反转列表:

该算法基于这样的逻辑,即交换过程只会发生在偶数长度的列表的 len/2 元素或奇数长度的列表的 len/2 元素之前,因为如果交换过程发生到最后一个元素,该清单将保持与最初相同。

我明白下面的部分是做什么的,但是我如何推导出它,请解释一下逻辑:

0 投票
3 回答
335 浏览

python - 使用追加和弹出方法在python中反转列表

在教程视频中,我正在观看 for 循环中使用的范围是“范围(len(l))”,它成功地反转了列表。

但我想简单地加上“ l ”就可以解决这个问题,但没有人可以告诉我为什么会这样?

0 投票
3 回答
178 浏览

java - 如何在java中反转二维数组?

我正在尝试反转 2D 数组中的所有内容。最后一个值应该是第一个,第一个值应该是最后一个。

例如,输入

会返回:

这是我到目前为止的一些代码,但它正在返回:

如何解决这个问题,以便切换 3 和 7?

0 投票
1 回答
718 浏览

java - prog.java:52:错误:不兼容的类型:int 不能转换为布尔值 for(int i=0;i=n/2;i++){

for 循环中的值是否在 Java 中给出布尔结果?编译代码时出现此错误:

prog.java:52:错误:不兼容的类型:int 不能转换为布尔值 for(int i=0;i=n/2;i++){

0 投票
0 回答
34 浏览

c++ - 如何设置 char [ ] 以便在我们输入任何字符或不输入任何字符时都会给出输出。代码如下


所以主线是 8 下面给出了代码,程序是关于反转字符串。基本上我已经给了字符值 80 我需要帮助所以如果我输入值它将反转字符串