BUU 简单注册器 and Youngter-drive

简单注册器

拖进JADX,逻辑清晰
在这里插入图片描述
直接写脚本

x = 'dd2940c04462b4dd7c450528835cca15'
x = list(x)
x[2] = chr((ord(x[2]) + ord(x[3])) - 50)
x[4] = chr((ord(x[2]) + ord(x[5])) - 48)
x[30] = chr((ord(x[31]) + ord(x[9])) - 48)
x[14] = chr((ord(x[27]) + ord(x[28])) - 97)
x = x[::-1]
x = ''.join(x)
print(x)
//'59acc538825054c7de4b26440c0999dd'

Youngter-drive

首先去壳,然后再拖到IDA里面查看函数。
发现CreateMutexW建立了一个线程锁。看中间建立了两个线程,一个StartAddress函数一个sub_41119F
在这里插入图片描述
观察这两个函数发现,这两个函数都是先WaitForSingleObjectReleaseMutex。这两个函数也就不能同时运行,应该会是一前一后的关系。
在这里插入图片描述
StartAddress函数里面是对数据进行加密,sub_41119F只是单纯的移到下一位,也就是数据是隔一位加密一次。
在这里插入图片描述
先写一段的代码,这个是不加密的

a = "TOiZiZtOrYaToUwPnToBsOaOapsyS"
flag = [0] * len(a)
for i in range(len(a)):
    if i %2 == 0:
        flag[i] = a[i]

再把加密的写出来

b = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"
b = list(b)
for i in range(len(a)):
	if (i % 2 != 0):
		for j in range(len(b)):
        		if a[i] == b[j]:
            		if (97 < ord(b[j]) < 122):
                		flag[i] = chr(j+38)
           	 		else:
                		flag[i] = chr(j+96)
                		
flag = ''.join(flag)
//ThisisthreadofwindowshahaIsESE

结果交不了一看说还要再flag后面加上一个E。。
顺便看看这个程序的反调试的方法。用了明文对比和读取PEB进程环境块的方法。过了之后直接下断点就能跑出来来了。
摸鱼写博客,写博客使我快乐

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值