首页
社区
课程
招聘
请教下这个汇编代码的对应DLL怎么写!
发表于: 2011-5-10 23:28 3713

请教下这个汇编代码的对应DLL怎么写!

2011-5-10 23:28
3713
代码如下,有懂的朋友给解释下,我百度过懂一部分但是不全明白,希望大牛指点。
00809E5A       00            DB 00
00809E5B       00            DB 00
00809E5C    .  6F 72 64 65 2>ASCII "orde.dll",0
00809E65       00            DB 00
00809E66    .  58 52 41 4D 0>ASCII "XRAM",0
00809E6B       00            DB 00
00809E6C       00            DB 00
00809E6D       00            DB 00
00809E6E       00            DB 00
00809E6F       00            DB 00
00809E70    >  60            PUSHAD
00809E71    .  68 5C9E8000   PUSH Stock_u.00809E5C                    ; /FileName = "orde.dll"
00809E76    .  FF15 0CA58000 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; \LoadLibraryA
00809E7C    .  68 669E8000   PUSH Stock_u.00809E66                    ; /ProcNameOrOrdinal = "XRAM"
00809E81    .  50            PUSH EAX                                 ; |hModule
00809E82    .  FF15 10A58000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress
00809E88    .  6A 02         PUSH 2
00809E8A    .  6A 02         PUSH 2
00809E8C    .  FFD0          CALL EAX
00809E8E    .  61            POPAD
00809E8F    .  55            PUSH EBP
00809E90    .  8BEC          MOV EBP,ESP
00809E92    .  6A FF         PUSH -1
00809E94    .^ E9 5A61F5FF   JMP Stock_u.0075FFF3
00809E99       90            NOP
00809E9A       00            DB 00
00809E9B       00            DB 00
00809E9C       00            DB 00
00809E9D       00            DB 00
00809E9E       00            DB 00
00809E9F       00            DB 00
00809EA0   /$  60            PUSHAD
00809EA1   |.  68 5C9E8000   PUSH Stock_u.00809E5C                    ; /FileName = "orde.dll"
00809EA6   |.  FF15 0CA58000 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; \LoadLibraryA
00809EAC   |.  68 669E8000   PUSH Stock_u.00809E66                    ; /ProcNameOrOrdinal = "XRAM"
00809EB1   |.  50            PUSH EAX                                 ; |hModule
00809EB2   |.  FF15 10A58000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress
00809EB8   |.  6A 03         PUSH 3
00809EBA   |.  FFD0          CALL EAX
00809EBC   |.  61            POPAD
00809EBD   \.  C3            RETN
00809EBE       00            DB 00
00809EBF       00            DB 00
00809EC0       00            DB 00
00809EC1       00            DB 00

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
注入补丁,是做好了摸板再注入的,还能怎么写?
2011-5-11 00:43
0
雪    币: 173
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我的意思是可以解释下代码吗!不是说方式,方式我知道的。还是很感谢你
2011-5-11 01:05
0
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k4b
4
在(0075FFF3 - 5) 内存地址处应该写了(JMP 00809E70)的指令,当程序执行到此指令时就跳转到上面代码来了
.然后在上面的代码里动态调用了orde.dll 中的输出函数XRAM,XRAM函数干完事后再利用(JMP Stock_u.0075FFF3)返回到原来的位置继续执行.由于在(0075FFF3 - 5)处写了跳转指令,把原来的指令给覆盖掉了.所以
00809E8F    .  55            PUSH EBP
00809E90    .  8BEC          MOV EBP,ESP
00809E92    .  6A FF         PUSH -1
先执行了被(JMP 00809E70)指令覆盖掉的指令再跳转回去.
这是一种最基本的inject code 技术.也就是我们常说的给程序打内存补丁.
另外,从你给的代码看,似乎XRAM这个函数的传入参数可以是1个也可以是2个.
我不是什么高手,也不知分析得对不对,欢迎扔砖头.gei fen a !
2011-5-11 01:43
0
雪    币: 173
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恩恩大致明白了,但是我想怎么写出这个dll,什么思路?
2011-5-11 12:40
0
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k4b
6
你是说orde.dll这个东西里面应该写些什么,对吧?这个就要看你想干什么啦.你想要实现什么功能,你就在里面怎么写阿.CPU说:下面看你的戏了.
2011-5-11 18:22
0
游客
登录 | 注册 方可回帖
返回
//