首页 > 其他分享 >DASCTF 2022.10 部分re wp

DASCTF 2022.10 部分re wp

时间:2022-11-16 14:56:54浏览次数:47  
标签:__ enc bytes inp number wp print DASCTF 2022.10

就做了俩

re

贪玩ctf

winmain!

随便测试输入知道有弹窗

x64dbg直接为messbox下断

查找调用找到

image-20221024112455428

image-20221024112508477

这为checkpassword和account的函数

image-20221024112529879

两个比较 上面为直接异或的加密过程

a=[0x04, 0x1F, 0x1F, 0x1E, 0x43, 0x4B, 0x43, 0x45, 0x44, 0x00, 0x16, 0x10, 0x55, 0x17, 0x12, 0x73]
for x in range(15):
    a[x]^=a[15]
for x in a:
    print(chr(x),end="")

解出

wllm08067sec&das

密码在image-20221024112610683

该函数加密 且调用了账号

有box盒 盲猜aes

image-20221024112641935

image-20221024112703258

即可

pycode

字节码逆向 读就行

使用python -m dis 1.py

来获得字节码

大致复原的逻辑


from Crypto.Util import number


def extract_number(x):
    x = x ^ (x >> 11)
    x = x ^ ((x << 7) & 2022072721)
    x = x ^ ((x << 15) & 2323163360)
    x = x ^ (x >> 18)
    return x


def transform(m):
    new_message = b''
    l = len(m)
    print(m)
    for i in range(l):
        enc = m[i * 4:i * 4 + 4]
        enc = number.bytes_to_long(enc)
        enc = extract_number(enc)
        enc = number.long_to_bytes(enc, 4)
        new_message += enc
        print(new_message)
    return number.bytes_to_long(new_message)


if __name__ == '__main__':

    num = input('input your number:')
    tmp = bytes.fromhex(num)
    res = hex(transform(tmp))
    print(res)
    enc = '8b2e4e85 8126bc84 78d6a6a4 85215f03'
    if enc == res:
        print(num)
    else:
        print("wrong")
    #flag=8b2e4e858126bc8478d6a6a485215f03

使用z3一把梭 四段分别约束即可

def extract_number(x):
    x = x ^ (x >> 11)
    x = x ^ ((x << 7) & 2022072721)
    x = x ^ ((x << 15) & 2323163360)
    x = x ^ (x >> 18)
    return x
from Crypto.Util import number
from z3 import *
inp = BitVec("inp", 64)
a=extract_number(inp)
print(a)
s=Solver()
s.add(a==0x85215f03)
s.add(inp<=0xffffffff)
s.add(inp>=0)
print(s.check())
r=s.model()
print(r)
print(hex(r[inp].as_long()))

标签:__,enc,bytes,inp,number,wp,print,DASCTF,2022.10
From: https://www.cnblogs.com/FW-ltlly/p/16895893.html

相关文章

  • 界面控件DevExpress WPF拥有丰富SVG图像库,更好支持高DPI显示器
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专......
  • java调用WPS或pdfcreator的com接口实现doc转pdf
    使用了jacob.jar来调用activex控件,本机需安装WPS或pdfcreator。还需要jacob.jar以及jacob.dll请看附件jacob.dll需要放置在系统system32下,如果系统是c盘:C://windows/sys......
  • WPF学习 - 用鼠标移动、缩放、旋转图片(1)
    原文网址:https://www.cnblogs.com/raynado/p/16704856.html1.需求其实我的需求很简单。就是想做一个图片查看器,可以通过鼠标来平移、缩放、旋转图片。2.解决思路:......
  • WPF多页面切换的实现方法
    摘要C/S端软件,左侧导航菜单+右侧页面切换的布局很常见。这篇文章介绍下使用ContentControl控件和TabControl控件如何实现基础的页面切换。一、使用ContentControl实现页......
  • WPF 后台线程操作界面元素不卡UI界面线程 Dispatcher
    经常要考虑的,后台的耗时操作不要卡死主界面的问题。<StackPanelVerticalAlignment="Center"><Labelx:Name="lblHello">欢迎你光临WPF的世界!</Label><Button......
  • WPF 动态加载用户控件
    //这里可以动态加载其他dll文件中的组件Assemblyassem=Assembly.LoadFile($"{Directory.GetCurrentDirectory()}\\{data.DllName}");varonePage=assem.CreateInst......
  • 在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickab
    <?php/*在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wp-in......
  • WPF中的XAML学习方式
    XMLXAML完全符合XML的标准XML是很容易学习的,要先学会元素、属性、命名空间等语法,然后再看XAML语句的时候就不感到陌生了。XAML语法和C#的关联元素一般都对应......
  • WPF学习(一)
    WPF布局基础:StackPanel:水平或垂直排列元素,Orientation属性分别是:Horizontal(横向)/Verical(竖向)WrapPanel:效果同上,但是会自动进行换列DockPanel:根据容器的边界,元素进行Doc......
  • WPF通过wine适配统信uos系统
    环境准备环境准备直接安装wine7wine安装参考#开启32bit架构支持sudodpkg--add-architecturei386#下载添加仓库密钥sudowget-nchttps://dl.winehq.org/wi......