我在使用标头编译一些文件时遇到了一些麻烦.这是我的代码细分:
在file1.c
#include "header.h"
int main() {
func1();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
file2.c中
#include "header.h"
void func1() {
... function implementation ...
}
Run Code Online (Sandbox Code Playgroud)
header.h
void func1();
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
在函数中
'main':
未定义引用'func1'
注意:我只是简单地分析了我的3个文件的设置方式.我需要让这个与3个文件一起使用.我正在设置/包括一切吗?我需要使用这个设置,但我只是不确定file.c如何引用实际的实现func1().
我只是在学习java,必须使用java swing库和Graphics2D类做一些事情.基本上我必须画一个有多个部分的建筑起重机:一个车身(起重机的车身)和一些附加的臂(基本上它看起来像这样:http://i.imgur.com/4YIkYqW.jpg) .
我的问题围绕着我是否正确使用Java swing类?在我下面的代码中,我遗漏了不必要的代码,因为我只想确保我的结构正确(正确使用JPanel,paintComponent()等).任何帮助将不胜感激,因为我只是学习Java!多谢你们.
public class CraneSimulator {
...
public JFrame frame;
public MyPanel panel;
public CraneSimulator() {
frame = new JFrame("CraneSimulator");
...
panel = new MyPanel();
frame.add(panel);
}
public static void main(String[] args) {
CraneSimulator simulator = new CraneSimulator();
}
}
class MyPanel extends JPanel {
CraneBody body;
CraneArm arm1;
...
Graphics2D graphics;
public MyPanel() {
body = new CraneBody();
arm1 = new CraneArm(body);
...
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
... …Run Code Online (Sandbox Code Playgroud) 我正在阅读并尝试学习格式字符串漏洞.我有一个易受攻击的功能,我理解与格式字符串有关的要点.
基本上,这就是我想要做的.传入我的格式字符串,其中包含一些shellcode作为其中的一部分.我还需要格式化我的字符串,以便更换易受攻击函数的返回地址,以便它指向我在堆栈上的shellcode.因此,当函数返回时,它将跳转到堆栈上的shellcode并打开shell.
目前,我正处于可以在堆栈上看到我的shellcode的位置,并且我能够写入返回地址来更改它.问题是,我使用%n作为覆盖返回地址的方式,并且不确定如何使用特定值覆盖%n.当然,%n只是将到目前为止写入的字节数打印到堆栈上的指定地址.我已经阅读了几个关于你如何操纵%n来写出你想要的确切地址/值的东西,但是我对如何做到这一点感到很遗憾.
任何人都能解释一下吗?
编辑:我已经尝试用'%500d"和"%.500d"等内容填充我的格式字符串以及某些n值的"%nu".(我也尝试过更小的值)但是这只是带来了分段错误.
为了澄清一些困惑,这是我在回复评论时写的一个简单例子:
好的,我会试着更清楚一点.我有一个易受攻击的程序.易受攻击的一点是"printf(输入);".我想通过传入格式字符串来利用它.现在,例如,我有一个格式字符串
"\x0c\xde\xbf\xff%08x.%08x.%08x.%08x.%08x.%08x.%n"
Run Code Online (Sandbox Code Playgroud)
传入易受攻击的函数时,此格式字符串将使用写入的字节数覆盖0xffbfde0c的内存地址.我想找出如何修改该格式字符串,以便我可以通过以某种方式填充在%n之前写入的字节数来使%n覆盖特定值.
我正在研究一个OS项目,我只是想知道指针是如何存储在内存中的?我知道指针是4个字节,那么指针如何在4个字节之间扩展呢?
我的问题是,我试图存储一个指向4字节内存插槽的指针.可以说指针是0x7FFFFFFF.什么存储在4个字节的每一个?