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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2724|回复: 9
收起左侧

[会员申请] 申请会员ID:逗逗苍穹【申请通过】

[复制链接]
吾爱游客  发表于 2022-1-24 20:32
申 请 I D:逗逗苍穹
个人邮箱:2376714571@qq.com
一位喜欢,游戏破解,游戏修改的苦逼大学生请求加入吾爱破解大论坛。
希望审核大大能给过,我真的想在论坛学习来着,现在我评论都发不了。对大佬们发的文章有啥疑惑也说不了。拜托拜托!!)

最近有在吾爱破解的论坛上看见这样一个帖子。上面有个exe文件。一看到这,一下子就激起了我的兴趣。就想这破解了来试试。也来练练手。没破解前:
在不知道密码的情况下,我们随便输入一个信息会显示搞错了啦。这样子我们就进不去了。开始破解1.将程序放入x64dbg

2.然后呢,根据按照流程来的话,应该是搜索字符串。
搜索完了字符串,想在里面找到"搞错了"的字符串。但是没有找到。但是还是找到了密码这样的敏感词汇。那么我就进入密码的那行。打上一行断点。然后运行程序。
很幸运,一次就断住了。3.按住F8一步一步走
走到这个call 422D0A就会弹出弹窗告诉搞错了。那就说明这个call说不定有问题。4.进入call 422D0A查看这种程序一般都会有一个分支,一边是正确,一边是错误。进入这个call后,就按住G来查看流程图
和我的猜想一样,果然有个分支。那就在jne那里打一个断点。再来运行程序。看看他会走那一边。
发现他是走入了这个左边的call5.进入call 00422EA6看看当我进入了这个call 00422EA6的时候。发现他还是有个分支
那按照老样子,打一个断点。
发现他走向的右边。这两个分支的前面一个call都是一样的。都是call 00422CF9这个地址。主要就后面两个call。一个是00422E00,一个是422F12。那继续走一下看看。
当程序走到call 00422E00的时候。弹窗就出来了。那样我们进00422E00这个地址看看。
发现这个函数并没有分支。就一条路。那么这个就可能是弹出搞错了的弹窗。那这样的话,我们是不是只要将前面的call 00422E00换成call 00422CF9就行了呢?我们进入00422CF9看看,是不是也是一条路径,没有分支
发现有好几条分支。其中动不动就让你返回00422E00这个错误的地址。我们要躲过这些陷阱。还得在这个call继续分析。但是我想这个call 00422E00就是弹出一个弹窗的作用。这个正确的密码出来。还是弹出一个弹窗。其中处理显示的字符不同。其他都相同。那么找一下和call 00422E00一样的call。试一下看看行不行6.找call按住ctrl加F寻找
寻找call 00422E84。因为前面的push ebp和mov结果有点多
只有两条结果。到下一条地址去看看去

到了这个地址。让我们把这个call 00422E00换成call 00429631看看行不行。会不会破解成功?
看来是修改成功了。整个过程就如上了。

image.png
image.png
image.png

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

Hmily 发表于 2022-1-25 17:19
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

ps:这个爆破分析太简单了。
吾爱游客  发表于 2022-1-26 13:10
Hmily 发表于 2022-1-25 17:19
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

ps: ...

蛤,这样呀。密码我也破解出来了。是www.baidu.com

我花了蛮久,一个一个去试那个密码。发现其实有也就10个字母也26个字母。发现他不支持输入中文。输入不进去。那我只要试一下每个数字和字符对应的数字就应该可以了。其中我找到加密了密码是
6767673E72717974653E737F7D 67355A333其中的67355A333是每个加密都自己加上的,我也找到了加密的call。

单步走发现。开始加密的时候没有67355A333。这个是后面加上去的。我怀疑是异或加密。其中我单步走的时候,一直有个520在显示。我就怀疑520是秘钥。后来发现不是。但是密码已经出来了。
想深究来着,想问问那个帖子的答主。但是奈何发不了评论。

点评

那就具体还是分析下算法,看看如何实现的,补齐到本文吧,这样是给你的要求。  详情 回复 发表于 2022-1-26 17:33
Hmily 发表于 2022-1-26 17:33
. 发表于 2022-1-26 13:10
蛤,这样呀。密码我也破解出来了。是www.baidu.com

我花了蛮久,一个一个去试那个密码。发现其实有也 ...

那就具体还是分析下算法,看看如何实现的,补齐到本文吧,这样是给你的要求。
吾爱游客  发表于 2022-1-26 22:49
谢谢审核大大哈!开始我怀疑是异或操作,如果是异或操作的话,那就很简单了。异或操作可以进行还原,那既然是异或加密的话。我们首先要先获取秘钥,秘钥的话l我们只要再异或一次就ok了。首先,我们进入x64dbg来获取几次加密后的密码

获取到密码,开始说了67355A333是固定的,这里我们不用管。要注意一点的是,这里的21,22,23等都是16进制的。这一点不能搞错了。我们将16进制换成10进制就可以进行操作了。

这里我写了一个程序来进行还原,可以看到。这里的秘钥是16。那么我用词秘钥来还原一下我们的加密后的密码试试6767673E72717974653E737F7D。

还原后的密码是www.baidu.com。那么我们现在试试。看看是不是

可以看到已经成功了。那么这个密码算是破解完成。是使用16来作为秘钥。对输入的数字进行加密。然后和加密后的正确密码进行对比。来判断是否正确。我们可以采用爆破和破解加密方法来进行破解。
吾爱游客  发表于 2022-1-27 12:03
Hmily 发表于 2022-1-26 17:33
那就具体还是分析下算法,看看如何实现的,补齐到本文吧,这样是给你的要求。

谢谢审核大大哈,再来发一次,不知道为啥没发出来。可能是网络问题吧。这里再发一下哈。我开始怀疑是异或加密。如果是异或加密的话。那就比较简单了。异或加密可以还原。只要再异或一次就行了。
这里我们来试试。首先我们随便输入几个数字和字符。来获取加密后的数字进行对比。

之前说到67355A333是后面加上的,也就是前面的20是‘0’加密后的结果。21是‘1’加密的结果。3E是‘.’加密后的结果。这里我着重选了个.来说明3E。是因为说明这些数字都是16进制的,不是十进制的。那个输入的'0'也不是数字0而是字符0,也就是对应的数字是48。不然容易弄混。后面解秘钥的时候就容易出错。
原字符和加密后的数字都获取了。现在我们只要在异或一次就可以获得秘钥。

可以看到,我们解密出来的秘钥是十进制的16也就是16进制的10。现在我们拿着秘钥去加密一下‘1’看看,得到的结果看看是不是21.

记住要输出的是16进制才可以得到21。看来加密方式是没有啥问题的。那么我们现在就还原一下原密码
开始我们得到加密后的密码是6767673E72717974653E737F7D,我们两个数代表一个字符。但都是16进制的哦。

可以看到,我们得到的密码是www.baidu.com。这里我们试一下。看看是否是正确密码。

可以看到,我们这里成功进入。至此。程序破解完成。

点评

咱不能猜呦,这个应该很容易从原程序的代码中分析出来?  详情 回复 发表于 2022-1-27 12:05
Hmily 发表于 2022-1-27 12:05
. 发表于 2022-1-27 12:03
谢谢审核大大哈,再来发一次,不知道为啥没发出来。可能是网络问题吧。这里再发一下哈。我开始怀疑是异或 ...

咱不能猜呦,这个应该很容易从原程序的代码中分析出来?
吾爱游客  发表于 2022-1-27 17:59
Hmily 发表于 2022-1-27 12:05
咱不能猜呦,这个应该很容易从原程序的代码中分析出来?

审核大大,我又来了。我分析了好久的程序。
我大概的确实算出来了。首先我们进入加密的call。这个之前是已经找到了。我们单步一步一步走。要看旁边的寄存器窗口。看看是否有可疑的数字。看看我们输入进入的数字是如何变化的。

其中要格外注意一些call。当走到call krnln.10060D10时发现了可疑的数据

ECX的值变了,变成了E21。这个21不正是加密后的数字吗。那么我们进入这个call看看。
继续一步一步走,到了这样一条语句。

发现是个异或加密。经过这行语句。我输出的1,变成了E21。但是我不知道。dword ptr ds:[edx]里面是个啥值。没有关系。异或可以还原。我们只要拿E21和31异或一次就可以知道dword ptr ds:[edx]的值。后面发现dword ptr ds:[edx]是E10。得到E21这个和我们的21还是有点差距。我们继续走。看看他是如何去掉E的。但是走到后面,越走越复杂。我那薄弱的汇编基础已经不能容忍我走下去了。
那该咋办?让我们反过来想想。前面有个E10。那肯定是有传E10的语句。我们找找看,说不定有突破。
确实也让我找到了。是push了一个E10。为了确定这个是不是我们要的那个E10。我们改改看。改成8看看。也就是对16进制的8异或,和开始的E10不一样。那加密结果应该不一样。果真,加密结果变了。由开始的21变成了39。而这个39正是‘1’和8的异或。那么现在我们是不是有理由怀疑。这个加密就是异或加密呢?这个可能就是异或了一个E10然后只取最后两位。这里我们实验一下。将push E10改成EE0。我们输出一个特殊字符‘’。这个字符对应的ascii是1,和EE0异或之后就可以获得ee1.然后我们看看。这个加密后的结果是啥。

这里我用的是AA0和来试的。效果一样。发现异或生成的AA1只取了A1。也就是说这个加密方法是用E10加密。然后取后面两位。这个和我们之前的结论有点不一样。我开始还以为就直接是异或了一个16。现在发现不一样。我开始还自己写了一个异或拿到x64dbg里面分析。发现直接我的程序的里面的异或就是xor eax ,10。好了,我的分析就是这样了。还请审核大大手下留情!
Hmily 发表于 2022-1-27 18:07
I D:逗逗苍穹
邮箱:2376714571@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

ps:登陆后把文章整理一下发布到脱壳破解区,感觉分析的还是比较乱,看起来是易语言的程序,异或代码在易语言运行库中?
逗逗苍穹 发表于 2022-1-27 20:27
Hmily 发表于 2022-1-27 18:07
I D:逗逗苍穹
邮箱:2376714571@qq.com

谢谢审核大大,感谢感谢!
来报道了!!
我也不是很清楚耶,但是他的图标不是易语言的图标。
以前对破解很感兴趣,但是一直没有亲自实践。这次实践学到了很多。
以前的对c语言的一些知识点也感觉明白了好多。也知道python和c为啥c更底层。同样的一个功能的判断。c语言放到x64dbg里面的和python放到x64dbg里面的就是不一样。python是封装了好多的东西。
通过这次训练也让我知道了。计算机底层的世界也是如此的多彩。

免费评分

参与人数 4吾爱币 +1 热心值 +4 收起 理由
Tiggger + 1 我很赞同!
kioko + 1 + 1 我很赞同!
ahov + 1 确实是易语言程序
FleTime + 1 敬持之以恒

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

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

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

GMT+8, 2024-4-29 23:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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