问题标签 [eip]

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 回答
36 浏览

linux - 通过 GDB 运行程序时,函数位置是否会改变?

我正在尝试进行缓冲区溢出练习,这是代码:

这是一段简单的代码。目标是溢出缓冲区badfunction()并覆盖返回地址,使其指向函数的内存地址cantrun()

第 1 步:找到返回地址的偏移量(在本例中为 12 字节,缓冲区为 8,基指针为 4)。

第二步:找到 的内存位置cantrun(),gdb 说是 0x0804849a。

当我运行程序printf "%012x\x9a\x84\x04\x08" | ./vuln时,我收到错误“非法指令”。这表明我已经正确覆盖了 EIP,但内存位置cantrun()不正确。

我正在使用 Kali Linux,内核 3.14,我关闭了 ASLR,并且我正在使用 execstack 来允许一个可执行堆栈。难道我做错了什么?

更新:

作为一个在黑暗中的镜头,我试图通过移动地址来找到正确的指令,而 0x0804849b 就可以了。为什么这与 GDB 显示的不同。运行 GDB 时,0x0804849a 是前奏指令的位置,push ebp0x0804849b 是前奏指令的位置mov ebp,esp

0 投票
0 回答
657 浏览

c - 为什么 eip 没有被我溢出的 shellcode 覆盖?

所以我不得不为分配做一个缓冲区溢出,我觉得我很接近。我必须注意,我的老师已经设置了一个 VM 供我们使用,如果我们能够将 shellcode 放入堆栈的返回地址,它将在堆栈上执行。我不需要循环回到我的缓冲区或其中任何一个。我的理解是,我想要覆盖并将我的 shellcode 放入的寄存器是eip. 我从这里得到的信息https://greyhat.gatech.edu/wiki/index.php?title=Stack_Buffer_Overflow

我发现如果我s1[64]用 72 个字符填充缓冲区,我会得到一个段错误:Program received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? ()当我让 gdb 打印出我得到的寄存器的值时:

如果我用少一个字符(即 71)填充缓冲区,程序会成功执行,所以我觉得 72 必须以某种方式成为一个神奇的数字。所以我尝试s1用 72 个填充字符和我的 shellcode 填充。这次我得到了一个不同的段错误:

Program received signal SIGSEGV, Segmentation fault. 0x080486f5 in main () at badcopyTester2.c:61 和 gdb 显示eip充满了0x080486f5为什么/如何eip得到这个值?我的shellcode不应该在那里吗?此外,无论我在 72 个填充字符的末尾放什么,eip总是用相同0x080486f5的 . 的输入 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\xeb\x18\x5e\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c\xb0\x0b\x8d\x1e\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xe8\xe3\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68给出完全相同的段错误。

再一次,我觉得我已经很接近了,因为我发现了如何eip清除但被卡住了。谢谢你的帮助!

0 投票
1 回答
137 浏览

activemq - ActiveMQ 和集成模式:在哪里实现?

我有一个小项目,其中来自 twitter 的推文被应用程序使用,放入 ActiveMQ 上的 JMS 队列,从另一个应用程序读取以丰富每条推文,然后返回到 ActiveMQ 服务器上的另一个 JMS 队列。目前,所有路由都是在每个应用程序本身内定义的。因此,从 twitter 到 JMS 队列的路由在应用程序 A 中定义,从一个 JMS 队列到另一个 JMS 队列的路由在应用程序 B 中定义。

在我看来,这种架构似乎是错误的,因为现在我无法在不重新部署其中一个应用程序的情况下更改任何路线。

我想要的是一个解决方案,其中我有一些(微)服务,如 twitter 适配器和丰富器,它们彼此独立。但是我在哪里放置路由信息呢?不知何故进入 ActiveMQ?有没有办法轻松配置路由?不知何故,这听起来像是一个 ESB,不是吗?

0 投票
1 回答
766 浏览

groovy - 骆驼中的节流请求不起作用

以下是部署为基本框架的基本 groovy 路由类中的 3 条路由。

下面是我在引用基本框架的包中创建的计时器路由。

它不断地向端点1 和端点2 发送定时器消息,它们都向公共端点发送消息。我的 ThrottlingInflightRoutePolicy 定义如下。

在检查日志时,我可以简单地看到计时器的日志跟踪。我不明白如何在检查日志时限制请求。我这里有什么遗漏吗?在我的代码中应该做什么来测试节流......?

0 投票
1 回答
600 浏览

apache-camel - Apache Camel 中的进程管理器模式

Apache Camel 框架是否支持流程管理器模式?( http://www.enterpriseintegrationpatterns.com/ProcessManager.html )

0 投票
1 回答
267 浏览

amazon-web-services - 最佳实践:NAT 与 ElasticIP

我有两个基本的 Web 应用程序设置,它们位于 Amazon Web Service 上的 ELB 后面。

布局 A:

布局 B:

我相信这两种架构都有优点和缺点:

布局 A:

  • Web 服务器是否将 http 响应发送回 ELB?如果它直接传递给用户,它会获得性能响应吗?
  • 如果我只在安全组上限制 Http 端口的传出流量,是否还有任何安全威胁?

布局 B:

  • 这种设计是否会产生另一层故障点 (NAT)?
  • 它适用于 Oauth 通信吗?
  • 它可以与 3rd 方 CI 和编排工具(jenkins、chef)一起使用吗?

两种设计都运行良好,但考虑到性能和安全性,哪种设计是基础架构的最佳实践。

谢谢

0 投票
1 回答
211 浏览

amazon-web-services - AWS 中的 EIP 和公有 IP 有什么区别?

AWS 中的 EIP 和公共 IP 有什么不同?

如果在 EC2-Classic 中启动实例,EIP = 公共 IP?如果在 EC2-VPC 中启动实例,实例的公网 IP 可以是 NAT 地址吗?

0 投票
1 回答
239 浏览

java - EAI经纪人模式

我是 EAI 的新手,读到有两种方法可以实现 EAI

1) Broker/hub-spoke 模型 2) ESB

代理模型是 JMS 吗?

我从事轻量级 ESB 的 Spring-integration 工作,因此对 ESB 的工作原理有所了解。

但不确定 Broker 模型

任何可以详细说明 Broker 模型以及如何实现它的人。

提前致谢

问候拉曼迪普·S。

0 投票
1 回答
3310 浏览

callstack - EIP和Return Aaddress有什么区别?

谁能解释EIP和返回地址之间的区别?

它似乎是相同的,但在我的调试器中,它表明它们是不同的。

0 投票
1 回答
5141 浏览

assembly - CALL 指令是否总是将 EIP 指向的地址推入堆栈?

在 x86 架构中的函数调用期间,是否存在返回地址没有被压入堆栈的情况?