用友软件首页

加密壳之ACProtect之OEP的处理

2016-1-18 0:0:0 wondial

加密壳之ACProtect之OEP的处理

加密壳之ACProtect之OEP的处理

菜驹也玩加密壳之ACProtect之OEP的处理

附件下载:加壳文件和pdf

 

1. 加密过程:

ACProctect v1.41版本

 

分析对OEP入口点代码的偷取

 

2. 分析过程:

载入后,EIP= 00412000

00412000> 60 pushad

00412001 E8 01000000 call vcmfc库1.00412007

00412006 - 7E 83 jle Xvcmfc库1.00411F8B

00412008 04 24 add al,0x24

0041200A 06 push es

0041200B C3 retn

0041200C 77 01 ja Xvcmfc库1.0041200F

0041200E 43 inc ebx

0041200F FC cld

00412010 75 01 jnz Xvcmfc库1.00412013

入口点是在壳段(地址:00412000,大小:19000)

 

根据壳的特征,用ESP,在00412001处下HR ESP

来到这里:

0041254A 56 push esi

0041254B 8F05 A1294100 pop dword ptr ds:[0x4129A1]

00412551 60 pushad

00412552 78 03 js Xvcmfc库1.00412557

00412554 79 01 jns Xvcmfc库1.00412557

00412556 7B 40 jpo Xvcmfc库1.00412598

 

可以看到pushad,清除上面的硬件断点后,在pushad下面下HR ESP

来到这里:

00427753 51 push ecx

00427754 8F05 89284100 pop dword ptr ds:[0x412889] ; [889] = ecx

0042775A 60 pushad

0042775B 61 popad

0042775C 51 push ecx

0042775D 8F05 CD294100 pop dword ptr ds:[0x4129CD] ; [9cd] = ecx

00427763 FF35 CD294100 push dword ptr ds:[0x4129CD]

00427769 8915 E1284100 mov dword ptr ds:[0x4128E1],edx

0042776F FF35 E1284100 push dword ptr ds:[0x4128E1]

00427775 56 push esi

00427776 BE 11294100 mov esi,vcmfc库1.00412911

0042777B 8BD6 mov edx,esi

0042777D 5E pop esi

0042777E 52 push edx

0042777F 59 pop ecx ; ecx =edx = 412911

00427780 8F05 3D284100 pop dword ptr ds:[0x41283D]

00427786 8B15 3D284100 mov edx,dword ptr ds:[0x41283D]

0042778C 8929 mov dword ptr ds:[ecx],ebp ; [412911] = ebp

0042778E 8F05 A12A4100 pop dword ptr ds:[0x412AA1]

00427794 56 push esi

00427795 BE A12A4100 mov esi,vcmfc库1.00412AA1

0042779A 8B0E mov ecx,dword ptr ds:[esi]

0042779C 5E pop esi

0042779D FF35 11294100 push dword ptr ds:[0x412911] ; 这地方就是被偷的第一句代码pushebp

004277A3 8925 192B4100 mov dword ptr ds:[0x412B19],esp

004277A9 90 nop

004277AA 90 nop

004277AB 60 pushad

004277AC E8 01000000 call vcmfc库1.004277B2

004277B1 ^ 77 83 ja Xvcmfc库1.00427736

注意其中的nop nop pushad 这三条指令,出现这个意味着这就是偷取的代码的开始。。。。当然,这里的nop是随意填充的,可能没有,也可能有一个,也可能有两个,也可能多个..关键是pushad指令

 

把NOP之前的指令全部复制成二进制保存。

00427753 51 push ecx

00427754 8F05 89284100 pop dword ptr ds:[0x412889] ; [889] = ecx

0042775A 60 pushad

0042775B 61 popad

0042775C 51 push ecx

0042775D 8F05 CD294100 pop dword ptr ds:[0x4129CD] ; [9cd] = ecx

00427763 FF35 CD294100 push dword ptr ds:[0x4129CD]

00427769 8915 E1284100 mov dword ptr ds:[0x4128E1],edx

0042776F FF35 E1284100 push dword ptr ds:[0x4128E1]

00427775 56 push esi

00427776 BE 11294100 mov esi,vcmfc库1.00412911

0042777B 8BD6 mov edx,esi

0042777D 5E pop esi

0042777E 52 push edx

0042777F 59 pop ecx ; ecx =edx = 412911

00427780 8F05 3D284100 pop dword ptr ds:[0x41283D]

00427786 8B15 3D284100 mov edx,dword ptr ds:[0x41283D]

0042778C 8929 mov dword ptr ds:[ecx],ebp ; [412911] = ebp

0042778E 8F05 A12A4100 pop dword ptr ds:[0x412AA1]

00427794 56 push esi

00427795 BE A12A4100 mov esi,vcmfc库1.00412AA1

0042779A 8B0E mov ecx,dword ptr ds:[esi]

0042779C 5E pop esi

0042779D FF35 11294100 push dword ptr ds:[0x412911] ; 这地方就是被偷的第一句代码pushebp

004277A3 8925 192B4100 mov dword ptr ds:[0x412B19],esp

 

这段代码的二进制数据为:

51 8F 05 89 2841 00 60 61 51 8F 05 CD 29 41 00 FF 35 CD 29 41 00 89 15 E1 28 41 00 FF 35 E128 41 00 56 BE 11 29 41 00 8B D6 5E 52 59 8F 05 3D 28 41 00 8B 15 3D 28 41 0089 29 8F 05 A1 2A 41 00 56 BE A1 2A 41 00 8B 0E 5E FF 35 11 29 41 00 89 25 192B 41 00

 

 

 

重复上面的步骤,直到n次,怎么确定n,我这里是弹出试用版nag之后就出现了。

把这n次之间的二进制数据都保存下来。

00429106 /EB 01 jmp Xvcmfc库1.00429109

00429108 |E8 FF254B91 call 918DB70C

0042910D 42 inc edx

 

00429106处是一个近跳,F7进去

00429109 - FF25 4B914200 jmp dword ptr ds:[0x42914B] ; vcmfc库1.00405391

0042910F 60 pushad

00429110 E8 00000000 call vcmfc库1.00429115

00429115 5E pop esi

00429116 83EE 06 sub esi,0x6

其中:

ds:[0042914B]=00405391 (vcmfc库1.00405391)

这是一个跨段的长跳转,何为跨段?当前指令是在00429109 它要跳到00405391,

 

从模块图中看出,它是要从.perplex段跳到.text段执行..这就是传说中的跨段

 

所以说,进到代码段后,就是传说中的伪OEP了,伪OEP是长得这个样子的

 

 

 

下面就把它DUMP出来

用import rec修复下IAT,没有问题 fix一下dump出来的文件

 

Import rec会给文件加一个.mackt的区段,里面存的是输入表,大小为1000,输入表用不了这么大的空间,我们把被偷的代码放在这个区段里好了。

用OD打开修复过和dump_.exe,在0042b000的段处找一个空的位置,

我找的是0042BBA0,把上面得到的二进制贴上去,贴完后,再加上一句JMP 00405391(跳到伪OEP)

0042BEBF 58 POP EAX

0042BEC0 8908 MOV DWORD PTR DS:[EAX], ECX

0042BEC2 A1 A4604000 MOV EAX, DWORD PTR DS:[0x4060A4]

0042BEC7 - E9 C594FDFF JMP dumped_.<ModuleEntryPoint>

 

用LOAD PE把入口点修改成0042BBA0,OK,完工。。。

 

 

 

保存的所有的二进制数据:

00427753 51 push ecx

00427754 8F05 89284100 pop dword ptrds:[0x412889] ; [889]= ecx

0042775A 60 pushad

0042775B 61 popad

0042775C 51 push ecx

0042775D 8F05 CD294100 pop dword ptrds:[0x4129CD] ; [9cd]= ecx

00427763 FF35 CD294100 push dword ptrds:[0x4129CD]

00427769 8915 E1284100 mov dword ptrds:[0x4128E1],edx

0042776F FF35 E1284100 push dword ptrds:[0x4128E1]

00427775 56 push esi

00427776 BE 11294100 mov esi,vcmfc库1.00412911

0042777B 8BD6 mov edx,esi

0042777D 5E pop esi

0042777E 52 push edx

0042777F 59 pop ecx ; ecx =edx = 412911

00427780 8F05 3D284100 pop dword ptrds:[0x41283D]

00427786 8B15 3D284100 mov edx,dword ptrds:[0x41283D]

0042778C 8929 mov dword ptrds:[ecx],ebp ;[412911] = ebp

0042778E 8F05 A12A4100 pop dword ptrds:[0x412AA1]

00427794 56 push esi

00427795 BE A12A4100 mov esi,vcmfc库1.00412AA1

0042779A 8B0E mov ecx,dword ptrds:[esi]

0042779C 5E pop esi

0042779D FF35 11294100 push dword ptrds:[0x412911] ; 这地方就是被偷的第一句代码pushebp

004277A3 8925 192B4100 mov dword ptrds:[0x412B19],esp

 

51 8F 05 89 28 41 00 60 61 51 8F 05 CD 2941 00 FF 35 CD 29 41 00 89 15 E1 28 41 00 FF 35 E1 28

41 00 56 BE 11 29 41 00 8B D6 5E 52 59 8F05 3D 28 41 00 8B 15 3D 28 41 00 89 29 8F 05 A1 2A 41

00 56 BE A1 2A 41 00 8B 0E 5E FF 35 11 2941 00 89 25 19 2B 41 00

 

FF 35 19 2B 41 00 8F 05 C1 29 41 00 56 BEC1 29 41 00 8B 2E 5E 57 BF 9D 29 41 00 89 1F 5F FF 35

9D 29 41 00 89 35 31 28 41 00 FF 35 31 2841 00 68 FF FF FF FF 5E 89 35 99 2A 41 00 8B 1D 99 2A

41 00 8F 05 0D 2A 41 00 8B 35 0D 2A 41 0057

 

89 1C 24 8F 05 05 29 41 00 8F 05 19 28 4100 FF 35 19 28 41 00 5B FF 35 05 29 41 00 89 05 D5 2A

41 00 FF 35 D5 2A 41 00 89 3C 24 89 0C 24C7 04 24 A0 61 40 00 57 8F 05 E1 2A 41 00 FF 35 E1 2A

41 00 89 1C 24 C7 04 24 C0 54 40 00

 

64 A1 00 00 00 00 89 05 A5 29 41 00 FF 35A5 29 41 00 89 1C 24 89 0D 85 2A 41 00 FF 35 85 2A 41

00 57 BF 91 29 41 00 8B CF 5F 56 8B F1 8BDE 5E 8B 0C 24 8F 05 B5 2A 41 00 89 03 8B 1C 24 8F 05

ED 28 41 00 FF 35 91 29 41 00

 

64 89 25 00 00 00 00 83 EC 68 53 8F 05 D529 41 00 FF 35 D5 29 41 00 8F 05 99 28 41 00 FF 35 99

28 41 00 57 89 04 24 8F 05 65 29 41 00 FF35 65 29 41 00 89 34 24 52 8F 05 F1 28 41 00 FF 35 F1

28 41 00 89 3D C9 2A 41 00 FF 35 C9 2A 4100

 

56 8F 05 31 2A 41 00 60 61 68 E5 2A 41 005F 51 8B CF 8B D1 59 8F 05 B9 28 41 00 8B 3D B9 28 41

00 89 3A 8F 05 D1 28 41 00 53 BB D1 28 4100 8B 13 5B FF 35 E5 2A 41 00 89 65 E8 33 DB 89 5D FC

89 15 85 29 41 00 FF 35 85 29 41 00 89 3424 53 89 14 24 50 B8 02 00 00 00 60

 

8B D0 58 52 5E 8F 05 01 2A 41 00 8B 15 012A 41 00 56 89 14 24 50 B8 25 29 41 00 8B D0 58 89 32

8F 05 AD 29 41 00 8B 15 AD 29 41 00 8B 3424 8F 05 B9 2A 41 00 FF 35 25 29 41 00 FF 15 98 60 40

00 8F 05 01 29 41 00 50 B8 5D 2A 41 00 8938 58

 

FF 35 5D 2A 41 00 51 C7 04 24 01 29 41 008F 05 85 28 41 00 8B 3D 85 28 41 00 8B 0F 8B 3C 24 8F

05 61 29 41 00 83 0D B4 F1 40 00 FF 83 0DB8 F1 40 00 FF FF 15 9C 60 40 00 89 05 C1 28 41 00 FF

35 C1 28 41 00 57 BF 35 28 41 00 8B C7 5F89 30

 

8B 04 24 8F 05 41 28 41 00 FF 35 35 28 4100 50 8F 05 6D 2A 41 00 FF 35 6D 2A 41 00 89 3D 39 28

41 00 FF 35 39 28 41 00 51 B9 7C 71 40 008B F9 59 57 58 5F 50 5E 8F 05 2D 2A 41 00 8B 05 2D 2A

41 00 8B 0E 8F 05 11 2B 41 00 FF 35 11 2B41 00

 

55 8F 05 25 2B 41 00 60 61 5E 89 08 FF 15A0 60 40 00 52 8F 05 55 2A 41 00 FF 35 55 2A 41 00 C7

05 29 29 41 00 78 71 40 00 FF 35 29 29 4100 8F 05 35 2A 41 00 8B 15 35 2A 41 00 8B 0A 8F 05 C9

28 41 00 50 B8 C9 28 41 00 8B 10 58 89 08A1 A4 60 40 00

 

如果您的问题还没有解决,可以到 T+搜索>>上找一下答案

分享到:

微博关注

bj用友软件

最新信息

哎,收个代账费哦,一推在推,说了打款,狗日的仅到不打款,你也不是没有钱,而是喜欢拖欠,点都没得诚信德。

哎,收个代账费哦,一推在推,说了打款,狗日的仅到不打款,你也不是没有钱,而是喜欢拖欠,点都没得诚信德。 哎,收个代账费哦,一推在推,说了打款,狗日的仅到不打款,你也不是没有钱,而是喜欢拖欠,点都没得诚信德。[]

生活就是如此不易

U8.50固定资产结转

U8.50固定资产结转U8.50固定资产结转


U8.50-固定资产结转

自动编号:3948产品版本:U8.50
产品模块:固定资产所属行业: 通用
适用产品:U85x关 键 字:U850X固定资产结转出错
问题名称:固定资产结转
问题现象:固定资产结转后期初累计折旧数与去年期末数不符
原因分析:程序问题
解决方案:修改fa_Total中的dblYearDeprTotal年初累计折旧,dblMonthDeprTotal月初累计折旧,由于客户一月已计提,因此还要修改dblDeprTotal月末累计折旧。修改方法是按部门、资产类别来进行修改

温馨提示:如果您的问题还没有解决,欢迎进入用友云基地

热点文章

新闻资讯

  • 【新年首签】天津用友&通广集团签署战略协议

    【新年首签】天津用友&通广集团签署战略协议

    天津用友软件技术有限公司(以下简称天津用友)和天津通信广播集团有限公司(以下简称通广集团)就企业信息化建设事宜进行战略签约。

    参加此次会议有天津用友总经理赵永春,天津用友副总经理王成岩、通广集团副总经理马严、通广集团科技质量部部长尹刚、七一二公司技术质量部部长门国梁、七一二公司技术中心主任黄建尧等。

    image

  • 会计职场堪比宫斗剧

    会计职场堪比宫斗剧

     近几年,各种宫斗剧火爆,《甄嬛传》《芈月传》等等都脍炙人口,许多人经常打趣自己像某个人物,若是在古代能活到第几集。让人不禁想起,会计职场又何尝不是一场宫斗,每天要察言观色,明了领导的内心,就像后宫谁也不敢惹皇后一样。但当你坐上领导位置的时候,盯着你的眼睛就会很多,稍有不慎就会被取代。就像后宫的嫔妃一样,就算坐上了皇后的位置也要时刻担心有没有人觊觎。

    image

知 识 库

  • 用友软件年度结转操作步骤

    用友软件年度结转操作步骤

    用友软件年度结转操作步骤用友软件年度结转操作步骤

      一、在做年度结转前要做好备份,备份步骤如下:
      1、进入系统管理,点注册。
      2、注册用户名,再点确定。
      3、再点击菜单栏中的“账套”,下拉菜单中选择“输出”
      4、选择我们所要备份的账套,选择之后点确认。 
       5、稍后系统会出现画面,如果电脑配置较低,系统会有短暂的没有响应,只要继续等下去就可,系统在压缩数据库。
      6、数据备份完成后,弹出如下对话框,我们再选择自己所要保存数据的路径即可。
      7、选择路径时,一定要确定所选文件夹为打开状态,只要双击要保存的文件夹,再点确认即可完成备份。
      8、备份完成,如果要将数据拷贝到U盘,直接找到备份文件夹,复制到U盘即可。

  • 12.1用友 备份

    12.1用友 备份

    12.1用友 备份

    用友软件提供两种备份方式:手工备份和自动备份,下面我们讲解这两种方式的备份账套数据操作步骤(T6和U8与T3备份恢复方法相同,此处以T3为例):

    ㈠、手工备份

    1、先在硬盘上建立一个空文件夹

    打开我的电脑(双击)D(或E、F)盘,(空白处右击右键)新建文件夹,把这个新建的文件夹,改名为如用友数据手工备份。(双击)打开用友数据手工备份,(右击)出现新建文件夹,把所新建的文件夹改名为当天的备份日期如2016-12-16后退出

  • 最新文章排行
  • 热门文章排行

管理软件

  • T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。 T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。[]

    备份好账套,这种情况只能强制删除了,请备份好账套之后,停止数据库服务和T3产品服务,自动备份服务;然后删除T3安装路径以及C盘下ufcomsql文件夹,然后使用360清除无用注册表,最后重启电脑即可;

  • 用友T3-业务通在11.0的软件中点击打印软件就自动退出

    用友T3-业务通在11.0的软件中点击打印软件就自动退出

    用友T3-业务通在11.0的软件中点击打印软件就自动退出 用友T3-业务通在11.0的软件中点击打印软件就自动退出

    其他的操作都正常,就是某个单据如销货单,点击“打印”—“预览”,或者是“打印”—“打印模板设置”,就自动退出软件了,再登入的时候提示:“该用户已登录,是否重新登录”。该单据的默认打印模板异常,导致一点“打印模板设置”或者是“打印”就自动退出了。1.先登入产品,然后在同一浏览器里输入网址:
    http://127.0.0.1/YWTPRO/CommonPage/printservices/DesignFrame.aspx (新一代业务通);
    2.将异常的模板删除;
    3.点击“新建”按钮,重新建立“打印模板”即可。
    备注:如果是系统模板也是异常的话,可以将系统模板删除再重建。
    如有其它问题,请在下面回复。也可以联系用友畅捷通专业服务商-用友天龙瑞德。
    用友天龙瑞德专业销售用友软件,用友财务软件,维护用友T3用友T6用友U8畅捷通T+。我们将竭诚为您服务。
    联系电话:010-59798025。网址:http://www.kuaiji66.com

关于我们 | 公司动态 | 获奖记录 | 联系我们 | 招聘信息 | 用友产品中心 | 用友云基地
Copyright ©  www.kuaiji66.com  All Rights Reserved 天龙瑞德
京ICP备11046295号-1 技术支持 北京天龙瑞德信息技术有限责任公司   北京海淀上地十街辉煌国际大厦3号楼6层 总机:010-59798025   售后:4009908488
北京天龙瑞德信息技术有限责任公司