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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5827|回复: 8
收起左侧

[分享] 菜鸟分享一个,怎么不脱壳 写补丁文件

[复制链接]
yutao531315 发表于 2014-3-17 00:57
作者声明  ..只是爱好,没有其他目的 失误之处,还请各位赐教    一时兴起吧,看到一个程序的 是加的 ASP的壳 ,我的想法就是 不脱壳,直接用od 能够保存下来,
好下面开始演示.................
很简单的 asp 直接esp 定律到达OEP 不过呢,建议大家用多种方式找到这个oep 练手嘛,可以用
单步跟踪 一步步跟下去,还可以用 查找所有命令序列  popad 这是一个出口,用ctrl+ L下个寻找
oep 就不说了比较简单,下面进入正题开始讲解...


004053AF    61              popad  //关键句///这里是 popad 下面就是进入到 程序的oep
004053B0    75 08           jnz Xcrackme_.004053BA
004053B2    B8 01000000     mov eax,0x1
004053B7    C2 0C00         retn 0xC
004053BA    68 00104000     push crackme_.00401000  //把oep 搞进去..........
004053BF    C3              retn   ///返回到OEP洛........
////////////////*********



进入到关键点位置

004011FC  |.  E8 99000000   call crackme_.0040129A                   ; \GetDriveTypeA
00401201  |.  83F8 05       cmp eax,0x5                     //////程序是这个位置比较 eax 跟5 是否相等,根据我们调试得到 上面CALL 返回EAX 是等于3
00401204  |.  74 17         je Xcrackme_.0040121D ////通俗点说 je 相等咋跳,让 eax 跟 比较的值相等就可以跳过错误 ,,
00401206  |.  6A 30         push 0x30                                ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
00401208  |.  68 14304000   push crackme_.00403014                   ; |Title = "FaNt0m's CrackMe #3 -- CD Check"
0040120D  |.  68 40304000   push crackme_.00403040                   ; |Text = "Error finding CDROM"
00401212  |.  6A 00         push 0x0                                 ; |hOwner = NULL
00401214  |.  E8 51000000   call crackme_.0040126A                   ; \MessageBoxA
///////////////可以看汇编代码得出 00401201 位置机器码为 83    00401202  机器码为 F8 00401203的位置为 05
///////////////嘎嘎嘎 是不是可以通过 修改00401203的数据 05 改成为03就可以实现可实现让JE跳转呢.................................原理不解释 相信大家懂点汇编就能理解
//////*************************************************

开始做坏事了............

///接着我们就要在壳的外面进入oep的时候做手脚了
先在下面代码出找一段空位置 直接 90掉 nop
我找的代码是
004053AF    61              popad
004053B0    75 08           jnz Xcrackme_.004053BA  /// 这是入口  先让这句跳转到 我们修改代码位置




004053B0   /E9 B3010000     jmp crackme_.00405568 ///跳转向的位置 是空代码,大家可以使劲随便插......
004053B5   |90              nop
004053B6   |90              nop
004053B7   |C2 0C00         retn 0xC


00405568    90              nop
00405569    90              nop
0040556A    90              nop
0040556B    90              nop
0040556C    90              nop  ///空代码




接着就需要忘内存里面写数据了........
代码是
mov byte ptr [00401203],03    ///这里就把数据写进去 上面我们解说的关键位置 继续一个jmp 就可以飞回去了






004053BA    68 00104000     push crackme_.00401000   //就是跳到这个位置来 要是不是跳到这个位置 oep都没了哈哈

jmp 004053BA  ///




修改好的就是
00405568    C605 03124000 0>mov byte ptr ds:[0x401203],0x3
0040556F  ^ E9 46FEFFFF     jmp crackme_.004053BA


这样就可以了,接着我们进去里面看看我们刚刚修改的数据修改没..


一路狂飙 直接到达目的地

004011F7  /$  55            push ebp
004011F8  |.  8BEC          mov ebp,esp
004011FA  |.  6A 00         push 0x0                                 ; /RootPathName = NULL
004011FC  |.  E8 99000000   call crackme_.0040129A                   ; \GetDriveTypeA
00401201  |.  83F8 03       cmp eax,0x3    ///这里就是刚刚我们写进去的数接着直接用 od 就能保存 不需要脱壳的
00401204  |.  74 17         je Xcrackme_.0040121D
00401206  |.  6A 30         push 0x30                                ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
00401208  |.  68 14304000   push crackme_.00403014                   ; |Title = "FaNt0m's CrackMe #3 -- CD Check"
0040120D  |.  68 40304000   push crackme_.00403040                   ; |Text = "Error finding CDROM"
00401212  |.  6A 00         push 0x0                                 ; |hOwner = NULL
00401214  |.  E8 51000000   call crackme_.0040126A                   ; \MessageBoxA
00401219  |.  C9            leave



以上方法仅供参考,我觉得理解了 用到的地方还是比较多的哈0................................
在直接用od 就能保存了.................以上属于作者本人个人爱好,一个很傻的分析,还请各位大侠不要笑话小弟.......毕竟我一直在努力嘛...

JOOG 睡觉了............

















免费评分

参与人数 2热心值 +2 收起 理由
daohang + 1 谢谢@Thanks!
hzg303 + 1 我很赞同!

查看全部评分

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

 楼主| yutao531315 发表于 2014-3-17 01:01
混了 2年了 一直在忙还是 初露锋芒 我勒个去......一点经验没涨 到底是怎么回事
hzg303 发表于 2014-3-17 01:08
yutao531315 发表于 2014-3-17 01:01
混了 2年了 一直在忙还是 初露锋芒 我勒个去......一点经验没涨 到底是怎么回事

那个是要积分的,要么别人给你热心和CB你的积分也能涨,要么你多回贴或发主题贴级别就涨上去了。再说级别涨不涨没什么用
 楼主| yutao531315 发表于 2014-3-17 01:31
wuwoouren 发表于 2014-3-17 08:31
顶一下......
dwcxb 发表于 2014-3-17 11:10
支持一下楼主吧,一看就知道不是什么菜鸟,汇编都会
头像被屏蔽
892644330 发表于 2014-3-17 11:28
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| yutao531315 发表于 2014-3-17 11:40
嗯 只是一个交流学习的目的.............楼主有好东西可以拿出来分享撒..
老白一枚 发表于 2015-9-17 10:35
哎,看来我还没达到菜鸟的级别啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

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

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

GMT+8, 2024-6-2 03:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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