小编voi*_*oid的帖子

如果我在循环中使用ECX,那么循环的正确方法是什么(汇编)

我目前正在学习汇编语言,我有一个输出"Hello World!"的程序.:

        section .text                                                                                    
        global _start                                                                                    
_start:                                                                                                                                                                                               
        mov ebx, 1                                                                                       
        mov ecx, string                                                                                  
        mov edx, string_len                                                                              
        mov eax, 4                                                                                      
        int 0x80                                                                                                                                                                          
        mov eax, 1                                                                                       
        int 0x80                                                                                         

        section .data                                                                                    
        string db "Hello World!", 10, 0                                                                  
        string_len equ $ - string
Run Code Online (Sandbox Code Playgroud)

我理解这段代码的工作原理.但是,现在,我希望显示10倍的线.我在互联网上看到的代码循环如下:

 mov ecx, 5
 start_loop:
 ; the code here would be executed 5 times
 loop start_loop
Run Code Online (Sandbox Code Playgroud)

问题:我试图在我的代码上实现循环,但它输出一个无限循环.我还注意到循环需要ECX和写入功能也需要ECX.显示10次"Hello World!"的正确方法是什么??

这是我当前的代码(产生无限循环):

        section .text                                                                                    
        global _start                                                                                    
_start:                                                                                                  
        mov ecx, 10                                                                                      
myloop:                                                                                                  
        mov ebx, 1 ;file descriptor                                                                                      
        mov ecx, string                                                                                 
        mov …
Run Code Online (Sandbox Code Playgroud)

x86 assembly loops

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

在这种特定情况下使用unique_ptr的char数组

我目前正在使用C++中的套接字处理一个小服务器.

我有一个发送字符串的函数:

void SocketServer::SendData(int id_client, const std::string &str)
{
  int size = str.size();
  send(id_client, &size, 4, 0);
  send(id_client, str.c_str(), str.size(), 0);
}
Run Code Online (Sandbox Code Playgroud)

首先,我发送4个字节,对应于我想要发送的字符串的长度.

然后,我有一个接收字符串的函数:

int SocketServer::ReceiveData(int id_client)
{
  char  buffer[1024]; // <<< this line, bad idea, I want to use unique_ptr
  int size = 0;
  int ret = 0;

  ret = recv(id_client, &size, 4, 0);  //<<< Now I know the length of the string I will get

  if (ret >= 0)
  {
    ret = recv(id_client, buffer, size, 0);
    if (ret …
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c++11

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

如何防止位于 Javascript HREF 属性中的 XSS?

<a href='javascript:do_something("<?php echo $untrusted_input; ?>");'>Test</a>
<script>
    function do_something(str) {
        //...
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我想知道如何对变量进行编码$untrusted_input(例如在 PHP 中)以避免执行 XSS(javascript 注入)?

在这种情况下,该htmlspecialchars函数是不安全的,因为它替换了注入"&quot;,但 HTML 解析器仍会将 解释&quot;为有效的"

如果您尝试此代码,您将看到显示警报:

<a href='javascript:do_something("&quot;+alert(&quot;injected&quot;)+&quot;");'>Test 4</a>
<script>
    function do_something(str) {
        //...
    }
</script>
Run Code Online (Sandbox Code Playgroud)

而且这个addslashes函数也是不安全的,因为它在前面'加了斜杠,"但不编码&quot;,所以可以使用上面的例子进行转义。

请注意,我是作为一名网络安全研究人员问这个问题的,我想知道我们可以轻松解决这个问题的方法吗?作为开发人员,我从不这样做。

谢谢,

javascript php xss

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

标签 统计

assembly ×1

c++ ×1

c++11 ×1

javascript ×1

loops ×1

php ×1

unique-ptr ×1

x86 ×1

xss ×1