吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3083|回复: 10
收起左侧

[ReverseMe] 一个让人摸不着头脑的ReverseMe

[复制链接]
灰灰。 发表于 2019-4-3 14:47
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

某企业内部CTF的一道Reverse题,时间已过,请给出flag的正确值.研究了半天有点摸不着头脑,放上来希望抛砖引玉

请注意非CrackMe,不要爆破!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 收起 理由
kk1212 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kk1212 发表于 2019-4-3 15:24
试试看看。。。
kof6946369 发表于 2019-4-3 16:04
℡小疯、 发表于 2019-4-3 17:40
weikun444 发表于 2019-4-3 20:19
感觉按钮形同虑设,实际是KeyDown事件在起作用。按钮只是显示个结果。
 楼主| 灰灰。 发表于 2019-4-3 21:55
weikun444 发表于 2019-4-3 20:19
感觉按钮形同虑设,实际是KeyDown事件在起作用。按钮只是显示个结果。

有按钮?不是控制台程序吗..
梦游枪手 发表于 2019-4-3 22:09
感觉还是一个PWN,只知道flag前面肯定是TkxmjkRe||||bxo]~ ,后面的需要大佬进一步分析了
whklhh 发表于 2019-4-4 18:29
401269处错误指令令程序进入异常处理
设定的SEH是40126A,直接输出RROR!然后结束

buff设在data区,不在栈上,看了一下buff的后面有一堆系统库里引用的变量,懒得挨个研究,直接用pwntools中的cyclic生成pattern暴力跑
发现EIP被设为baau了,也就是pattern中aab`uaab`v的中间部分 算了一下是偏移180的地方
变量dword_42D140
调用者是_CallSETranslator

至于怎么利用,如果是像去年还是前年的看雪那样规定输入必须为可见字符的话就比较麻烦了,因为main函数和check函数附近处于0x401000,00,40,和第四字节都好变,但是0x10附近是没有可见字符的,所以感觉不好控制
如果可以使用不可见字符的话倒是可以随意跳转了,但不知道怎么提交呢 等楼主补充规则吧-。-

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
梦游枪手 + 2 + 1 热心回复!

查看全部评分

whklhh 发表于 2019-4-4 19:25
whklhh 发表于 2019-4-4 18:29
401269处错误指令令程序进入异常处理
设定的SEH是40126A,直接输出RROR!然后结束

又去看了一下,调用代码是
  if ( !dword_42D140
    || !_CallSETranslator(
          (struct EHExceptionRecord *)ExceptionRecord,
          (struct EHRegistrationNode *)TargetFrame,
          a3,
          a4,
          a5,
          a7,
          (struct EHRegistrationNode *)a8) )
根据短路规则,当42D140非空时会调用CallSETranslator这个函数
然后这个玩意儿似乎是跟_set_se_translator函数配套使用的,用来设置一个函数把Win32异常转换为C++异常。那么按照常理来说,42D140这里应该保存的就是翻译函数指针了
检查了一下函数定义,返回值和调用约定和两个参数都对的上,估计没跑了
whklhh 发表于 2019-4-4 21:02
whklhh 发表于 2019-4-4 19:25
又去看了一下,调用代码是
  if ( !dword_42D140
    || !_CallSETranslator(

又又又看了一下(。
上述函数是静态链接的
找了msvcr70.dll来反编译,在微软提供的pdb下可以看到带有各种符号的_CallSETranslator,确认无误了
以及溢出的那一块内存是静态TLS
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 23:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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