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

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

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

一.差异

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

方案一:


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

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

方案二:


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

三.交流学习

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

V:523176585

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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