EMU618社区

 找回密码
 立即注册
搜索
查看: 2628|回复: 11

[原创HACK教程] 【Hack Tutorial】DLL Relocation

 关闭 [复制链接]

该用户从未签到

发表于 2009-8-13 20:14:40 | 显示全部楼层 |阅读模式
[tr][td]  
2 H' R% x* M* R, B: ^
PC Game Hack -- DLL Relocation
$ g0 v1 q9 B) R. _
Author: Krizal Chen 1 f$ l2 M( N1 b, Q. o; H5 i3 d
HackerTeam: VirusDream7 * n, x' {' D( V7 O5 m5 ^( q; b
Original: DarkShadow GameHackTeam 9 [  M, ^" J$ n9 j/ r4 f
WebSite:http://kenkuroro.t35.com
! |0 l. F2 l7 h( Q' l6 g
Blog:http://tw.myblog.yahoo.com/dsght-krizal
; C: o5 _; W% }9 q" p( E+ X
) C2 N! K- V' T4 v8 f

+ J& V$ i9 l: r8 O" h6 p0 N; x0 w

! Z9 d" D. O. ~
昨天2009/08/12 Thursday * t( F; v: ]) H5 Q, a% m
我們家的寶貝米格魯 - ミル,生了七隻小寶寶,
5 k! B0 _: o* f
雖然三隻夭折了,不過新生命的誕生仍然值得祝賀, " }/ a) ]0 N+ t# ]6 {( }
希望那三隻可愛的寶寶也能早日投胎。
/ I; _1 q# W0 M* z2 _9 D

( u) C1 Q3 I3 R/ v. ?5 u8 s
明天是本人的生日, ( {0 e5 L. F+ {
依照慣例都會發一些Hack ROM,不過最近很忙沒什麼時間,
# e+ r) H6 |6 f# D
於是把我這禮拜Hack某西的某些資料,整理簡化寫個教學, 0 S; h3 l( Y2 B' e" e5 }+ L
適用於PC Game Hack或是加密解密的應用。 + `8 f3 {) j  J
, @1 p5 Z: |  F9 }5 P& T& H
; E' w( D9 R2 ?
$ Y% g$ r5 s8 _$ s: ?

% ?% ~# T+ }! c& O6 q- U( l2 G% K
首先我們先了解什麼是重定位? 5 Q- _. Z0 T% N" E' x
& x9 P3 i% F# M* r
一般Windows執行檔EXE,
+ g- B5 v1 M* Y& b
於執行中系統會想盡辦法,讓EXE定位在ImageBase上。 % I+ g' F3 u* c; o. u/ F+ Z
但是DLL並沒有辦法獲得保證,所以需要重定位資料, % t2 D6 ^2 j# T
使DLL重新定位,否則可能造成程式執行上的錯誤。
+ ^* L+ t  i8 u% J6 P

% u1 R% P+ \7 E9 @8 ?7 E$ A6 t

/ u3 K) k+ c( N
什麼時候需要重定位? . ~6 v3 j+ n4 r

( y2 |0 G6 b7 a+ F6 H4 l/ b* \
當我們修改完DLL的時候,都必須進行重定位修復。
0 J& X, p5 ]3 a  z0 ]* A1 |* o- S
ex:
7 ^' p( ?  o5 a" y6 T% [Original:
! F3 l2 ]# ?# T# v005269A8      6A 00               push 0
+ b9 T! B; \' |! o
005269AA      6A 00               push 0
  J6 h- o1 P2 }! p: \+ ]/ B005269AC      E8 72000000         call Visual.00526A23
- O+ ?. e" m/ L
/ k0 L8 ^( j+ D' L: T- TAfter: , J* O0 Z5 s" r: E  o2 k
005269A8      68 10695300         push Visual.00536910
6 A: d6 z0 z  L# ?005269AD      68 20645200         push Visual.00526420 ' o6 b* w( D5 ?4 h7 X: {6 f
005269B2      E8 6C000000         call Visual.00526A23 0 C- D* c) Y& n  a- q. Q) r' e# v9 R
( K' o6 |% n6 V) g+ }- h2 V8 B( C
當以上程式碼經過修改後有兩段需要進行重定位:
7 S5 p8 @  i. g! \$ |; c
005269A8      68 【10695300】       push Visual.00536910
# x$ T  s' d. N2 c3 Z005269AD      68 【20645200】       push Visual.00526420
' d0 J% z( V5 W2 L005269B2      E8  6C000000         call Visual.00526A23
4 k  X8 G) h  X( dMust be relocated Address: 0x5269A9 & 0x5269AE
  u+ @( X0 p2 I: ~; G

! M7 @/ l9 p3 s5 q2 t! z1 @# G  C實際範例: ) a9 y, z5 `6 L0 n
7 o- @& X( F; G- l# o8 X
本人使用了C++撰寫了一個DLL Demo和DLL Loader,
1 r6 V; h% E8 B' {. O6 {* n  L給大家方面練習,下載於附件。
- f0 Y. n6 T7 A9 G0 f# Y* D& S5 z) j, v. \$ {
修改目的,讓MsgBox彈出顯示字串。 5 L+ d8 x2 g1 |  t0 \: S
! z, L5 H6 a6 @3 `2 h' ^
P.S. " {  T4 s9 ]  d
為了讓初學者快速上手,DLL已經處理過, 2 Z0 [- n2 @+ N! }4 d" Y
可以直接使用RVA,且更改ASM時也預留了很多空間。
: h) k1 o9 p( _0 a$ W1 y突然看到ASM程式碼下面很多NOP,絕對不是偶然   ^_^ + |% ^- ?9 d, f" c% e! ~/ K+ s, |
! K% @- v6 x$ s9 ?
游客,如果您要查看本帖隐藏内容请回复
$ i& n4 I/ F# e

6 O# a- ?- {  d7 m/ d$ W3 @: n[ 本帖最后由 krizal 于 2009-8-13 20:25 编辑 ]

评分

2

查看全部评分

签到天数: 1639 天

[LV.Master]伴坛终老

发表于 2009-8-13 22:17:56 | 显示全部楼层
汗...- A1 F. u( u  Y4 q, T$ n  d& o; {2 \
看不懂,纯支持了" `6 C0 Y# e; a( _3 h; |3 H
:L

签到天数: 41 天

[LV.5]常住居民I

发表于 2009-8-13 22:49:34 | 显示全部楼层
回帖看隐藏:loveliness:

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2009-8-14 02:42:28 | 显示全部楼层
团长的东西都是让我们这些新手看着晕头:victory:

签到天数: 712 天

[LV.9]以坛为家II

发表于 2009-8-14 07:44:11 | 显示全部楼层
虽然看不懂,还是要支持下。:loveliness:

签到天数: 343 天

[LV.8]以坛为家I

发表于 2009-8-14 10:49:58 | 显示全部楼层
感谢团长,支持下。

该用户从未签到

发表于 2009-8-14 16:00:50 | 显示全部楼层
那个 好象我顶过团长的这帖了
/ C3 g( J2 k- Y' W1 I7 R9 B论坛回滚:funk:

该用户从未签到

 楼主| 发表于 2009-8-14 18:32:42 | 显示全部楼层
跟原始資料比較起來這個應該很簡單,  B6 X1 x1 ?8 |9 l; B" `5 `+ x  \* Z
已經有盡量簡化過了,希望各位能有所得。
1 s) W: w$ i5 ^1 L, d% n學會後對於Hack DLL 很有用處。
8 C, U5 E/ d( X9 Y$ C& {% a
1 J' S" J) R! j/ \PS:* N0 I5 v- c# u* a2 C. ?
1.MessageBox 可以自行呼叫ASCII 或是WideChar格式的,
- `7 Q5 o# J2 @& I8 X但是記得更換字串書寫格式。  l( `/ @  `$ ]0 u: ?

  N! i% A/ a% }! Q* O* E2.此DLL其實更改後需要修復3處,4 a: V' `; d  q
最後一處蠻簡單的,就留給大家當Homework。

该用户从未签到

发表于 2009-8-14 21:03:11 | 显示全部楼层
睡起来看看,在顶一帖
头像被屏蔽

该用户从未签到

发表于 2009-8-15 09:01:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

该用户从未签到

发表于 2009-8-15 11:29:53 | 显示全部楼层
看看隐藏

签到天数: 2021 天

[LV.Master]伴坛终老

发表于 2009-8-17 20:25:26 | 显示全部楼层
来迟了,支持一下团长,团长生日快乐。:loveliness:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-7-27 15:37 , Processed in 1.082031 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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