小编AKJ*_*J88的帖子

Java流转换要设置的地图列表

我有一个地图列表形式的数据结构: List< Map<String, List<String>> >

我想Set使用java 8功能在一个单元中收集列表的所有元素(映射的值).

例:

Input:  [ {"a" : ["b", "c", "d"], "b" : ["a", "b"]}, {"c" : ["a", "f"]} ]
Output: ["a", "b", "c", "d", "f"]
Run Code Online (Sandbox Code Playgroud)

谢谢.

java collections lambda java-8 java-stream

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

在自修改汇编代码中调用mprotect后仍然出现分段错误

我正在尝试学习一些堆栈溢出技术并在其中使用shellcode.我能够成功使用一些基本的shellcode.然后我开始exeve在程序集中使用并调用ls -l它,再次成功.现在我尝试使用相对寻址并在我的代码中删除空值.因此我尝试了一个简单的自修改代码.我知道代码段是只读的,所以我试着调用mprotect它使它可写.我的代码仍然不起作用,我得到分段错误movb %al, 0x7(%esi).如果有人可以让我对我的代码中出错的东西有所了解,我真的很感激.

.text
.globl _start

_start:
  jmp StartPoint

  execvecall:
  popl %esi    # the address of string

  #calling mprotect to make the memory writable
  movl $0x7d, %eax
  movl %esi, %ebx
  movl $0x20, %ecx
  movl $7, %edx
  int $0x80

  xorl %eax, %eax

  movb %al, 0x7(%esi)  #putting zero for at the end of /bin/ls
  movb %al, 0xa(%esi)  #putting another zero at the end of -l

  #this part forms an array ending with for …
Run Code Online (Sandbox Code Playgroud)

linux x86 assembly system-calls self-modifying

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