首页
社区
课程
招聘
[旧帖] MFC程序分析求助 0.00雪花
发表于: 2013-1-23 15:45 10771

[旧帖] MFC程序分析求助 0.00雪花

2013-1-23 15:45
10771
最近跟的一个程序,为了更改它的一些代码而达到自己想要的目的,但是呢只要更改了数据,源程序就能自动检测出来,并且弹出警告对话框而且要求重新登录。
跟踪了很久,可以确定是用的网络验证。

应该是发送出去软件的版本号,服务端在数据库里检索对应的通过一些算法的校验值,然后程序自身对自身进行该算法生成校验值,两个值进行匹配,如果不匹配则跳出重新警告,并重新登录。

那么突破口有两个:
第一,就是找到数据库中对应的数值进行更改,或者找出算法。(但是数据库密码找不到。)
第二,就是找到算法,在数据发送的时候进行逆向。(技术问题,没能实现。)
第三,如果不匹配,程序会跳转执行data段中的一段代码(此代码是登录界面,输入账户密码点击登录后
又回到系统领空)通过这一点找出关键跳转,逆向分析。(这个稍微有点实现的可能。)

问题是,它是MFC程序,当程序运行到data段的那段代码时已经断下,如何返回到跳转前的代码处呢?

alt+F9是会直接跑飞。
改第一个行代码为retn。也会返回到系统领空。

由于自己对MFC的消息机制了解的还不够透彻,所以来请教各位大牛。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (25)
雪    币: 6726
活跃值: (3006)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
加了壳了吧。查查有壳没有。
2013-1-23 17:37
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
3
额。。。确定没有

主要是问问大家,如何找到跳转来的地址,直接返回是返回到系统领空。
2013-1-23 17:56
0
雪    币: 204
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
额,还是在用od
2013-1-23 17:59
0
雪    币: 3343
活跃值: (1243)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
MFC与API编程消息机制并无区别。MFC仅仅起到封装api的作用,只是编程简便些。api该调用哪些,还是哪些。只要还在windows nt内核之上,就没有区别。可能中间转换成汇编时,可能复杂了些。如果不同,跟我猜测,似乎跟易语言样,代码稍微处理了下。
2013-1-23 21:20
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
6
是在用着OD呢。IDA不怎么好分析data段。
2013-1-23 22:34
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
7
恩,最主要的就是消息机制的问题了。

未必对sendmessage下断?那估计行不通吧?我得找到关键的判断处。。。
2013-1-23 22:36
0
雪    币: 3343
活跃值: (1243)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
动态分析往回跑有点不现实啊,改代码突然跳回去,容易出现未知错误额。如果非得纠结跳回去,就复杂下用ida吧,od回跳有点不好搞。动态调试,执行完这段,你又强制他执行别的代码,不乱了吗?
2013-1-24 16:26
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
9
我并要他跑起来,如果是一般C程序之类的,直接retn是可以会到 call它的那个地方的。

我也想用IDA啊,可还没完全掌握那把利剑。

而且,IDA对于data段是没有流程图之类的分析,只是给你它里面的数据。感觉,起不到蛮大作用啊。
2013-1-24 20:01
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
有一个方法就是,你写一个小小的弹窗口验证的MFC程序,跟踪一次,找到关键的那个跳转代码,改过来。成功了再试实际的破解。
2013-1-25 10:36
0
雪    币: 3343
活跃值: (1243)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
说实话,关于ida分析,我也蛮伤脑筋的。磨刀不误砍柴工,我记得有本ida pro 的书,你看看吧。多掌握一个工具很有利,何况我们还学外语。书名我忘了,找到发给你电子版的,看完试试。实在不行,如果软件没有涉及到您的隐私,可以发上来让大家看看。
2013-1-25 11:02
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
12
这方法貌似可行,回头试试。。。
2013-1-25 13:07
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
13
恩恩,首先还是谢谢你的回复哦。

那个软件就是网吧一套管理系统。一是传不上来,二是需要正规的注册才能装上去。

也希望能得到你的电子版的书哦。点右上角的QQ符号就可以找到QQ了。谢谢啦。
2013-1-25 13:10
0
雪    币: 3343
活跃值: (1243)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
周四下午发给你,近期在外面,论坛都是手机上的。
2013-1-25 19:38
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
搜吧,满世界的
2013-1-25 20:03
0
雪    币: 141
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
16
An incorrect tips and then the completely wrong bank for the purpose of cash loans can lead to problems happening. When you want capital swift, without a credit ranking take a look at and also concerns, make it easy for individuals to help you out. We now have a you should take pleasure in and that of which very simple to gain access to action. Most of us also present you with each of the aid you would like in the process. The for you will most likely be taking up your resources you will need free of delays or possibly excessive expenses. You will also see that you can easliy to help you get your money with little time frame.

Though you conduct all of our best possible to use every one of the the specifics of a lot of our cash advances on the site, we notice you might have thoughts. Experience liberal to e mail us by way of email or perhaps by means of mobile phone to get these products solved. You are assisted by means of most certainly coached office staff which may bring you ends up with very small moment. Furthermore you will have the ability to show the preferences at their side in order to explain to you distinct alternate options that will pertain for the use operation really should you decide to move forward with receiving finances out of usa.

Like a purchaser regarding payday cash advances, an individual help placed all the firmness pertaining to after that come about in the marketplace. That's the reason try to be telling about his  you what we should for instance and additionally what you want to observe increased. It's also wise to possibly be getting all of the safety measures to make sure you ensure you get the very best prices to the funds one acquire. By doing this, people keep lots of money throughout the course of repaying which will home loan. We all allow it to a piece of cake so that you can rescue as some of our rates are fewer than what you should spend to one of our players.

If you need a terrific conclusion together with fast payday loans, you ought to work together with united states. We labor check out people that will be underground in any routine of mortgages with the types of conditions belonging to the banking institutions to be likewise unpleasant on their behalf along with too costly. In case you probable have of which money as soon as possible, that doesn’t really mean you need to think that the most important offer look at is usually the ideal solution. Don't hurry to see exactly what many of us are concerning. All things considered, it may produce a factor suitable for you and additionally for your having a budget. We certainly have a powerful next connected with prospects mainly because therapies perform functions!

payday loans mobile
quick loans uk bad credit
personal loans killeen tx
bad credit loans quick
money lender
bad credit loans online application
payday loans 0 interest
instant cash loans zimbabwe
extremely poor credit loans
cash loans kuwait
cash loans online fast
unsecured loans to consolidate debt
cash loans quick and easy
loans for unemployed people on benefits same day
short term loans 24/7
bad credit loans 3000
best va home loans
student loans online account
personal loan 25000 unsecured
personal loans zero interest
2013-1-25 21:11
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
17
亲,你是来打广告的?
2013-1-26 10:33
0
雪    币: 3343
活跃值: (1243)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18
最近我又看了下有关MFC的书籍,他是用的Message Map 将消息映射了 调试 起来 跟Win32程序一个样。在win32编程收到的什么消息,在MFC中一样能够收到的。你看看深入理解MFC前半部分,就明白了。关于IDA的,那本书叫做IDA 权威指南 百度一搜 很多的 不清晰 在联系我吧~
你能想法把那套程序搞上来不,没注册的也没事,直接破解掉注册那一关。你说的 ret 写在什么位置 在哪进去的这个子程序 都不知道 所以 根本没法详细的帮到你。
2013-1-30 11:03
0
雪    币: 89
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
回复没看完,不过关于你在开头的return  可能就返回错了,因为还有push呢。。 你可以直接找到retn 然后F2断点,再F9跑起来
2013-1-30 17:03
0
雪    币: 329
活跃值: (230)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
20
谢谢你的回答。
理论上不会出错,因为在call执行的过程中,就已经把你call下面那条语句的地址push到堆栈中了。
所以,在你进入call后直接改第一条语句为retn。是可以顺利返回到call后面那条语句的,不信你试试。~~~
2013-1-30 22:53
0
雪    币: 373
活跃值: (496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
21
给我试试吧.我IDA和MFC可是特别熟悉哦.你可以看看我的相关的帖子看
2013-1-31 10:19
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
回朔堆栈  找到第一个返回到用户领空的地址 回撤就到了。 F2 F9
2013-2-22 02:56
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
>>主要是问问大家,如何找到跳转来的地址,直接返回是返回到系统领空。

如果用OD的话,可以通过堆栈窗口看到返回地址的啊,莫非返回地址就是系统领空,那就需要继续回溯对堆栈了
2013-2-22 13:39
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
把自校验破掉啊
2013-3-8 11:46
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
25
+1,就算是JMP,堆栈也会保留之前的某一层栈帧,不保证是最后一个,但是起码是最后10个以内吧,只要找到一个然后就可以逐步缩小范围。
2013-3-10 22:33
0
游客
登录 | 注册 方可回帖
返回
//