ICode9

精准搜索请尝试: 精确搜索
  • linux-如何测试STDIN读取错误2019-11-22 01:01:17

    我有一个Linux程序(当前为汇编程序),该程序具有检查功能:如果从STDIN读取失败,则显示错误消息.问题是我不知道如何测试这种情况,不知道如何执行程序,以至于它无法从STDIN读取.必须在不启动STDIn或STDIN的情况下运行IT,然后才能在程序启动之前将其关闭?解决方法:是的,您可以关闭文件描

  • 没有任何Java的原生android开发?2019-11-21 02:24:51

    我最近对android开发感兴趣,但是对我来说最大的障碍甚至是仅仅想到使用java开发手机.我对Java能否以一致的帧率实现高性能游戏不抱有信心,我也不希望我的程序在垃圾回收期间停滞.我主要是一名C/C++程序员(如果需要的话,我也使用汇编程序),他以前使用Java进行过编程,并且根据过去的

  • 如何在Linux上通过系统调用等待按键中断?2019-11-21 01:01:33

    当用户在程序中按nasm编写的特殊按键(如F1-12)时,我希望收到中断.我只需要在主要功能开始时等待功能击键.我知道使用BIOS的int 16h(返回扫描代码)是可能的.我如何在Linux下执行此操作?解决方法:所需的代码相当复杂.我最终想出了如何使用原始ioctl在C中检查F1,进行读取和写入的方法.

  • Linux Binutils使用’as’组装Mips2019-11-19 22:50:55

    我提取了要进行反向工程的D-Link固件. 我以前没有关于Mips的经验.我已经下载了火星以学习Mips.但是,现在我有了Mips的正当性,我想构建机器代码.我可以将其从火星导出为转储文件,而radare2可以很好地对其进行分解,但是我更喜欢使用终端实用程序. 我听说可以这样做,但是在-march下没

  • linux-用x87 float调用printf2019-11-10 17:00:58

    我在x86 asm中有一个简单的程序,它使z = x / y.关键是,除法时应正确编写代码,但不打印任何内容.没有输出.我不知道出什么问题了,因为当程序不使用eax,ebx等时,我无法调试. global main extern printf section .text main: finit fild dword[x] fild dword[y]

  • maven插件生成可执行jar包2019-11-09 15:54:09

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <configuration> <archive> <manifest> <

  • 在x86-64下快速堆栈切换2019-11-09 04:50:33

    在x86-64下切换堆栈的最少代码是什么?我正在尝试在Windows和Linux下实现光纤,而没有getcontext或setjmp内联汇编.真的像交换$rsp和$rbp一样简单吗?因为我可以轻松做到这一点.我只是不确定如何去做.我对x86-64的知识knowledge之以鼻.解决方法:作为上下文切换的一部分,必须完成将RSP更

  • 为何使用syscall clobber rcx?2019-11-09 00:50:33

    这个问题已经在这里有了答案:            >            Why do x86-64 Linux system calls modify RCX, and what does the value mean?                                    1个 在书Low-Level Programming: C, Assem

  • C-不使用stdlibs打印args2019-11-08 19:50:34

    我刚刚编写了一个C程序,它不使用标准库或main()函数即可打印其命令行参数.我的动机只是出于好奇心,并了解如何进行内联汇编.我正在将Ubuntu 17.10 x86_64与4.13.0-39通用内核和GCC 7.2.0一起使用. 以下是我尝试尽我所能理解的代码.系统需要使用函数print,print_1,my_exit和_start()

  • 我爬的entityFramework的坑2019-11-05 13:03:19

    老师使用的是mysql的数据库,但是我只有sqlserver的数据库,于是就照猫画虎,想连自己的sqlserver,结果一连跳了几个坑: 坑一:appsetting中的字符串连接是后面还有个s, 坑二:直接出现failed build大多数是你这句话出了问题,不行的话就清理下项目     坑三:说你的目标项目和你迁移的命名空间

  • 在没有堆栈的情况下在Linux上进行系统调用2019-11-02 23:51:11

    在Linux i386上,使用int $0x80 syscall ABI可以很容易地在没有有效用户空间堆栈的情况下执行syscall.另一方面,vdso / vsyscall接口需要访问堆栈.在这方面,其他Linux端口(特别是x86_64)如何?他们有没有堆栈的方式进行系统调用的方法吗?是否有关于每个架构的可用syscall方法的参考?解决

  • 这种方法好吗?2019-11-01 21:50:50

    对于某些功能,我需要切换堆栈,以使原始堆栈保持不变.为此,我编写了两个宏,如下所示. #define SAVE_STACK() __asm__ __volatile__ ( "mov %%rsp, %0; mov %1, %%rsp" : \ "=m" (saved_sp) : "m" (temp_sp) ); #define RESTORE_STACK() __asm__ __volatile__ ( "mov %0, %%

  • linux-如何反汇编原始MIPS代码?2019-11-01 14:50:52

    类似于How do I disassemble raw x86 code?,但是对于MIPS体系结构:我如何使用objdump分解原始MIPS代码?我想查看vmlinux映像中的说明,但现在我必须这样做: : > x.c mipsel-linux-gnu-gcc -c -o x.o x.c mipsel-linux-gnu-objcopy --add-section raw=vmlinux x.o mipsel-linux-gnu-obj

  • linux-使用gdb和nasm缺少调试信息2019-11-01 09:51:50

    我有一个带有以下makefile的简单汇编程序: all : calc calc : calc.o gcc -m32 -g -o calc calc.o calc.o : calc.s nasm -f elf -g -F stabs calc.s 我尝试使用gdb对其进行调试,但始终显示: Single stepping until exit from function asc2int, which has no line num

  • PHP-机器码和操作码有什么区别?2019-11-01 07:32:27

    这个问题主要与PHP有关,因为在PHP上下文中主要提到了IMHO操作码.根据这个description,这是php代码到opcode的转换过程: php文字->扫描/解析->结果=令牌->编译>结果=操作码 这里有几个问题: 1)操作码仅仅是机器代码的一部分,机器代码是否由操作码组成? 2)考虑到Wamp服务器的上下文,哪个

  • 中断发生或进程调度时,是否需要保存标志寄存器?2019-11-01 05:02:21

    我知道当中断发生时所有通用寄存器都被压入堆栈,但是我看不到任何保存标志寄存器的代码.如果标志寄存器损坏,则从中断恢复时,依赖于标志寄存器的汇编指令(如setl)很容易产生错误的结果.解决方法:是的,(e / r)标志寄存器需要像这样在上下文切换中保存. 所有中断(硬件和软件,包括异常

  • Objdump -S没有显示Linux内核模块的源代码列表2019-11-01 05:02:03

    我正在尝试从我的一个内核模块中调试崩溃;我正在尝试获取源代码清单以及objdump的输出,但未列出.我有什么想念的吗? mips-linux-objdump -S <filename.o> > temp 解决方法:最有可能是a)在构建过程中的某个时候从内核模块目标文件中剥离了所有调试信息,或者b)即使存在调试信息,objd

  • 了解Linux中的堆栈2019-10-31 15:51:26

    我有一个小型(且易受攻击的)C示例: #include <unistd.h> int main(int argc, char *argv[]) { char buff[100]; if(argc < 2) { printf("Syntax: %s <input string>\n", argv[0]); exit (0); } strcpy(buff, argv[1]);

  • Kip Irvine-X86处理器的汇编语言-与Linux相关性如何?2019-10-30 19:51:47

    Kip Irvine Assembly Language for x86 Processors的书对Linux操作系统有多重要?换句话说,这实际上是一本关于x86的书,与在Linux上学习x86真的有很大的不同吗?当然,操作系统肯定只是ASM之上的抽象层吗? 我想知道是否要买这本书,但我对以Linux为重点的编程更感兴趣.解决方法:>从我在亚

  • 如何使asm跳转到c中的变量地址?2019-10-30 07:51:10

    现在,我用c中的内联汇编调用跳转指令,如下所示: int register eax asm("eax") = addr; // addr is a memory address asm("jmp *%eax"); 我想这样做而不必设置任何其他寄存器值(例如,我想做的就是这样): asm("jmp *(addr)"); 什么是正确的方法?也就是说,如何将c变量“插入”到asm

  • linux-ASLR和地址2019-10-29 21:50:32

    看看这个主要的: int main() { int asd = 10; printf("%p\n", &asd); return 0; } 给定时刻的asd地址: 0x7ffff5f7c16c 主地址(始终相同): (gdb) disass main Dump of assembler code for function main: 0x00000000004005b4 <+0>: push %rbp 为什么常规c程序

  • c-将源与反汇编代码匹配2019-10-29 16:50:32

    作为我的工作的一部分,我经常必须分析带有/不带有核心转储的不可复制的零售崩溃.我一般配备 >调用堆栈,崩溃时的注册表信息,单一信息 >实际负载模块>匹配源代码 通常,基于偏移量并通过objdump生成反汇编,我计算失败的指令(机器代码/汇编代码). 下一个工作是乏味的.我尝试将失败的指

  • linux-位置独立代码中的Access .data部分2019-10-27 06:50:30

    我正在与NASM建立共享库.在该库中的某些函数中,我需要在C中称为静态变量的东西.基本上,我认为它在.data节中有一些空间: SECTION .data last_tok: dq 0 ; Define a QWORD 当我尝试在函数中访问last_tok时,就会出现问题. 我读了NASM Manual: 8.2 Writing Linux/ELF Share

  • linux-如何仅编译ARM32二进制文件(无经验)2019-10-25 18:51:08

    是否存在GCC配置,该配置将生成仅包含ARM32代码的可执行文件? 我知道-marm开关告诉编译器不要产生Thumb代码,但是它仅适用于程序的用户代码,而初始化例程(例如_start,frame_dummy等)仍然包含Thumb指令.我在Linux x86-64系统上使用Linaro交叉编译器工具链(arm-linux-gnueabihf-). 编辑

  • linux-有关程序集/ C中变量的内存管理的一般问题2019-10-24 20:50:48

    首先:我知道有很多网页(包括有关stackoverflow的讨论)都在讨论.bss和.data之间用于数据声明的区别,但是我有一个特定的问题,但是我没有找到答案这些页面很不幸,所以我在这里问:-). 我是汇编界的初学者,所以如果问题很愚蠢,我深表歉意:-). 我正在x64 64位linux操作系统上学习汇编语言

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有