草庐IT

ASSEMBLY

全部标签

c - 使用 Windows 调试器查看用 C 写入的内存位置?

我在dosbox中运行了TurboC和Windows调试我有这个C程序,它有两条主线,如你所见。inta=5然后一行显示a的地址,printf("addressofa=%x",&a)我运行它好像告诉我a已经分配到了fff4的地址现在我想使用调试来希望在该内存地址看到5的值但是没有显示如何在调试中看到它? 最佳答案 这是编译后的main函数的DEBUG输出:16E1:01FA55PUSHBP16E1:01FB8BECMOVBP,SP16E1:01FD83EC02SUBSP,+0216E1:0200C746FE0500MOVWORDPT

windows - 如何在 64 位 Windows 计算机上链接 32 位 Nasm 汇编目标代码

我从http://www.dreamincode.net/forums/topic/328714-my-program-keeps-crashing/中找到了以下代码.globalstart;~msvcrt.dllextern_printf%defineprintf_printf;~kernel32.dllexternExitProcess,GetCommandLineW,LocalFree%defineGetCommandLineGetCommandLineW;~shell32.dllexternCommandLineToArgvW%defineCommandLineToArgvCo

windows - 如何在 NASM 中减去两个数并得到负数?

我有这段代码应该减去两个数字,一个float(10.25)和一个整数(15):extern_printfglobal_mainsection.bssnum1:resb4num2:resb4section.dataformat_number:db"%f",10,0section.text_main:movdword[num1],15movdword[num2],__float32__(10.25)subesp,8filddword[num2]fsubdword[num1]fstpqword[esp]pushformat_numbercall_printfaddesp,12ret我得到的输

windows - 是否可以在不链接到 c 库且不使用 ExitProcess() 的情况下从汇编代码创建 Windows exe?

这个问题在这里已经有了答案:Makeaprogramusingonlysystem-callsnotwindowsdll's[duplicate](1个回答)关闭4年前。出于教育目的,我正在尝试使用不依赖于标准C库或WindowsDLL的汇编代码在Windows上创建一个(32位)exe。我可以创建一个开始运行的程序(并且我可以使用gdb进行调试)但是我不确定如何干净地退出该程序。所有教程要么链接到标准C库并定义main函数,要么使用在DLL中定义的ExitProcessWinAPI调用。在32位Linux上,我会将int0x80指令与exit系统调用一起使用。显然,Windows没有

windows - 禁止将 EXCEPTION_DEBUG_EVENT 传递给附加的调试器

我正在处理一个反调试应用程序,它禁止将EXCEPTION_DEBUG_EVENT传递给我的调试器,而是执行其SEH和UnhandledExceptionFilters。我尝试了3种不同的调试器(甚至是自制的)我的调试器接收到其他调试事件,如LOAD_DLL、CREATE_THREAD等第一次调试和最后一次调试都没有通过异常我自己创建的线程的断点事件被传递给调试器,因此反调试方法必须是线程特定的,并且可能是对ThreadInformationBlock的修改没有内核模式访问权限那怎么可能在用户模式下传递EXCEPTION_DEBUG_EVENT(只针对一个线程,不影响整个进程)?

windows - 颜色问题

我正在编写一个贪吃蛇游戏,我有一个苹果图像要在游戏中使用,所以我创建了一个DC,然后将苹果加载到这个DC,当游戏运行时,它应该将苹果复制到缓冲区然后缓冲区到屏幕,但苹果在屏幕上以黑白结尾,任何人都知道为什么?这是我的一些代码,可能会有所帮助...“苹果加载程序”invokeGetModuleHandle,0invokeLoadBitmap,eax,10pusheaxinvokeCreateCompatibleDC,0popecxmov[mapple],eaxinvokeSelectObject,[mapple],ecx“缓冲区创建过程”invokeCreateCompatibleDC,

windows - 如何在汇编程序中更改屏幕背景

这是作业:如何在汇编程序(Windows上的NASM)中清除屏幕并更改前景色和背景色编辑:原来答案是这样的movbh,71hint10h 最佳答案 查看FillConsoleOutputCharacter和SetConsoleTextAttribute. 关于windows-如何在汇编程序中更改屏幕背景,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5465284/

windows - C++ 如何导出地址表 Hook (EAT)?

我将如何进行导出地址表(EAT)Hook?我能够进行IAT(导入地址表)Hook。有人能给我举个例子吗?谢谢! 最佳答案 EATHook遵循与IATHook非常相似的方法,主要区别在于您查看的位置发生了变化,请查看Win32PEformat的PE文件导出部分。.可以找到一个非常简单的(虽然是C语言)示例here,如果确实需要以汇编形式编译和反汇编即可。 关于windows-C++如何导出地址表Hook(EAT)?,我们在StackOverflow上找到一个类似的问题:

windows - Win32 FASM .inc 文件之间的差异

FlatAssembler中的win32a、win32ax、win32axp、win32w、win32wx和win32wxp.inc文件有什么区别?我试图在FASM文档中找到它,但找不到...提前致谢,ChristonianCoder 最佳答案 Therearesixheadersfor32-bitWindowsthatyoucanchoosefrom,withnamesstartingwithwin32followedbyeitheraletteraforusingtheASCIIencoding,oraletterwforthe

NASM 程序集中的 Windows API Beep 函数

我正在尝试在NASM程序集中使用WindowsAPI,只是一些基本的函数调用等等。所以,我去了MSDN网站并阅读了有关Beep功能的信息。它说它需要两个值,都是双字,频率和持续时间。这就是我的汇编程序的样子:NULLequ0;nullglobal_start;entrypointexternBeep,ExitProcess;thestuffIneedsection.databeepfreqdd37;limitof37to32,767beepdurdd300;Thisisinmillisecondssection.bssdummyresd1;nothingsection.text_sta