JS逆向|JavaScript中的无符号右移操作如何改写成Python代码?

举报
悦来客栈的老板 发表于 2022/08/05 00:22:29 2022/08/05
1.3k+ 0 0
【摘要】 有时候,我们为了方便并发,会将JavaScript代码改写成Python代码,但是不同的语言会有差异,一些符号并不能拿过来直接用,比如常见的左移运算。 一.差异 我们在知道,在JavaScript中,有这样一个运算符 ">>>",代表无符号右移,我相信大多数人在JS逆向中都遇到过。然而,在Python中,没有这样的...

有时候,我们为了方便并发,会将JavaScript代码改写成Python代码,但是不同的语言会有差异,一些符号并不能拿过来直接用,比如常见的左移运算。

一.差异

我们在知道,在JavaScript中,有这样一个运算符 ">>>",代表无符号右移,我相信大多数人在JS逆向中都遇到过。然而,在Python中,没有这样的运算符,也没有对应的方法可供调用,因此,需要自己编写函数实现其功能。

方案一:


      def unsinged_right_shift(x, y):
          x = x & 0xffffffff
          signed = False
         if x < 0:
              signed = True
          x = x.to_bytes(4, byteorder='big', signed=signed)  # 有符号
          x = int.from_bytes(x, byteorder='big', signed=False)  # 无符号
         return x >> (y & 0xf)
  
 

以上代码由noob和丘献平🤔提供,在此感谢。

方案二:


      import ctypes
      def unsinged_right_shift(x, y):
          x,y = ctypes.c_uint32(x).value,y % 32
         return ctypes.c_uint32(x >> y).value
  
 

三.交流学习

加我好友,拉你进群,现在快开6群了,学习氛围浓,注意,严禁讨论破解相关的话题。

V:523176585

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/126141488

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。