鱼C论坛

 找回密码
 立即注册
楼主: zhangjinxuan

[技术交流] 我的Pass?

[复制链接]
发表于 2022-12-6 21:22:04 | 显示全部楼层

我学艺不精,看不懂(其实也懒得看,笑)您程序中很多的操作,但很容易找到比对输入是否正确的指令,然后找到不来自输入的那个操作数,略微修改您的可执行文件(应该一共改动了大概9个字节)就可以让程序把这个操作数打印出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 21:22:24 | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:14
2680(有点好奇所以 srand/rand 是做什么的?)

srand 是一个生成随机数的种子,rand 就是生成随机数,鱼C上有教程,您可以去看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 21:23:22 | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:22
我学艺不精,看不懂(其实也懒得看,笑)您程序中很多的操作,但很容易找到比对输入是否正确的指令,然后 ...

可执行文件还能修改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 21:24:48 | 显示全部楼层
zhangjinxuan 发表于 2022-12-6 21:22
srand 是一个生成随机数的种子,rand 就是生成随机数,鱼C上有教程,您可以去看看

不不不,这个我当然明白,只是好奇您的程序里用到这个是拿来做什么的?刚看到还以为您真的用随机数作为了密码。当然不方便或者留作伏笔的话您不必满足我的好奇心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 21:26:37 | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:24
不不不,这个我当然明白,只是好奇您的程序里用到这个是拿来做什么的?刚看到还以为您真的用随机数作为了 ...

我没有用srand啊?

我只是想知道你是怎么知道密码的,而且提示都没有看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 21:27:23 | 显示全部楼层
zhangjinxuan 发表于 2022-12-6 21:23
可执行文件还能修改?

毕竟可执行文件大体上是整个程序所需要的数据和指令打包得到的,如果能适当调整里面的指令和/或数据就可能令其按照想要的方式工作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 21:41:23 | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:27
毕竟可执行文件大体上是整个程序所需要的数据和指令打包得到的,如果能适当调整里面的指令和/或数据就可 ...

啊这,看样子什么什么破解 pass 的帖子已经没意义了,像对您来说,我还是太弱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 21:41:47 | 显示全部楼层
zhangjinxuan 发表于 2022-12-6 21:26
我没有用srand啊?

我只是想知道你是怎么知道密码的,而且提示都没有看


因为反汇编看到了调用 srand 和 rand 的 call,可能是我理解或解读错了?

  1.   4a63c4:       c7 04 24 44 10 4b 00    movl   $0x4b1044,(%esp)
  2.   4a63cb:       e8 40 b0 f5 ff          call   401410 <_printf>
  3.   4a63d0:       8d 44 24 18             lea    0x18(%esp),%eax
  4.   4a63d4:       c7 04 24 51 10 4b 00    movl   $0x4b1051,(%esp)
  5.   4a63db:       89 44 24 04             mov    %eax,0x4(%esp)
  6.   4a63df:       e8 64 62 f7 ff          call   41c648 <_scanf>
  7.   4a63e4:       a1 7c 80 4f 00          mov    0x4f807c,%eax
  8.   4a63e9:       39 44 24 18             cmp    %eax,0x18(%esp)
  9.   4a63ed:       0f 84 af 00 00 00       je     4a64a2 <_main+0x102>
  10.   4a63f3:       c7 04 24 69 10 4b 00    movl   $0x4b1069,(%esp)
  11.   4a63fa:       e8 11 b0 f5 ff          call   401410 <_printf>
复制代码

这是反汇编得到的部分代码,其中能看到 0x4a63cb 处一个 printf 和 0x4a63df 处一个 scanf ,分别是输出提示和读入输入(从提供的参数字符串也能确定)
0x4a63e9 处的 cmp 就是比对密码是否正确的指令,一方来自于 %eax ,另一方是 [%esp+0x18] ,这个地址作为参数传给了 scanf ,因此这里存储的输入,那么目标就是导出 %eax 的值。
下方 0x4a63ed 处的 je 就是当密码正确的时候跳转到对应的输出处,而没有跳转走意味着密码错误, 0x4a63f3 和 0x4a63fa 处的指令恰好就是装载密码错误提示并 printf 输出。利用这个 printf 调用,只要把第一个参数修改成 "%d" 而第二个参数处设为 %eax 就可以输出密码了
找到虚拟地址 0x4b1069 对应处的字符串(密码错误),修改前三个字节为 0x25 0x64 0x00 ,这个字符串就变成了 "%d";把 4a63ed 处的 je 指令修改为 89 44 24 04 即 mov %eax,0x4(%esp), 就将 %eax 的值放到了第二个参数处,多余的两个字节用 90 即空指令填充,避免破坏结构。此时再运行程序,随便输入一些内容,程序就告诉我们密码是多少了

评分

参与人数 2荣誉 +5 鱼币 +7 贡献 +3 收起 理由
asky533 + 5 + 5 + 3 都是大神……
zhangjinxuan + 2 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 22:07:20 From FishC Mobile | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:41
因为反汇编看到了调用 srand 和 rand 的 call,可能是我理解或解读错了?



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 22:11:13 From FishC Mobile | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:14
2680(有点好奇所以 srand/rand 是做什么的?)

好的,明天再奖励,谁叫额度不够啊,不过你可以通过出售附件的操作来得到育碧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2022-12-6 22:32:09 | 显示全部楼层
zhangjinxuan 发表于 2022-12-6 22:11
好的,明天再奖励,谁叫额度不够啊,不过你可以通过出售附件的操作来得到育碧

其实纯粹是因为有趣才来玩的,奖励什么的并不重要
顺便再来“推销”一下我的“题目”,看看类似的方法适不适用
https://fishc.com.cn/forum.php?mod=viewthread&tid=221577

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
zhangjinxuan + 3 + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-7 08:05:14 | 显示全部楼层
本帖最后由 tommyyu 于 2022-12-7 08:07 编辑

2680
屏幕截图 2022-12-07 080719.jpg

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
asky533 + 5 + 5 + 3 怎么都是大神T_T

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-7 08:12:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 08:13:00 | 显示全部楼层

我的提示就是一个摆设,对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-7 08:17:29 | 显示全部楼层
zhangjinxuan 发表于 2022-12-7 08:13
我的提示就是一个摆设,对吧

看不懂提示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 08:22:49 | 显示全部楼层


11Q = 11queen = 11皇后 = 11皇后的解法总数 = 2680
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-7 08:24:59 | 显示全部楼层
zhangjinxuan 发表于 2022-12-7 08:22
11Q = 11queen = 11皇后 = 11皇后的解法总数 = 2680

谁想得到啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-7 08:25:05 | 显示全部楼层

哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-8 07:19:03 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-8 07:20:18 | 显示全部楼层
dolly_yos2 发表于 2022-12-6 21:41
因为反汇编看到了调用 srand 和 rand 的 call,可能是我理解或解读错了?

大佬分享一下你的反编译软件呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 19:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表