吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 5451|回复: 33

[转载技术] 软件的逆向与学习

  [复制链接]
WangYiNing、 发表于 2016-4-22 17:18 | 显示全部楼层 |阅读模式

                                  在发破文前,我得先声明一下。
本人不是高手,是刚学习的新手,一直在吾爱汇编论坛里逛,
     我也知道,初学习者光看文字,没有直观的OD运行图片,很难了解过程和学习兴趣,有好多都中途而废!也深知初学者难入门,老实说,我为这个软件逆向研究,也苦恼和郁闷过!但我并没有退却,而继续研究,学习。所以,这回我发逆向文章,多以图片为多,这样大家一目了然,便于学习思路和方法,达到举一反三!这也是我最终目的。
   本文章只是给大家交流学习,而非用于商业。软件作者有免费10天的使用。如真需要可以支持下作者!(软件名:北京8脚本监控)

                                                                      第一章       敌情未知,探路在先。

按部就班,查壳探之。如下图
QQ截图20160422170853.png

                                       第二章    敌情初现,有的放矢。

     大家已经知道是UPX壳了,脱UPX壳有好多方法的。有工具和手工OD等,咱们就用OD熟悉下手工脱吧。哪手工OD也有几种方法脱,我们就用ESP定律脱吧!废话少说,软件载入OD,如下图: QQ截图20160422170902.png


全部载入OD,如图 QQ截图20160422170943.png
                                                                                  第三章     入敌占区外围,步步隔而歼之。
在上方OD载入软件后,我们就按ESP定律常规,步步为营。按F8单步进入下一行,同时看到右边的寄存ESP变为红色。
QQ截图20160422171015.png


下一步, 我们就接着先左键在寄存上选中ESP,然后,就右键打开选择到“跟随到数据窗口”如图: QQ截图20160422171040.png


不急哟,朋友咱们再继续步入,到“数据窗口”后,右键打开选中硬件断点到Word。如图 QQ截图20160422171112.png


~~我们又向敌占外围区打一个“楔子”,又进了一步,再继续步入~~~~大家不知道,记得不?上一步不是我们已经给程序打了“楔子”(就是断点:Word),现在,我们就用上它了,它可以帮我们找到外围壳出口。具体如下:在上图片断点后,按Ctrl+F2,就是重新载入软件到OD。载入后,就按F9,运行OD,此时,OD会载入软件运行我们下的断点处。 QQ截图20160422171136.png
到这里,就差不多胜利在望了,不过得要做一件事,到这里后,不要忘记,一定删了我们硬件断点,以免影响后面调试和跟踪! QQ截图20160422171144.png
QQ截图20160422171151.png
接下来,我们继续鼠标选中图片中的JMP关键跳,按F4,运行到些位置。(当然,你也可以F2下断点,重新OD载入软件,F9,运行也可以到此地) 200632ky3wfwd6j825f3zj.jpg


接下来,咱们就在此处,按F7跟踪进入这个JMP跳的去处。。。。如图
200843feyicutxef8f88uu.jpg

                                                                               第四章    突破外围区,拆出堡垒壳。

如图片,右键选择开始脱壳。
201222opk4xqzzk0yqkmh3.jpg


打开选项后,如图! QQ截图20160422171214.png


   后面,不用多说,保存文件~~~你可以自己查看下,原来文件是630K大小,脱壳后为2.16M。变大了好多哟 说明UPX压缩挺高的。程序至此,尽尽只是外围堡垒,内核东西,咱们还没有进去探明~~~
                                                                             第五章    入核心路,现荆棘道。
我们先打开脱壳软件,看下是什么情况?如图 201945w6h395b6h3twz8b3.jpg
     这个说明什么呢?只有一个解释,软件有自效验的哟,程序自效验方式好多种的。咱们也不要过多去遐想,我个人感觉还是按照一般思路去看下,就是搜索关键字(在Od中),找到关键-返回汇编窗口再去分析关键跳!思路明确后,就这么来~~  1.载入脱壳软件,选择插件-中文搜索-搜索ASII,然后跳到搜索页面!
202245s229enwkklpk389k.jpg

2.搜索页面,搜索关键字!
任选中一行,右键-Find和快捷键Ctrl+F,弹出一个搜索框,输入:程序异常错误
202455n4etcngc7irg5gi4.jpg


搜索到时,就会停到字符串处。这时候,你就双击搜索到的字符串(程序异常错误),然后就会来到OD反汇编窗口处。 202629fwjf03kjgwzngcfy.jpg

3.咱们现在就有目标了,有这个出错提示,那就我们就附近向上分析相关“跳”代码,有什么代码和这个出错相关呢?
203033l1sk9v76vhyedyye.jpg


那怎么办?既然没有跳,我们就把这个JE改为JMP无条件跳转,跳过“程序异常错误”。在看下效果怎么样了?--》右键--汇编 203322qkk2lsllez2gz5uk.jpg
点击汇编--跳到修改页面 203605s5orjj2j92rhslor.jpg
汇编修改后为,如图! 203733ttxu56xp5wpwpsw5.jpg
然后,就右键-保存到所有修改!--》点全部复制--- 203950h4cn92cn2luc2ahn.jpg

204215z8ygcg89918y8855.jpg

保存文件---另存名--- 》 呵~~这个不用我说了吧!

这时我们已经JMP掉一个错误,看下效果是怎么样了?
(重载入)打开修改的软件,晕哟~~~~,又一个出错提示:“程序已经在运行中”。看来作者有好多保护哟,核心路上困难丛丛。不过,大家发现没有,现在已经是另外一个出错提示,第一次出现是不是没有了,说明我们思路还是对的。 204736ds8p8r9g63rrnz4s.jpg
既然是对,我们就重复,第一次搜索字符串过程,只是把关键字符串:换成“程序已经在运行中”,然后来到第二个出错代码处。如图片 204950jqhxnxu59b9yyuuu.jpg
具体方法和第一次出错,修改-汇编-保存,方法一样。不再发图上! 现在文件另保存了,我们就重新打开二次修改软件,看下是什么情况发生了? 205151bssals2h0sgpqgsl.jpg
开心一下!软件能打开了,说明我们思路和方法是对的,但问题并没有到达我们目标,我们目的是:过了10天试用期,一样能行!    大家过细发现没有,这个软件正面,有一行消息:发现新版本,请更新使用,亲没有登陆按钮。这也说明我们还有好多东西,要继续完成!已经到了这步来了,也不能放弃哟。    那下步怎么办呢?是不是作者发布了新版,不更新,就隐藏了登陆按钮呢?现在也不好说,咱们就试下吧,去掉:更新通知消息。那怎么去掉更新消息呢?呵呵~~方法和上面一样,重新载入改后的软件,搜索—关键字—反汇编窗口-分析-相关跳转。

205421hh4998ar8mrmzjd9.jpg
如何修改,按上面方法操作,不上图片了。我们就得到一个修改后的保存新程序,然后,我就试着打开软件,看是什么情况? 205623g1sznz75l7ph8pph.jpg
直接晕了,又一个文件自效验哟,点击确定后,软件关闭!登陆按钮是出来了,但是灰色的。老实说,我们还没进入软件中,我快投降了~~还不知道,前面还有多少暗桩哟 不管那么多了,我们继续向前步入,方法一样—重新OD载入修改的软件-搜索中文-到反汇编窗口-分析相关跳转!(--修改-汇编-保存等操作和上面一样方法)看下有什么情况? 210027pztatdr66ca2tzy9.jpg
按理现在是可以了的,出错差不多都处理了。。。。我们试目拟待。打开保存修、改后软件~~~ 210208zuuouebsgukvkubo.jpg
好开心哟 终于看到了正常登陆页面,试下能进去不?点登陆—成了—进去了-!还能剩余4273分钟,就是1440分=24小时=1天) 210338ubljwaje2ye0nvmj.jpg
现在 不是我们要的目的,软件到期后,一样用不了的。咱们的研究工作,还得继续哟~~~~
                                         第六章  明风平浪尽,暗礁石错布。

开心没有多久,软件时间到了,出现了这样的提示!
210634pk8kk8do8n0c4kqc.jpg


软件登陆页面有:使用时间到,请联系qq ,登陆按钮为灰色!怎么办?老办法试下,搜索中文—字符串-双击到反汇编窗口—去分析代码。
210846hmodxkduj87ukrku.jpg


咱们先从上面第一处地址--双击—进入反汇编窗口看下。
211033xo50agullo141axr.jpg


咱们先从上面第二处地址--双击—进入反汇编窗口看下。
211159nt1do48z9ztggar4.jpg


咱们先从上面第三处地址—进入反汇编窗口看下。
211336g6klvv4jc6fksvq3.jpg


上面三处处理方法一样,汇编-改JMP-所有修改,另外一个页面右键-保存文件-重全名等。不再述说。可以参考最上面的图片。 好了,修改完后,我再打开保存的软件,看下是什么情况?希望成功不出差错! 这次直接晕了,能打开登陆页面,但登陆按钮—点击后---软件直接关闭!当头一棒哟~~
说明软件还有暗礁哟?现在作为我一个刚入门20多天新手来说,直接晕了。
  没法就去泡某逆向论坛,看下高手是怎么处理的,关程序自效验的。看了好多逆向,自效验方法,不外乎下断点,设置了断点bp ExitProcess---在堆栈里找到—并右键反汇编窗口,去找相关信息!  我也只好,先这么试下,是什么情况?如图 211635joxa0oeqqfr36mrp.jpg

然后,按F9运行,软件。弹出登陆窗口后—点击登陆—被断下
211812nl55jzzgcakiic5g.jpg


选择来到反汇编窗口中。。。。从上面图片中,可以看到相关je call ,对于”call 00514466    E832000000     call 北京8脚?0051449D” F7进去也没有可用东西! 都没有有用的信息。就算软件打开后,不登陆,正常关闭,也一样断点,就停在这里!并不向,有些朋友发帖说的,这时断点向上走,有一段相关关闭程序东西,但我是分析的这个软件是没有的。我现在是无语加郁闷哟~~~
212125fy7lnuz4b9c9lkc7.jpg



接下来怎么办?除了失败就是失败,点击登陆就关!怀着一个真心求学的心情,在网上加逆向QQ群,看能否有所有帮助?结果加了一个群,直接被别人“高手“,骗去50元钱。。。。。我现在心情到了,好低落时候。。。。。。这就是一个新手现实,求助无门,就算有人愿意帮你,也是有偿的,有偿也不怕,关键是你投资的钱,是肉包子打狗子,有去无回!就这样,被骗50元后,直接停了三天,对这个软件研究!事后,冷静下来,就想, 我要争这口气,只有要恒心加正确方法,一定会学到,好多知识的。决定,重新返回软件逆向分析!

                                                                    第七章  穷则思,思则变,变则通
   我的穷,就山穷水尽。那我就想为什么会这样改了“时间到。。。“提示,就直接关了,说明,这个软件有时间自效验东西没有搞干净。并且,可能还不只是一个暗桩,如果要一个一个去跟踪nop掉相关调用,又不好找,工作是量大。更主要是,少找一个软件,一样不会正常运行。     既然这样,那我们可不可以变通一下,大家要知道一个原理,不管你是什么本地和网络验证,最终,你都会内存比较,得到一个结果,根据这个结果去执行相关程序。目标丰富了,我们就找到软件时间验证call,步入进去,去修下软件对比的结果值,从而达到我们目的。好,咱们现在就开始工作。。。。从什么地方下手呢?大家已经知道了,软件是登陆后,自动关了的。说明点击登陆后,程序会在后台自效验时间问题。那我们 就先载入软件od,搜索字符串—用户效验中 212652eu7e4e8558qqjp88.jpg
一路下来F8,并能显示取得机器码,但这不是我们要的东西       212802vu51eg2spcgp5pe1.jpg


再继续F8 跟踪。。。。。单步跟踪来到00405DB1处,按F7进去。。。       212932rndrkkj3f5ayk1q6.jpg


进去后—继续按F8跟踪—注意OD栏目,会显示软件取得的时间,这是我们感兴趣的,但不是我们想要的软件,剩余时间。       213038wvzo35ot9hhwctox.jpg


到了这里,我感觉信心百倍,似乎看到了希望了。。。。。 F8到0040DOA1处。。。就要到关键时候了,死心塌地慢慢一步一步F8,这里是时间浮点计算对比,算出软件还有多少剩余时间。          213144j8fh66f56dxps256.jpg

213350kgagycnvcxyjxxvi.jpg

看软件浮点计算出来的是多少?是-9993.000000000000,说明软件时间到了,不满要求,直接下一个call关退程序了。有些朋友会,那我们当时,为什么不在前面nop这个时间call,不就行了。呵呵!想法是好,但这个时间可能其它自效验要用到哟,如果nop,程序一定会出错的哟。 现在,已经非常高兴了,已经到达核心关键点上了,剩下的是修改。这个0040D0AA    DD45 D8         fld qword ptr ss:[ebp-0x28]中,其中这个是堆栈地址,原理简单,找一个地址,计算出来的结果,不为零就达到目的了。我们就改为上面有一个0xc的地址。暨0040D0AA    DD45 D8         fld qword ptr ss:[ebp-0xc]       213433d9ukcig70x88yepx.jpg


然后—保存—所有修改—跳出另外页面—右键-保存文件。。。 咱们再用OD,重新载入保存后软件,看下效果是什么情况?         213655eisz7ensniamtxx6.jpg


现在,我们反过来跟踪,用F8到,修改处看下。。。。 213522ik65kq6q99drr94r.jpg

从图片中,我们看到软件时间正是42051分钟!就算关了软件,重新起动,又变回了42051分钟。。。。 ,至此,达到长期使用的目的。最后,还是强调一下,写软件也不容易,有能力还是支持作者,本文章只能研究学习下!
(文件加数据有3.6M,太大了,传不了,只能传主文件)
现在上传原版全部(含开奖数据文件)地址: http://yunpan.cn/cJt8aVRdA6RNQ (提取码:8470)


新手王亦宁

评分

参与人数 24HB +35 THX +13 收起 理由
24567 + 2
yexing + 1
消逝的过去 + 1
ldljlzw + 1
紫天 + 1
cqen502 + 2 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
hackysh + 1
叶落花开 + 2
jaunic + 1
lies + 1
laoqiu888 + 1 + 1 分享精神,是最值得尊敬的!
springwillow + 1 对新手很帮助!非常感谢
兔子不野生 + 1 分享精神,是最值得尊敬的!
文邹邹的过客 + 1 + 1 分享精神,是最值得尊敬的!
dopa + 1 吃水不忘打井人,给个评分懂感恩!
守护神艾丽莎 + 1 + 1 吃水不忘打井人,给个评分懂感恩!
tony2526 + 1 + 1 分享精神,是最值得尊敬的!
小不点吃肉 + 1 分享精神,是最值得尊敬的!
爱好者 + 1 + 1 分享精神,是最值得尊敬的!
Shark恒 + 5 + 1 抱歉,没注意是转载,还以为是原创首发。
guitar + 1 评分=感恩!简单却充满爱!感谢您的作品!
Zixue + 10 + 1 吃水不忘打井人,给个评分懂感恩!
小石子 + 1 + 1 分享精神,是最值得尊敬的!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
毒涩- 发表于 2016-4-22 17:24 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
guitar 发表于 2016-4-22 17:44 | 显示全部楼层

精彩,好详细。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2016-4-22 17:45 | 显示全部楼层

抱歉,没注意是转载,还以为是原创首发。

作品不错,感谢转载,辛苦了!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
liuhy 发表于 2016-4-22 18:07 | 显示全部楼层

@Shark恒为什么我申请加入解密组的qq群现在还没有结果......

点评

Shark恒”点评说:
申请QQ群的时候写一下你的论坛ID,否则不知道哪个加群的是你,总有一些人乱加群,你不写,我不知道。。重新申请一下,写上论坛ID  详情 回复 发表于 2016-4-22 22:23
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
爱好者 发表于 2016-4-22 18:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小不点吃肉 发表于 2016-4-22 18:16 | 显示全部楼层

mark,学习一下很详细
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2016-4-22 22:23 | 显示全部楼层

liuhy 发表于 2016-4-22 18:07
@Shark恒为什么我申请加入解密组的qq群现在还没有结果......

申请QQ群的时候写一下你的论坛ID,否则不知道哪个加群的是你,总有一些人乱加群,你不写,我不知道。。重新申请一下,写上论坛ID
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tony2526 发表于 2016-4-22 22:36 | 显示全部楼层

楼主辛苦,谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Οo有缘潕份оΟ 发表于 2016-4-23 08:40 | 显示全部楼层

有点长,先收藏了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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