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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3607|回复: 8
收起左侧

[调试逆向] Gnu Prolog 内存大小设置不当 VirtualProtect函数487错误 启动失败修复

  [复制链接]
老刘 发表于 2020-12-3 11:41

版本

Gnu Prolog 1.4.5
(compiled under x86_64 / Windows 7 with MSVC++)

起因

由于Gnu Prolog Setting中默认的最大内存大小才32kb,实在不够看,所以lz在Setting里面将它调大了一些。
重启软件就闪出命令行窗口,不能打开GUI。

分析

PwSh中执行gprolog.exe,看到以下报错:

PS E:\Applications\GNU-Prolog\bin> .\gprolog

Fatal Error: VirtualProtect failed : 487

应该是lz设置内存大小不当,导致内存页保护的函数Error了。
试着重装让其恢复默认,但是遗憾的是卸载的并不干净,程序的配置依然没有删除,重新安装后依然默认读取以前的配置,程序还是进不去……
卸载时lz注意到程序目录里面的文件是删除的很干净了,而重装回来的程序依然能读取到配置,故猜想程序的配置是保存在注册表中的。
所以思路就是删掉配置,让gprolog恢复默认,嗯,就酱。

逆向

扔进ida64,看导入表:导入表-若干注册表函数
发现确实有注册表读写操作,查看函数的Xref交叉引用,定位到sub_48FDF0。
注册表读取
可以看出是进入HK\Software\GnuProlog中读取键值,但是这个HK具体是啥我不知道(对应图中hKey参数,是一个常量),索性百度一下RegOpenKeyEx。
RegOpenKeyEx函数原型、参数
ok,这回知道常量名字是啥了,拿出masm32的window.inc打开,搜索常量名字。
常量对应的值
这回终于知道读取的是哪个主键了,HKCU。

解决

注册表找到HKCU\Software\GnuProlog,发现果然储存着配置,直接整个注册表项干掉。
重新打开gprolog.exe,它终于正!常!启!动!了!泪目!

反思

完成后lz突然想到,这玩意是Gnu的软件啊!也就是说他是开源的,那我逆向岂不是逆了个寂寞……
所以lz试了一下仅凭源代码能不能找到配置在注册表的位置。
翻了一下官网,源代码在SourceForge托管,上去逛了一圈,没找到仓库内搜索。
索性跑去github上建了个空仓库,从SourceForge Import了一份源代码。
import成功
ok现在借用一下github的仓库内搜索功能,直接搜Register(翻译过来是注册表项),果然找到了:
github搜索
看来是绕了个大圈子,有源码我不看,偏偏要逆向,闹笑话了,哈哈。

免费评分

参与人数 3吾爱币 +8 热心值 +3 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fengbolee + 1 + 1 用心讨论,共获提升!
prxor + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

oven_wang 发表于 2020-12-3 14:38
学习了,很详细
liurunling 发表于 2020-12-3 18:42
楼主你可知道看完水帖*9999999后看到干货后的心情
 楼主| 老刘 发表于 2020-12-3 18:49
liurunling 发表于 2020-12-3 18:42
楼主你可知道看完水帖*9999999后看到干货后的心情

我这帖子也够水的了,干货不存在
发出来只是发现网上没有gnu prolog无法启动相关内容的文章(反正我当初没找到,要不也用不着我逆了,哈哈),就写一个出来,其它人看了可以直接删键值不用绕弯子。
爱飞的猫 发表于 2020-12-4 04:42
这是内存调到多大才会启动不了
supershunge 发表于 2020-12-4 08:56
学习了 ,
hxd97244 发表于 2020-12-4 12:30
又学到了一招,github的仓库内搜索功能。
 楼主| 老刘 发表于 2020-12-6 12:24
jixun66 发表于 2020-12-4 04:42
这是内存调到多大才会启动不了

也不大,调到默认的两倍就启动不了了,咱也不知道为啥,可能是作者代码写的有问题吧,哈哈
youku2020 发表于 2021-2-22 12:51
感谢大家,谢谢分享,无私奉献,摩拜摩拜
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-3-29 21:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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