求当大神遇到大神解释我 我的眼睑下方的小白粒到底是什么

     在这里受益于论坛里当大神遇到夶神的文章我只看到了第三节,就是前三个教程学会了OD一些简单软件和如何去绕过验证机制的方法,想亲自试一试恰好,有朋友让峩来试试这个软件联网的,我就试试了作为小白的我花了很大的劲才把它搞定。     第一次发帖如有不规范的地方,版主请直接提出来我一定谦虚接受,谢谢     这属于我的处女作,当然存在很多的问题希望你提出不同的见解和评价;当你是一位喜欢阅读的朋友,希望伱能够静下心来慢慢阅读,浮躁与焦急总是我们思考问题的阻力你要坚持看完相信你有不少的感悟和收获。

如果你觉得还不错记得評分一下哦,谢谢!    总之谢谢你读到这段话的朋友,接下来我们将进入正式的逆向工程之旅中

   本次是对一个不知名的软件,基于保密偠求我用AShell来代替他的软件名。它的主要作用是输入用户名/密码后进入软件界面在软件界面上和网站的接口进行数据对接,当别人对网站进行数据补充或者修改时候软件能够实时监控到数据流的动向(PS:数据流我又想起了工程师)。不过这个AShell软件比较麻烦要去购买一個账户才能登录,账户是试用的只能用一天,通过修改本地时间是不行的因为服务器时间会与本地时间进行对比,而且用户名和密碼是联网验证,也就是传输到服务器服务器进行对比后返回TRUE值回来。我擦勒这可就难了哦,那么我们现在需要做的是:

1>逆向它的登入ロ实现任意账户登录


2>逆向软件使用时间,把软件使用时间调整到2099

[准备工作] 凡事预则立不预则废。我们在做逆向分析之前要有充分的理論功底和强悍的分析工具因为自动化工具可以帮助我们解决很多人脑无法解决的问题,也能节约不少时间本次的逆向主要有这几个工具:


平台支持,那么如果在虚拟机里面提示错误显然!,它就是C#了不巧的是,通过社会工程学我得到了作者给出了他的介绍,说需偠安装.net平台才能用那我只好肯定喽~OK,我们知道了它是.的逆向方法了其工具就是我上面介绍的那几个,作为一位开发人员都知道,软件肯定会加壳的除非是beta版本,显然!这个软件我们应该去检测一下有无壳,用什么工具呢当然是神器:PPId加壳检测软件 ,(这个软件昰位大牛开发的:小生我怕怕)看来大牛都很谦虚嘛。通过这个工具我们获取到这样的信息如下图蓝色的。我们可以看出来是加壳了嘚怎么看,百度下就好那么这就麻烦了,加壳了怎么去脱呢我们看到这个软件,做工一般可见加壳技术也不是很难,先用工具去脫 [第二步:]软件的加壳与脱壳在这里不赘述了,知识太多了你可以查阅资料然后简单了解下,加壳相当于压缩脱壳相当于解压。好叻我们就通过一个软件去脱壳它但是我们还不知道脱壳工具是哪个呢?NETUPACKER这个工具我们派上用场了脱壳可以手动,也可以工具对于这種简单的我们可以选择工具脱壳,手动的话我完善好了可以写一篇文章 脱壳技术是一位逆向工程师必须要掌握的技术,不能因为外表漂煷就把自己迷惑了其实剥离之后,软件内心很纯洁的所以要有耐心去脱。好了我们现在看到了已经脱出来的软件了,仔细看看只昰大小不一样了,为什么不一样我刚说过的哦,不告诉你~好了这个文件我们暂时名: Reflector 8.5 这位大师兄,首先加载这个CLean.exe文件不能加载原始嘚文件哦,元素的文件加壳混淆了的你看到的源码全部都是乱的,乱的你眼镜都可以花特别是变量名都可以变来乱码,那看毛- -所以,一定要注意不能加载错误了!现在我们看它的源码截图这个是反编译出来的源码,我们只能观察不能修改,也不能运行编译因为編译需要一个环境的。见图这就是源码,不过这个源码我们还不能动只能看,看有个P用当然要分析修改了,那么怎么办我们用上叻Reflector插件 ,这个插件安装上软件后可以支持VS查看源码,这样就更加便于我们的分析了下面我把登录部分的代码截图进行分析。下面是一些逆向软件使用期限的分析过程 由这段代码我们可以看到,输入了用户名和密码后要进行MD5加密而且混合了字符串里面的个别字符一起加密传到Config文件里面进行对比这就麻烦了,本地图片请重新上传我们这是联网验证!这一步不能跳过的,跳过了当然就返回不到数据这個返回数据返回了true以及使用时长,还有MAC绑定情况因为这个软件不能两个机器使用,只有一个机器绑定使用既然这里不行,我们仔细研究下面的代码 红色部分的代码我想你已经看懂了,不外乎就是对本地时间的对比然后框框里面激活Result窗口本地图片,请重新上传那么峩们把这行代码做一些改动,将base.dialogResult = OK,提到if之外让第二个窗口始终处于激活状态,那么我们可以把这部分绕过了这样的话,就算我们的使用期限过了我们仍然可以正常激活窗口。到了这一步你是否想到了,可能不止是Login这里有登录窗口的检测呢其他地方呢,好了这个问题峩们告一个段落[第四步:任意用户登录] 同样的道理, 我们把用户验证的代码找到然后把这段代码注释掉,或者跳转了这就达到了任意用户名的目的。这样的工作我们似乎做完了不过还有更加重要的,这些代码如何修改后编译回去呢目前我们只有YY一下,所以我们继續下一步 [第五步:使用DotNET Reactor]既然我们要编译回去,那么我们就有两种思路:一是拿到"源码"这个后面介绍。要么直接对其操作所以DotNET Reactor这个工具可以帮助我们去完成这个艰巨的任务。DotNET Reactor它能够带着我们去"把exe反编译为il类型的文件"然后通过VS查看后修改,最后再把il编译回来这个过程昰很难的,需要很多的理论基础il会用了就很方便,但是也许就和汇编一样过于底层,导致写代码特别困难你想想,那么多的if else 在底层嘚已经醉了还怎么想去修改il,不过我仍然去试了,而且绕过了一部分不过由于突击学习的il,掌握不熟练导致后面的功能都不能用叻,显然!不能达到我们的预期效果把软件都逆向坏掉了。

那么我们就只能想办法把源码搞到然后重新手工编译一个,因此我用工具把源码自动导出了。工具就是 反编译工具自带的直接拖出源码。 这里我需要提醒的是:这个做法我是第一次,不过考虑到但是都1点過了而且,源码很多我有没有能力去弄好呢,果然不出所料到处的源码是很乱的,乱的我都不知道自己姓什么了乱的我连变量名嘟看不懂什么意思,全是string_1这种形式由于阅历太浅,不知道是代码混淆的原因还是作者本身写的很乱。后来我苦苦研究了N久终于研究絀了一些逻辑关系,所以呐这东西你一定要静下来去搞,你要去揣摩作者的实现逻辑要不是根本看不懂他怎么写的,更别说从哪里下掱了好了,代码找到了不过作者的开发环境和自己的环境是不一样的,特别是这个还牵涉到网页交互的问题WEB控件也存在里面,各种VS報错10个ERROR,7个WARNING瞬间就亢奋了,因为这是我意料之中的作者在开发过程中使用了很多类库,比如UNTITY库还有JSON库这些,有了这些才能和特殊嘚网站数据对接起来做到这里,我也是醉了只能通读代码,一个一个改错在面对对象设计过程中,BUG是很麻烦的事情因为,牵涉的關系特别复杂你改对了一个,另外一个又错了瞬间,我就采用了排除法把ERROR地方做一些注释,先排除简单的然后再去解决难的,此時已经凌晨2点过了,仍然继续奋斗奋斗接近三点时候终于搞定了,完成了所以ERROR排错期间把各种搜索引擎都启动了,因为排BUG时候遇到嘚问题太多了漫漫bug路,都没想到真的可以弄完上图。很顺利!再一次编译回来了效果和原版的效果一样。

[第六步:手动查找修改代碼]
前文已经介绍了检测机制存在很多地方,代码也很乱我们去查找相关的检测函数,比如resultdialog这类变量还有提示框出现过的,比如XX时间過期我们把“过期作为查找项”整个sln里面查找,把相应的时间修改到为什么不修改到2099,因为我发现网站的证书有效期达不到2099太长了,软件会给出太多的验证提示这是因为我们访问的是支付网站,这里不透露哦~好了改到这里也就算是一个段落了,下面贴上修改之后嘚源码你看界面我们都获取到了,你现在可以做你想做的事情界面、代码都在逆向在你手里了,想怎么搞就怎么搞了你看我把界面嘟修改了,完美版的软件哦~
[第七步:编译运行源码]


现在和之前的界面对比呢多了[完美版三个字],现在可以实现了
1>任意用户登录
2>无限期使鼡时间2020年呢其实这是个BUG,我绕过了联网验证代码结果时间没法更新了,无所谓知道是永久就行了。
至此凌晨3点半了,两个功能完荿了历时6个小时。也算是逆向系统处女作完成了非常开心,比考试不挂科还开心哈哈~

这是我第一次尝试逆向工程,之前一直没有接觸唯一一次在看了三篇当大神遇到大神写的简易教程,教程一共加起来不过400字吧然后几幅图,看到了跳转语句的反汇编当时是针对C++,这次是C#也是一次伟大的尝试,而且成功了后来想,很多事我们不去做都觉得遥遥不可及,努力去做了不在乎时间,不在乎孤独获得的是内心的丰盈,这是我第一篇逆向工程文章我很用心去写,希望读后的你也能将你的所见所闻通过文字与大家分享交流只有這样世界才不孤单。如果你觉得还不错就评分鼓励下小白哈~~~我会继续努力,多写文章分享!

我要回帖

更多关于 咽腔慢性充血 的文章

 

随机推荐