HGAME apache
2024-09-01 10:23:26
HGAME apache
Linux下六十四位可执行文件
IDA找主函数
输入长度为35的字符串,经过一次函数处理,之后if条件函数的返回值为1,就能判定输入就是flag
函数sub_1447的参数 | |
---|---|
v3 | v3为新申请的地址空间,并且判断函数的参数为v3,说明经过这个函数,输入的字符串经操作后,存储在v3中, |
35 | 输入字符串的长度 |
v6 | v6 = [1,2,3,4] 有点像一个key |
v7 | 输入的字符串 |
函数sub_1447,
可以根据ida的Findcrypt插件可以看出该函数是一个Tea加密,查看其内容,有>>2、>>3、>>4、>>5的操作,存在常数0x9E3779B9和0x4AB325AA,内循环执行的次数为字符串的长度,外循环的条件为v6 != 0x9E3779B9 * (52 / a2) - 0x4AB325AA
很明显,此加密函数是一个xxtea加密,key = [1,2,3,4]
判断函数sub_1550
提取unk_501C数据
在网上找解密脚本
import struct
_DELTA = 0x9E3779B9
def _long2str(v, w):
n = (len(v) - 1) << 2
if w:
m = v[-1]
if (m < n - 3) or (m > n): return ''
n = m
s = struct.pack('<%iL' % len(v), *v)
return s[0:n] if w else s
def _str2long(s, w):
n = len(s)
m = (4 - (n & 3) & 3) + n
s = s.ljust(m, "\0")
v = list(struct.unpack('<%iL' % (m >> 2), s))
if w: v.append(n)
return v
v = [0xe74eb323, 0xb7a72836, 0x59ca6fe2, 0x967cc5c1, 0xe7802674, 0x3d2d54e6, 0x8a9d0356, 0x99dcc39c, 0x7026d8ed,
0x6a33fdad, 0xf496550a, 0x5c9c6f9e, 0x1be5d04c, 0x6723ae17, 0x5270a5c2, 0xac42130a, 0x84be67b2, 0x705cc779,
0x5c513d98, 0xfb36da2d, 0x22179645, 0x5ce3529d, 0xd189e1fb, 0xe85bd489, 0x73c8d11f, 0x54b5c196, 0xb67cb490,
0x2117e4ca, 0x9de3f994, 0x2f5aa1aa, 0xa7e801fd, 0xc30d6eab, 0x1baddc9c, 0x3453b04a, 0x92a406f9]
k = [1, 2, 3, 4]
n = len(v) - 1
z = v[n]
y = v[0]
q = 6 + 52 // (n + 1)
sum = (q * _DELTA) & 0xffffffff
while (sum != 0):
e = sum >> 2 & 3
for p in range(n, 0, -1):
z = v[p - 1]
v[p] = (v[p] - ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z))) & 0xffffffff
y = v[p]
z = v[n]
v[0] = (v[0] - ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[0 & 3 ^ e] ^ z))) & 0xffffffff
y = v[0]
sum = (sum - _DELTA) & 0xffffffff
print(v)
for i in range(len(v)):
print(chr(v[i]), end='')
得到hgame{l00ks_1ike_y0u_f0Und_th3_t34}
最新文章
- oracle树形查询 start with connect by
- MySQL数据类型-decimal详解
- 使用SQL语句逐条更新每条记录
- Form文件夹开发步骤
- LTE切换与TAU问题
- nyoj CO-PRIME 莫比乌斯反演
- linux时间管理
- play framework (一)
- python_ftplib实现通过FTP下载文件
- MVC下用户登录状态校验的问题以及解决方案--------------Action全局过滤器的使用
- ajax的访问 WebService 的方法
- 你知道HTML标签设计的本意吗? 把HTML标签用到该用的地方去
- 转:MFC网络编程学习
- Html.text(转载)
- 数学思想方法-分布式计算-linux/unix技术基础(5)
- php根据用户输入单词,匹配相似单词
- 自动测试工具(Jmeter,qtp等)
- python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用
- centOS连接没问题,使用SecureCRT就不能连接
- UOJ 67 新年的毒瘤 - Tarjan