小编sta*_*lue的帖子

x86汇编代码中的宏

有人可以解释如何在x86汇编编码中使用宏

macros x86 assembly

1
推荐指数
1
解决办法
6975
查看次数

语言翻译:任何组装

我只是好奇是否有任何类型的程序/应用程序允许以一种语言输入代码并将其转换为另一种语言,如asm.这似乎完全可能......所以这样的事情存在吗?

language-agnostic assembly programming-languages

1
推荐指数
1
解决办法
2198
查看次数

C#:为什么我的应用程序没有关闭其文件句柄?

我有一个应用程序,它在文件系统和GAC中打开一系列DLL,并锁定这些文件.如何显式释放这些句柄,以便我可以在Visual Studio中重建它们而无需关闭我的应用程序?

代码如下:

private void BuildTabPage_AssemblyTree(string filename, string foldername)
{
    Assembly assembly;
    try
    {
    assembly = Assembly.LoadFrom(filename);
    }
    catch (Exception ex) 
    {
    MessageBox.Show("Error loading assembly " + filename + "\n" + ex.Message);
    return;
    }
    TreeNode tRoot = BuildNode(assembly, foldername);
    tvAssemblies.Nodes.Add(tRoot);
    tvAssemblies.ExpandAll();

    txtResults.Text =
    RefsFound.ToString() + " References Located in Filesystem\r\n" +
    RefsInFramework.ToString() + " References Located in Framework\r\n" +
    RefsInGac.ToString() + " References Located in GAC\r\n" +
    RefsNotFound.ToString() + " References Not Found: \r\n\r\n";
    foreach (string s in MissingFiles)
    txtResults.Text …
Run Code Online (Sandbox Code Playgroud)

c# reflection assemblies

1
推荐指数
1
解决办法
486
查看次数

帮助将此程序集转换为c

我的编译器不能使用我拥有的汇编文件和我的其他编译器,它将无法使用我拥有的c文件.我不明白集会.我需要移动它,但我没有快速到达任何地方.那里有人可以提供帮助吗?我无法相信没有翻译.这是文件的开头:

    list        p=18F4480       
    #include    <p18F4480.inc> 

    #define _Z      STATUS,2
    #define _C      STATUS,0

    GLOBAL  AARGB0,AARGB1,AARGB2,AARGB3     
    GLOBAL  BARGB0,BARGB1,BARGB2,BARGB3
    GLOBAL  ZARGB0,ZARGB1,ZARGB2
    GLOBAL  REMB0,REMB1
    GLOBAL  TEMP,TEMPB0,TEMPB1,TEMPB2,TEMPB3
    GLOBAL  LOOPCOUNT,AEXP,CARGB2


LSB         equ 0
MSB         equ 7

math_data   UDATA   
AARGB0      RES 1       
AARGB1      RES 1
AARGB2      RES 1
AARGB3      RES 1
BARGB0      RES 1   
BARGB1      RES 1
BARGB2      RES 1
BARGB3      RES 1
REMB0       RES 1   
REMB1       RES 1
REMB2       RES 1
REMB3       RES 1   
TEMP        RES 1
TEMPB0      RES 1
TEMPB1      RES 1
TEMPB2      RES 1
TEMPB3 …
Run Code Online (Sandbox Code Playgroud)

c++ assembly translation pic status-register

1
推荐指数
1
解决办法
616
查看次数

我想制作一个混淆器

这是一个两部分问题.但它都与同样的事情有关.

我想使用应用程序的IL代码来应用补丁.我想知道什么是正确的方法.显然我可以反编译它并读取和编辑il代码文件然后重新编译.但有没有办法在文件中将其作为msil代码读取.并且可能实时编辑它.

我试图编辑可执行文件的反编译代码.但每次我重新编译它都会导致执行问题.就像它再也找不到它的切入点了.我该如何计算?我猜我需要知道命令及其参数的长度,或者使入口点成为Label或其他东西.如果有像这样的东西的Visual Studio模板,我会很高兴.

.net cil edit

1
推荐指数
1
解决办法
238
查看次数

对存储在EAX中的地址进行异或

你如何异化存储在EAX中的值?

问题出在这一行:

xor eax, key
Run Code Online (Sandbox Code Playgroud)

EAX包含我想要XOR的值的地址.我怎么能做到这一点?我虽然会有以下几点:

xor [eax], key
Run Code Online (Sandbox Code Playgroud)

但这不起作用(语法错误)

 decrypt proc startAddress:DWORD , sizeOfSegment:DWORD , key:DWORD


  xor ecx, ecx    ; clear the ecx register for the counter
  mov eax, startAddress  ; copy the start address to eax
  .while ecx < sizeOfSegment  ; loop through the code
  xor eax, key    ; XOR decrypt the word
  inc eax
  inc ecx
  .endw

   ret

  decrypt endp
Run Code Online (Sandbox Code Playgroud)

x86 assembly masm xor

1
推荐指数
1
解决办法
1569
查看次数

如何将东西存储在堆栈中?

所以我一直在学习汇编并谈到堆栈的主题,存储本地,静态和全局变量和东西.

但是我很难想象它在脑海里.

内存底部但堆栈顶部:S whaa ??

令我困惑的是,每当某些东西被推入堆栈时,堆栈指针就会被删除.不应该添加它.

我的意思是我得到了代码,但很难知道究竟发生了什么.

memory assembly stack

1
推荐指数
1
解决办法
651
查看次数

从汇编代码创建可执行文件

我需要从下一个汇编代码创建一个可执行文件:

.MODEL SMALL
.DATA
TEXT DB 'Hello world!$'

.CODE
.STACK 20
.STARTUP
MOV AX, @DATA
MOV DS, AX
MOV AH, 9
MOV BL, 02H
INT 10H
MOV Dx, OFFSET TEXT
INT 21H
MOV AH, 4CH
INT 21H
END
Run Code Online (Sandbox Code Playgroud)

它适用于Turbo Assembler(tasm.exe),但我不想继续使用它,因为它不能在Windows 7中运行.

谢谢.

x86 assembly windows-7

1
推荐指数
1
解决办法
4232
查看次数

缓冲区溢出存储器映射解释

我正在处理一个简单的缓冲区溢出(是的,利用;但与问题无关)我试图找出内存映射中的字段,当GCC的堆栈保护器启用时.作为说明:

$ ./overflow
*** stack smashing detected ***: ./overflow terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0xb7f67da8]
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x0)[0xb7f67d60]
./overflow[0x804845c]
[0x41414141]
======= Memory map: ========
08048000-08049000 r-xp 00000000 08:06 3704767    /home/hatred/w0rk/bugz
08049000-0804a000 r--p 00000000 08:06 3704767    /home/hatred/w0rk/bugz
0804a000-0804b000 rw-p 00001000 08:06 3704767    /home/hatred/w0rk/bugz
0804b000-0806c000 rw-p 0804b000 00:00 0          [heap]
b7e5a000-b7e67000 r-xp 00000000 08:06 368705     /lib/libgcc_s.so.1
b7e67000-b7e68000 r--p 0000c000 08:06 368705     /lib/libgcc_s.so.1
b7e68000-b7e69000 rw-p 0000d000 08:06 368705     /lib/libgcc_s.so.1
b7e69000-b7e6a000 rw-p b7e69000 00:00 0 
b7e6a000-b7fc6000 r-xp 00000000 08:06 386037     /lib/tls/i686/cmov/libc-2.9.so
b7fc6000-b7fc7000 ---p 0015c000 08:06 386037     /lib/tls/i686/cmov/libc-2.9.so …
Run Code Online (Sandbox Code Playgroud)

c linux assembly gcc buffer-overflow

1
推荐指数
1
解决办法
1427
查看次数

at&t asm inline c ++问题

我的守则

const int howmany = 5046;
char buffer[howmany];
    asm("lea     buffer,%esi"); //Get the address of buffer
    asm("mov     howmany,%ebx");         //Set the loop number
    asm("buf_loop:");                      //Lable for beginning of loop
    asm("movb     (%esi),%al");             //Copy buffer[x] to al
    asm("inc     %esi");                   //Increment buffer address
    asm("dec     %ebx");                   //Decrement loop count
    asm("jnz     buf_loop");              //jump to buf_loop if(ebx>0)
Run Code Online (Sandbox Code Playgroud)

我的问题

我正在使用gcc编译器.出于某种原因,我的缓冲区/ howmany变量在我的asm眼中是不确定的.我不知道为什么.我只想将缓冲区数组的起始地址移动到esi寄存器中,在将每个元素复制到al寄存器时循环"howmany"次.

c x86 assembly gcc inline-assembly

1
推荐指数
1
解决办法
1444
查看次数