EMU618社区

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

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

 关闭 [复制链接]

该用户从未签到

发表于 2009-8-13 20:14:40 | 显示全部楼层 |阅读模式
[tr][td]   2 [3 s4 d; _% ^/ ]) v
PC Game Hack -- DLL Relocation
/ B! {8 K1 m2 c; Y" k" T2 |, [
Author: Krizal Chen + U$ @  f$ V+ \% v) B) C; z2 W
HackerTeam: VirusDream7 5 z- Z: j. X9 u! Y  H2 T7 B
Original: DarkShadow GameHackTeam
- Y3 c- t' K% H$ o9 }
WebSite:http://kenkuroro.t35.com 1 |& y  R6 A4 e
Blog:http://tw.myblog.yahoo.com/dsght-krizal
, W0 r; s; s) z" l3 F$ j5 E
- H& I/ B# G9 L7 o7 o& |0 A
$ Q! @7 _$ q5 J9 m  ?
/ p2 a. n7 w) o+ u+ T6 G
昨天2009/08/12 Thursday
6 G; L3 y0 n& n+ ~  E
我們家的寶貝米格魯 - ミル,生了七隻小寶寶,
# P+ Y$ a, l; J+ ~2 s
雖然三隻夭折了,不過新生命的誕生仍然值得祝賀,
& v  X/ o# j1 q
希望那三隻可愛的寶寶也能早日投胎。
9 @3 Q- L; p. ^* g9 J! h
) C0 B  y4 L7 Y# N' c! _
明天是本人的生日, ; v1 r, g7 `- \$ V) U' ^% d
依照慣例都會發一些Hack ROM,不過最近很忙沒什麼時間, / N. G5 t1 O8 v4 ~) ]- s  R6 L8 M
於是把我這禮拜Hack某西的某些資料,整理簡化寫個教學,
+ i1 U" |; V+ ~" A) j, z
適用於PC Game Hack或是加密解密的應用。 1 T( c) n- S3 X
! A& m& h2 m( \  L' V* _4 k8 o
' G5 x/ R- ~! m- ~! k1 O" p

* [9 v3 p# D2 a& D) v* n

: _; @8 }2 t9 _
首先我們先了解什麼是重定位?
. a0 z1 e7 y/ X2 M& v7 r' [
2 L$ z, o- [2 V" ^4 H: f. b
一般Windows執行檔EXE,
. F1 j' S( O0 Y7 M0 ~; j# w
於執行中系統會想盡辦法,讓EXE定位在ImageBase上。 8 X' O7 @9 C( b0 `- B) f! m+ W1 K
但是DLL並沒有辦法獲得保證,所以需要重定位資料, ; \  |% `, m3 J- M& _: N$ z
使DLL重新定位,否則可能造成程式執行上的錯誤。 2 D  r8 t9 T" `; e

& |! S# S) y9 J' }3 C' I: K

& L* J2 Y% N8 q$ N0 n: h- R
什麼時候需要重定位?
# e! l0 p4 D, L  ^( h% u/ X
( a3 t- X- x# `5 H7 g, S
當我們修改完DLL的時候,都必須進行重定位修復。
( o1 P# N1 N1 i& M' `
ex:
- X! y5 g: `3 C; u7 j; e& xOriginal: 8 O  e" {+ {" X. l) }4 |7 o. L
005269A8      6A 00               push 0

! l, `5 x  ~0 E) [005269AA      6A 00               push 0 ( M* s- ~+ _& D5 o  I9 ^: H1 g7 ?6 N
005269AC      E8 72000000         call Visual.00526A23
  u( ]. S( V; T+ d3 j7 r; R: `; S* a, }& J
After: ( d5 G/ {' B4 Z
005269A8      68 10695300         push Visual.00536910 7 y4 D) V" Y: B" {6 E8 [
005269AD      68 20645200         push Visual.00526420
# D8 L& \9 Y4 G" h; X' l5 ?' |  f005269B2      E8 6C000000         call Visual.00526A23
2 p8 t0 U! `; Y0 a/ B
/ g% _6 u- F: P! h
當以上程式碼經過修改後有兩段需要進行重定位: ! b, w2 x3 D3 s4 O2 W
005269A8      68 【10695300】       push Visual.00536910
. j: G; Q3 l3 H4 [3 f: @! }6 ~005269AD      68 【20645200】       push Visual.00526420 ; P5 L, ]8 }  u, q& b# C2 u/ `8 q
005269B2      E8  6C000000         call Visual.00526A23 * H' x" N8 X: L+ I1 c
Must be relocated Address: 0x5269A9 & 0x5269AE 3 R' a$ H$ Z) j

* R5 W; r( @* e3 W實際範例: 8 h* f- u1 b4 R/ v; U( b; y
  V; V) r/ I6 a) ]. y  L$ b+ Z
本人使用了C++撰寫了一個DLL Demo和DLL Loader,
) T, l$ l# V' C; {4 |給大家方面練習,下載於附件。 # m$ Y7 B: B" X8 M( o' X
5 U+ E- H6 I+ o1 g; x
修改目的,讓MsgBox彈出顯示字串。   m- S4 I& J6 g+ R* Z
, B+ J9 T% Z4 x$ E6 d7 F1 U8 m  G
P.S. " I9 f9 V6 c1 @
為了讓初學者快速上手,DLL已經處理過,
5 |$ N" E2 ^9 I4 N可以直接使用RVA,且更改ASM時也預留了很多空間。
+ C: O' H# b3 r2 O, ~, y# ?9 E5 ?突然看到ASM程式碼下面很多NOP,絕對不是偶然   ^_^
8 m" k# V, Q3 p7 ]& ?6 q! a; n
6 `9 G. ]8 c) k: \8 q8 C
游客,如果您要查看本帖隐藏内容请回复
+ [$ {6 P' u( N0 u" ?. r( _5 L
! t5 N* m1 X; k6 h$ F
[ 本帖最后由 krizal 于 2009-8-13 20:25 编辑 ]

评分

2

查看全部评分

签到天数: 1487 天

[LV.10]以坛为家III

发表于 2009-8-13 22:17:56 | 显示全部楼层
汗...0 A# A* `0 b/ c; E, `* P5 U
看不懂,纯支持了
) ]9 Q6 d. w- V+ l! s7 K+ p: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 | 显示全部楼层
那个 好象我顶过团长的这帖了! Y7 O* {3 `9 _- e6 X
论坛回滚:funk:

该用户从未签到

 楼主| 发表于 2009-8-14 18:32:42 | 显示全部楼层
跟原始資料比較起來這個應該很簡單,
3 p3 e3 U- g5 M1 e% ^已經有盡量簡化過了,希望各位能有所得。  G7 l% e, ]) W5 {  ^3 O9 q! A
學會後對於Hack DLL 很有用處。
5 Z+ V/ [+ e, [# j- [5 y9 I; O( X) O& K+ X. a
PS:
0 u" e* B3 B7 q$ Z8 c0 ]4 }% E1.MessageBox 可以自行呼叫ASCII 或是WideChar格式的,
: z6 T, ?# A- f! K! _但是記得更換字串書寫格式。
, Q3 N0 g9 T: v1 [3 }5 e+ j2 }0 x! C4 w
2.此DLL其實更改後需要修復3處,# }0 O4 ^, m6 d  E8 r
最後一處蠻簡單的,就留給大家當Homework。

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

签到天数: 1870 天

[LV.Master]伴坛终老

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

本版积分规则

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

GMT+8, 2025-2-24 01:13 , Processed in 1.080078 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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