Shellcode Without null bytes

I am trying to convert an assembly program into null-free shellcode. However, I am unsure how to go about this for certain instructions. Some of them way more complex than the examples I found in the web. I used a C program from the web as an example, then converted to .s,using gcc -Wall -O -fverbose-asm -S example.c gcc -c example.s -o example.o gcc example.o -o example objdump -d example

Shellcode没有空字节

我试图将汇编程序转换为无空的shellcode。 但是,我不确定如何针对某些说明进行此操作。 其中一些方式比我​​在网上找到的例子更为复杂。 我以Web上的一个C程序为例,然后使用gcc -Wall -O -fverbose-asm -S example.c gcc -c example.s -o example.o gcc example.o -o将其转换为.s示例objdump -d示例 .file "test.c" # GNU C (Debian 4.9.2-10) version 4.9.2 (x86_64-linux-gnu) # compiled by GNU C version 4.9.2, G

Seeing the console's output in Visual Studio 2010?

I am writing a simple C# program with some outputs ( Console.WriteLine("..."); ). The problem is, each time I run it, I cannot see the program's output in the output window. The "program output" tag is already checked, and I already redirected all outputs to the intermediate window but to no avail. How do I enable seeing the program's output? I don't think t

在Visual Studio 2010中查看控制台的输出?

我正在编写一个带有一些输出的简单C#程序( Console.WriteLine("..."); )。 问题是,我每次运行它时,都看不到输出窗口中的程序输出。 “程序输出”标签已经被选中,我已经将所有输出重定向到中间窗口,但无济于事。 如何启用查看程序的输出? 我认为问题不在于我的代码。 我尝试运行一个简单的程序,只输出一个字符串和readline“ala hello world”,我仍然无法看到任何输出。 问题在于我在错误的位置查找输出

snprintf and Visual Studio 2010

I'm unfortunate enough to be stuck using VS 2010 for a project, and noticed the following code still doesn't build using the non-standards compliant compiler: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (fails compilation with the error: C3861: 'snprintf': identi

snprintf和Visual Studio 2010

我不幸被一个项目用VS 2010卡住了,并且注意到下面的代码仍然不能使用不符合标准的编译器来编译: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (编译失败,错误:C3861:'snprintf':标识符未找到) 我记得这是VS 2005的情况,我很震惊地看到它仍然没有被修复。 是否有人知道微软是否

subscripted value is neither array nor pointer nor vector with argv

I have this code.c in ubuntu in terminal but when I compile it with gcc this error appeared cod2.c: In function ‘main’: cod2.c:9:11: error: subscripted value is neither array nor pointer nor vector why is that? int main(int argc , char ** argv){ mkdir(argc[1] , 00755); return 0; } You got confused between argc (an int representing the number of arguments) and argv (an array of string

下标值既不是数组也不是指针,也不是具有argv的向量

我在终端的ubuntu中有这个code.c,但是当我用gcc编译它时,出现了这个错误 cod2.c: In function ‘main’: cod2.c:9:11: error: subscripted value is neither array nor pointer nor vector 这是为什么? int main(int argc , char ** argv){ mkdir(argc[1] , 00755); return 0; } 你在argc (一个表示参数个数的int)和argv (包含命令行参数的字符串数组)之间感到困惑。 更改: mkdir(argc[1], 00755); 至: m

Converting Assembly to C

My professor posed a 'challenge' question to us in lecture on Friday. He gave us the assembly for a C program, then removed two constants from the C code. The Assembly: sum_element: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax movl 12(%ebp),%ecx sall $2,%ecx leal 0(,%eax,8),%edx subl %eax,%edx leal (%eax,%eax,4),%eax movl mat2(%ecx,%eax,4),%eax addl mat1(%ecx,%edx,4),%eax movl %ebp,%esp

将装配转换为C

周五,我的教授在讲座中向我们提出了一个“挑战”问题。 他给了我们一个C程序的程序集,然后从C代码中移除了两个常量。 大会: sum_element: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax movl 12(%ebp),%ecx sall $2,%ecx leal 0(,%eax,8),%edx subl %eax,%edx leal (%eax,%eax,4),%eax movl mat2(%ecx,%eax,4),%eax addl mat1(%ecx,%edx,4),%eax movl %ebp,%esp popl %ebp ret 然后C代码: #define M ____ #define N ____

Can I use Intel syntax of x86 assembly with GCC?

I want to write a small low level program. For some parts of it I will need to use assembly language, but the rest of the code will be written on C/C++. So, if I will use GCC to mix C/C++ with assembly code, do I need to use AT&T syntax or can I use Intel syntax? Or how do you mix C/C++ and asm (intel syntax) in some other way? I realize that maybe I don't have a choice and must use

我可以在GCC上使用x86汇编的Intel语法吗?

我想写一个小的低级程序。 对于它的某些部分,我将需要使用汇编语言,但其余代码将用C / C ++编写。 因此,如果我将使用GCC将C / C ++与汇编代码混合,是否需要使用AT&T语法,或者我可以使用英特尔语法? 或者,你如何以其他方式混合使用C / C ++和asm(intel语法)? 我意识到,也许我没有选择,必须使用AT&T语法,但我想确定.. 如果事实证明是没有选择的,我可以在哪里找到有关AT&T语法的完整/官方文档? 谢谢!

Using GCC to produce readable assembly?

I was wondering how to use GCC on my C source file to dump a mnemonic version of the machine code so I could see what my code was being compiled into. You can do this with Java but I haven't been able to find a way with GCC. I am trying to re-write a C method in assembly and seeing how GCC does it would be a big help. If you compile with debug symbols, you can use objdump to produce a mo

使用GCC生成可读的组件?

我想知道如何在我的C源代码文件上使用GCC来转储机器代码的助记符版本,这样我就可以看到我的代码被编译进了什么程序。 你可以用Java来做到这一点,但我一直无法找到GCC的方式。 我正在尝试在汇编中重新编写一个C方法,并且看看GCC如何实现这一点会有很大的帮助。 如果使用调试符号进行编译,则可以使用objdump来产生更易读的反汇编。 >objdump --help [...] -S, --source Intermix source code with disasse

Even faster inexpensive thread

I've read this topic: C# Thread safe fast(est) counter and have implemented this feature in my parallel code. As far as I can see it all works fine, however it has measurably increased the processing time, as in 10% or so. It's been bugging me a bit, and I think the problem lies in the fact that I'm doing a huge number of relatively cheap (<1 quantum) tasks on small data fragmen

更便宜的线程

我读过这个主题:C#线程安全快速(est)计数器并在我的并行代码中实现了此功能。 据我所见,这一切都很好,但它显着增加了处理时间,大约在10%左右。 它一直在困扰着我,我认为问题在于,我正在做很多相对便宜(<1个量程)的小数据片段任务,这些小数据片段分配得很好,可能会很好地利用缓存局部性,从而优化运行。 基于我对MESI知之甚少,我最好的猜测是, Interlocked.Increment中的x86 LOCK前缀将缓存行推入独占模式

Get MVC Bundle Querystring

Is it possible to detect a bundle querystring in ASP.NET MVC? For example if I have the following bundle request: /css/bundles/mybundle.css?v=4Z9jKRKGzlz-D5dJi5VZtpy4QJep62o6A-xNjSBmKwU1 Is it possible to extract the v querystring?: 4Z9jKRKGzlz-D5dJi5VZtpy4QJep62o6A-xNjSBmKwU1 I've tried doing this in a bundle transform, but with no luck. I found that even with UseServerCache set t

获取MVC捆绑Querystring

是否有可能在ASP.NET MVC中检测捆绑查询字符串? 例如,如果我有以下捆绑请求: /css/bundles/mybundle.css?v=4Z9jKRKGzlz-D5dJi5VZtpy4QJep62o6A-xNjSBmKwU1 是否有可能提取v查询字符串?: 4Z9jKRKGzlz-D5dJi5VZtpy4QJep62o6A-xNjSBmKwU1 我试过在捆绑转换中这样做,但没有运气。 我发现即使将UseServerCache设置为false ,转换代码也不会始终运行。 自从我与ASP Bundler合作以来,我已经有一段时间了(我记得它

What coding techniques do you use for optimising C programs?

Some years ago I was on a panel that was interviewing candidates for a relatively senior embedded C programmer position. One of the standard questions that I asked was about optimisation techniques. I was quite surprised that some of the candidates didn't have answers. So, in the interests of putting together a list for posterity - what techniques and constructs do you normally use when

你用什么编码技术来优化C程序?

几年前,我在一个面板上,正在面试相对高级的嵌入式C程序员职位的候选人。 我问的一个标准问题是关于优化技术。 我很惊讶有些候选人没有答案。 因此,为了为后人列出一份清单 - 在优化C程序时通常使用哪些技术和构造? 速度和尺寸优化的答案都可以接受。 首先要做的事 - 不要太早优化。 花时间仔细优化一小段代码,发现它不是您认为它将会出现的瓶颈并不罕见。 或者换句话说,“在你快速制作之前,让它工作” 调查在