吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11617|回复: 25
收起左侧

[原创] 【wonderzdh】-逆向学习笔记第一篇-【某培训】学前测试-程序多开

  [复制链接]
wonderzdh 发表于 2013-6-13 00:43
本帖最后由 wonderzdh 于 2013-7-16 10:29 编辑

【文章标题】: 【某培训】学前测试-程序多开
【文章作者】: wonderzdh
【作者主页】: http://hi.baidu.com/chicken
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
本套教程至少得更新到10课,由于没有事先安排,内容可能会比较乱,但是每字每句都是心得。

为什么我要把这些心得发出来,而不自己藏着。因为我发的东西本身就是我对学习逆向的一个梳理和总结。

赠人玫瑰,手有余香。至于你们回不回复,评不评分,我一点所谓也没有。

后续课程不会继续在【逆缘论坛】首发,【吾爱破解】转帖的形式存在,而是两个站同时更新。

也希望我的帖子在吾爱不是归类转帖,而是属于原创,本人可是吾爱未来的“原创精英”+“论坛大牛”呀。

如果想求破,可直接来逆缘免费求破,网址什么的就不发了,自己百度一下。

题目如下:
逆向题:50
多开2个以上的 1.exe,运行环境 win7 x64
1.exe运行成功标志:出现提示框
图片1.bmp
多开成功标志:多个提示框
要求:
1.提交分析过程
2.提交处理方案,可提交实现代码(关键代码即可)
3.提交处理后的运行截图
注意:
1.方法不限只提交一种。
2.多开运行的结果必须是在同一个桌面内运行的,否则不算多开。
3.多开运行的EXE必须是同一个exe在同一个目录内运行的,否则不算多开。
破文如下:
运行测试:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    PEID查看相关信息:

       图片1.jpg
什么都没看懂就知道或许与控制台有关。
首先运行程序,一闪而过,出现一个控制台窗口,其他什么没有。
然后OD载入,ctrl+n查找调用的系统函数,发现可疑函数:KERNEL32.ExitProcess(必定和退出有关)、USER32.FindWindowExW(估计是和多开有关)。
KERNEL32.ExitProcess肯定是退出的关键了,直接每个参考都下断。
郁闷的一逼,一运行就断不下来,直接退出,估计是控制台关闭的程序。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
修改关键CALL
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
既然这样,单步吧,第一个callF7,然后F8一直走。
        000D1BC8   .  E8 E3F7FFFF   call 1.000D13B0
跟到这里,直接退出了,下断,重载跟进。
        00021497   > \E8 44FDFFFF   call 1.000211E0
这里,又退出,下断,重载跟进。
        01151253  |.  FFD3          call ebx
这里,又退出,下断,重载跟进。
        00101256  |.  68 48AA1000   push 2.0010AA48         ;  ASCII "Okay"
出现如下关键字“Okay”,此处call ebx估计是无脑退出,直接nop,保存文件2.exe
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
处理退出函数:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
载入2.exe,找到如下函数。
图片2.jpg
第一句跟进,准备段首下断。
第二句和第一句在一个段。
第三句:
00C31388   . /75 10         jnz short 1.00C3139A
Nop掉,不要走到下面的退出。
第四句:
00C31583   . /74 08         je short 1.00C3158D
Jmp,跳过退出。
第五句:
00C317F1   . /75 07         jnz short 1.00C317FA
Jmp,跳过退出。
第六句:
准备段首下断。
然后保存修改后3.exeOD载入,重新下断。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
搞定多开:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一多开第一个进程就被结束,第二个直接不弹消息框。好吧,既然第一个弹了我就先看看弹框的那部分代码。
老方法找到MessageBoxW,代码如下:
013C17FA   > \8B35 24913C01 mov esi,dword ptr ds:[<&USER32.MessageBo>;  user32.MessageBoxW
段首下断再说:
013C13B0   $  55            push ebp
先OD载入单开看看程序走向,然后直接双开,第二个用OD载入。
关键跳转,单开跳转,第二次打开就不跳了,且下面的CALL会直接给你关闭第一个的进程,那就jmp,代码如下:
00CC15C7   . /75 0B         jnz short 3.00CC15D4
跟着走到此处:
012F16DA   .  FF15 1C902F01 call dword ptr ds:[<&KERNEL32.WaitForSin>; \WaitForSingleObject
程序就直接跑起来,走不到下面的信息框。
012F16CB   . /EB 04         jmp short 3.012F16D1
此处直接跳到运行的call上面,既然找到信息框的部分,要跳我就直接跳到消息框去!
修改如下:
012F16CB     /E9 2A010000   jmp 3.012F17FA
运行测试:
图片3.jpg
自此,修改结束,无论是XP还是W7,32还是64位,全部正常。虽然省略了部分关键部分,并没有深入剖析,但至少满足要求,管你多么牛逼,老子一个jmp到我要的地方!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

附件.zip (94.64 KB, 下载次数: 112)
@小生我怕怕

--------------------------------------------------------------------------------
【版权声明】: 本文原创于【wonderzdh】,转载请注明作者并保持文章的完整,谢谢!

                                                       2013-6-13 00:43

免费评分

参与人数 2热心值 +2 收起 理由
Chief + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
小生我怕怕 + 1 谢谢@Thanks!

查看全部评分

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

无名小五 发表于 2014-12-18 20:21
矮油、、非常感谢楼主的分享!支持...
头像被屏蔽
冷丝 发表于 2014-8-20 11:17
直接在退出的头部下断是不行的   因为有 push eax  或者 mov eax  什么的 会直接退出  谢谢LZ分享  终于找到关于 多开的教程了
极地企鹅 发表于 2013-6-13 00:51
本帖最后由 极地企鹅 于 2013-6-13 00:52 编辑

从服务器返回了一个参照。是什么问题
头像被屏蔽
半根香烟 发表于 2013-6-13 01:04
退出的地方调用调用好多处 直接NOP掉 看看有没相同的数据地址 自己要记下来 同样的退出 虚拟地址 直接干掉 无视退出
花落慢慢开 发表于 2013-6-15 10:32
前排留个名,
  下下来 看看……

谢谢楼主分享~
nba6648780 发表于 2013-6-15 21:09 来自手机
讲的很清楚值得我们学习,谢谢楼主学习了
Ericky 发表于 2013-6-16 13:49
不错  可是只是简单程序
小雨细无声 发表于 2013-6-29 20:08
谢谢附件及教程。
yuxiaopc 发表于 2013-6-30 08:48
思路和方法很好,谢谢你!!希望你越来越强大
781536564 发表于 2013-6-30 09:00
看不懂啊,有基础的吗
 楼主| wonderzdh 发表于 2013-6-30 10:21
781536564 发表于 2013-6-30 09:00
看不懂啊,有基础的吗

哪里不懂?如果是懂的很少很少甚至什么都看不懂,那只能说明你对电脑编程,系统原理,逆向破解一点都不了解。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 10:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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