问题标签 [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.
c - JUMP 表接近 .text 部分的末尾
我编写了以下非常简单的程序:
当我在 x64dbg(或任何其他调试器)上打开它时,我可以看到 IAT 位于该.rdata
部分的开头,它确实包括我使用的函数,GetCurrentProcessId
andOpenProcess
和其他函数。
然而,在接近正文部分的末尾,我看到了这段代码,它似乎也像一个跳转表: 这个表是什么?
我可以看到似乎被称为 IAT 的函数也被导入,但在我阅读的任何 PE 指南中都找不到对该表的任何引用。
这个表是什么,我如何通过 PE 部分或结构以某种方式以编程方式引用它?
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 调用?
谢谢你。
c - 在没有库函数的情况下反转字符串
代码编译成功。但我无法反转字符串。因为我是一个初学者级的程序员,我真的无法弄清楚我犯的错误。
c++ - 赋值只在循环外有效
我正在学习 CPP(第一语言),并且正在尝试反转链表。此代码不起作用
这个正在工作
为什么第二个代码片段有效,而第一个无效?
c - 从多少个可重定位文件中构建一个 Elf 执行文件?
有没有一种方法可以从构建 Elf 执行文件的可重定位文件中找到多少?以及如何将段与其原始可重定位文件相关联?
预先感谢。
python - 我如何推导出这部分算法
我是 Python 编程的初学者,遇到了这个程序。
此算法用于反转列表:
该算法基于这样的逻辑,即交换过程只会发生在偶数长度的列表的 len/2 元素或奇数长度的列表的 len/2 元素之前,因为如果交换过程发生到最后一个元素,该清单将保持与最初相同。
我明白下面的部分是做什么的,但是我如何推导出它,请解释一下逻辑:
python - 使用追加和弹出方法在python中反转列表
在教程视频中,我正在观看 for 循环中使用的范围是“范围(len(l))”,它成功地反转了列表。
但我想简单地加上“ l ”就可以解决这个问题,但没有人可以告诉我为什么会这样?
java - 如何在java中反转二维数组?
我正在尝试反转 2D 数组中的所有内容。最后一个值应该是第一个,第一个值应该是最后一个。
例如,输入
会返回:
这是我到目前为止的一些代码,但它正在返回:
如何解决这个问题,以便切换 3 和 7?
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++){
c++ - 如何设置 char [ ] 以便在我们输入任何字符或不输入任何字符时都会给出输出。代码如下
所以主线是 8 下面给出了代码,程序是关于反转字符串。基本上我已经给了字符值 80 我需要帮助所以如果我输入值它将反转字符串