首页 > 其他 > 详细

逆向_no-strings-attached

时间:2020-04-23 00:32:02      阅读:81      评论:0      收藏:0      [点我收藏+]

在linux中执行程序,提示段错误。

技术分享图片

 

 

静态分析:

ida打开文件。找到main函数。

技术分享图片

 

 

在调试时,发现在authenticate()会卡住无法执行。

说明程序在authenticate()中存在错误。

进入authenticate()函数内部。发现了个加密函数decrypt()。

技术分享图片

传入了s2和dword_8048A90。

技术分享图片

内部的逻辑是将传入这个函数的第一个数组减去第二个数组的值。

查看s和dword_8048A90处的值。

技术分享图片

shift+e整合下来。编写代码。

技术分享图片技术分享图片
s = [0x143A, 0x1436, 0x1437, 0x143B,
     0x1480, 0x147A, 0x1471, 0x1478,
     0x1463, 0x1466, 0x1473, 0x1467,
     0x1462, 0x1465, 0x1473, 0x1460,
     0x146B, 0x1471, 0x1478, 0x146A,
     0x1473, 0x1470, 0x1464, 0x1478,
     0x146E, 0x1470, 0x1470, 0x1464,
     0x1470, 0x1464, 0x146E, 0x147B,
     0x1476, 0x1478, 0x146A, 0x1473,
     0x147B, 0x1480]
"""
3A 14 00 00 36 14 00 00 37 14 00 00 3B 14 00 00 
80 14 00 00 7A 14 00 00 71 14 00 00 78 14 00 00 
63 14 00 00 66 14 00 00 73 14 00 00 67 14 00 00 
62 14 00 00 65 14 00 00 73 14 00 00 60 14 00 00 
6B 14 00 00 71 14 00 00 78 14 00 00 6A 14 00 00 
73 14 00 00 70 14 00 00 64 14 00 00 78 14 00 00 
6E 14 00 00 70 14 00 00 70 14 00 00 64 14 00 00 
70 14 00 00 64 14 00 00 6E 14 00 00 7B 14 00 00 
76 14 00 00 78 14 00 00 6A 14 00 00 73 14 00 00 
7B 14 00 00 80 14
"""
a = [0x1401, 0x1402, 0x1403, 0x1404, 0x1405]
v6 = len(s)
v7 = len(a)

l = 0
for i in range(v6):
    if l >= v7:
        l = 0
    s[i] -= a[l]
    l += 1

for i in s:
    print(chr(i), end=‘‘)
View Code

动态调试:

技术分享图片

技术分享图片

F7进入authenticate()函数中,F8步过decrypt。双击下方的eax便可以看到flag。

逆向_no-strings-attached

原文:https://www.cnblogs.com/TNTBomb/p/12757834.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!