小编use*_*712的帖子

找不到IDA Pro的字符串窗口

我使用IDA Pro Advanced Edition v6.但我找不到字符串窗口.仅显示功能窗口,IDA View-A,IDA Hex View-A,Structures窗口,Enums窗口,Imports and Exports窗口.

有人可以告诉我如何打开字符串窗口吗?

ida

8
推荐指数
2
解决办法
2万
查看次数

以下汇编代码行的含义是什么?

我在C中编写了以下代码,以便从中创建汇编程序代码并学习汇编程序.

我当然从一个问候世界开始,在一行中,有以下内容:

    mov DWORD PTR[esp], OFFSET FLAT:.LCO
Run Code Online (Sandbox Code Playgroud)

而且LC0,它说:

    .string "Hello World!"
    .text
    .globl main
    .type main,@function
Run Code Online (Sandbox Code Playgroud)

那么,我问自己,行的含义是什么OFFSET FLAT:.LCO?当我说,我是对的,就像指向字符串的指针一样esp?所以esp现在也指向字符串hello世界?

是对的吗?因为这是合乎逻辑的.

x86 assembly

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

了解shellcode示例

在shellcode教程中,我看到了以下示例:

 main(){

    exit(0);

 }
Run Code Online (Sandbox Code Playgroud)

想法是创建一个exit() - 系统调用.那么,他们生产组件:

  Section .text

      global _start

 _start:
      mov ebx, 0
      mov eax, 1
      int 0x80
Run Code Online (Sandbox Code Playgroud)

我理解这一点.0是我们存储在ebx中的exit()的参数,1是退出系统调用的编号,使用0x80我们将CPU更改为内核模式并执行系统调用.

之后,他们让我们生成以下代码:

    bb 00 00 00 00
    b8 01 00 00 00
    cd 80
Run Code Online (Sandbox Code Playgroud)

然后,他们将其翻译成C语言,看起来像:

 char example[] = "\xbb\x00\x00\x00\x00"
                  "\xb8\x01\x00\x00\x00"
                  "\xcd\x80"

  int main(){

  int *pointer; 
  pointer = (int *)&pointer+2;
  (*pointer) = (int)example;
  }
Run Code Online (Sandbox Code Playgroud)

所以,我理解的是他们将操作码放在char数组中,但我不明白他们在main()中做了什么 - 方法.第一行还可以.但他们想用第2和第3行表达什么?

最好的祝福,

c assembly pointers opcodes shellcode

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

从Optional <>转换为ArrayList <>

我有以下情况:

public ArrayList<A> getMethods(){
    return b.c.test();
}
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是b.c.test()返回一个Optional<A>返回类型的值.但我需要回归ArrayList<A>.

所以,我试图将其转换并重写为:

public ArrayList<A> getMethods(){
    return (ArrayList<A>)b.c.test();
}
Run Code Online (Sandbox Code Playgroud)

但是Eclipse说,从这样的投Optional<A>ArrayList<A>不可能的.

我怎么解决这个问题?

java casting arraylist optional

5
推荐指数
3
解决办法
2万
查看次数

手柄的大小是多少?

对于练习,我看一下STARTUPINFO结构.如您所见,最后3个元素具有类型HANDLE.

所以我想知道它的大小HANDLE.有人知道大小HANDLE吗?

c windows structure handle

3
推荐指数
2
解决办法
4477
查看次数

用gdb向后反汇编核心文件

在模糊测试期间,测试的应用程序崩溃了,我得到了一个核心文件.用gdb打开核心文件后,它说应用程序没有调试符号.

backtrace命令显示以下内容:

 Program terminated with signal 11, Segmentation fault.
 #0  0x0000000000000000 in ?? () 
  (gdb) bt
 #0  0x0000000000000000 in ?? ()
 #1  0x00007f8749f065d3 in ?? ()
 #2  0x00007f874c6a9000 in ?? ()
 #3  0x00007f8749f06568 in ?? ()
 #4  0x00007f874c6ab9a0 in ?? ()
 #5  0x00007f874c6aaa00 in ?? ()
 #6  0x0000000000000001 in ?? ()
 #7  0x00007f8749f06664 in ?? ()
 #8  0x0000000000000000 in ?? ()
Run Code Online (Sandbox Code Playgroud)

所以,当我键入(gdb)disass 0x00007f8749f065d3,+ 1然后我得到以下输出:

Dump of assembler code from 0x7f8749f065d3 to 0x7f8749f065d4:
   0x00007f8749f065d3:  mov    QWORD PTR [rbx+0x70],0x0
End …
Run Code Online (Sandbox Code Playgroud)

gdb core disassembly

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

使用带参数的函数在堆栈中ebp和esp的行为

我想了解有关堆栈的更多信息。特别是调用带有参数的函数时会发生什么。为此,我编写以下代码:

    #include <stdio.h>
    int sum(int d, int e, int f){
        int result = d + e + f;
        return result;
    }

   int main(void){
   int a = 5;
   int b = 4;
   int c = 2;

   int erg = sum(a,b,c);
   printf("Result is: %d", erg);

   }
Run Code Online (Sandbox Code Playgroud)

我得到以下汇编代码(我将仅添加main函数的一部分,因为首先我想了解本节):

    push ebp,
    mov ebp, esp
    and esp, -16
    sub esp, 32
    mov DWORD PTR[esp+28], 5
    mov DWORD PTR[esp+24], 4
    mov DWORD PTR[esp+20], 2
    mov eax, DWORD PTR[esp+20]
    mov DWORD PTR[esp+8], eax
    mov eax, …
Run Code Online (Sandbox Code Playgroud)

parameters x86 assembly stack calling-convention

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

输入"显示"时解析错误

我写了以下代码:

data Genre = Nonfiction | Novel | Biography deriving (Eq, Show)

type Name = (String, String)
type Date = (Int, Int, Int)
type Book = ABook Genre
        Name 
        String
        Date 
        Int
deriving Show

genre :: Book -> Genre 
genre (ABook g _ _ _ _) = g

author :: Book -> Name 
author (ABook _ a _ _ _) = a

title :: Book -> String 
title (ABook _ _ t _ _) = t

date :: Book -> …
Run Code Online (Sandbox Code Playgroud)

haskell

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

组装中的IDIV操作(了解)

当我进行手术时

IDIV ecx
Run Code Online (Sandbox Code Playgroud)

在汇编中,然后我已阅读到edx:eax中的值除以操作数ecx。我也知道商存储在eax中,余数存储在edx中。

所以edx:eax中的值到底是什么?

有人可以向我解释吗?

编辑:尽管我已经阅读了一些有关此内容的页面,但我也不理解总是在IDIV操作之前进行“ cdq”操作的原因。

x86 assembly

2
推荐指数
2
解决办法
1500
查看次数

更改beanstalkd的最大作业大小

有人如何改变beanstalkd的最大作业大小?我有问题,我得到消息JOB_TOO_BIG添加作业到beanstalkd,它说默认大小是65k.有人知道如何改变吗?

编辑:我的文件夹/etc/init.d中的beanstalkd初始化脚本如下所示(我添加了-z选项来增加作业大小):

#!/bin/sh
#
# Copyright (c) 2007 Javier Fernandez-Sanguino <jfs@debian.org>
#
# This is free software; you may redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2,
# or (at your option) any later version.
#
# This is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty …
Run Code Online (Sandbox Code Playgroud)

beanstalkd

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