设为首页收藏本站

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

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

  [复制链接]

该用户从未签到

发表于 2009-8-13 20:14:40 | 显示全部楼层 |阅读模式
[tr][td]     r4 m) d, l) y
PC Game Hack -- DLL Relocation ' x+ F- a9 g4 z' s# C7 e# Q
Author: Krizal Chen
' Y6 i, W/ ?6 }) n
HackerTeam: VirusDream7 / X' w# {) Q) p. i1 {
Original: DarkShadow GameHackTeam 2 _& A# P0 q9 a0 D% f+ n
WebSite:http://kenkuroro.t35.com
4 f! B( k4 u. c; l1 g
Blog:http://tw.myblog.yahoo.com/dsght-krizal
  `3 }) M% d, C9 Z+ x8 ]0 i

+ {5 N) ^- `3 U" \  ]( N& u

, D; W0 \- ~3 H0 k; C2 B( W7 Y9 m
# B( _" Z. f5 Q
昨天2009/08/12 Thursday
0 D& k# c* Y3 `' r, `
我們家的寶貝米格魯 - ミル,生了七隻小寶寶,
; Q8 Y7 z" ]8 R2 W( C
雖然三隻夭折了,不過新生命的誕生仍然值得祝賀, 2 R; T; U5 b3 t+ _7 W- S
希望那三隻可愛的寶寶也能早日投胎。 & ?" v. y# b) Y3 k% z. B) @8 O
1 m. N0 S  `; G& a* e" T
明天是本人的生日, ; U  d/ M& v( _7 E/ S% k, c
依照慣例都會發一些Hack ROM,不過最近很忙沒什麼時間,
; I4 \' U1 {  p! ^1 d" S) t
於是把我這禮拜Hack某東西的某些資料,整理簡化寫個教學,
1 y5 D! @. b  d0 Z
適用於PC Game Hack或是加密解密的應用。 # H. w* p1 i. U* X! N
2 E1 ?  [  W. y3 g1 z" i2 O. I
$ [8 o( B: `( H6 g4 w- X3 W9 S
% s% t0 S* G5 y3 v

& H* i# D8 k, O4 U' `- t
首先我們先了解什麼是重定位?
1 H4 z! x) a& Y. x% E

3 p2 Y0 x: B* F' R; z, a6 C
一般Windows執行檔EXE, 5 }) \2 \5 W  Q! h% i$ G4 q3 x3 K. @7 W) k
於執行中系統會想盡辦法,讓EXE定位在ImageBase上。
) L- n  j- z7 U3 ?9 R- R" R1 R
但是DLL並沒有辦法獲得保證,所以需要重定位資料, 5 j) x" o/ r( C" X( u+ g7 F( q4 `* o
使DLL重新定位,否則可能造成程式執行上的錯誤。 " E8 y, F9 ^( ?* _+ _/ F: Q, e

3 e0 L4 P3 z; I2 x0 }/ r! Y" ]

, D2 n8 ?, \- A/ c5 q! ?
什麼時候需要重定位? . f3 T( B  D0 B8 h# E5 V5 a+ ~3 p

) Y4 I  Y( \) a
當我們修改完DLL的時候,都必須進行重定位修復。
5 s4 a. L0 \9 @
ex:
9 `7 S9 N- c/ h7 ~Original: ) @0 j5 L3 t) x/ Y
005269A8      6A 00               push 0
; Z3 i4 l- J5 ?) Y; o5 z2 b; c; c
005269AA      6A 00               push 0
/ U% n3 F( |. ?# X005269AC      E8 72000000         call Visual.00526A23 - ?5 c' G- f( _) K3 d

3 V, p6 l8 L2 j+ d( O2 ~After:
; _6 w7 E% [0 B3 A, z005269A8      68 10695300         push Visual.00536910 $ |# j/ i- s$ q7 K- L  q' z
005269AD      68 20645200         push Visual.00526420
; ]( I+ S5 V( E! H005269B2      E8 6C000000         call Visual.00526A23
* P# ]) J/ H9 H3 C2 m+ y3 Y7 l0 ^) f, Y# U! O! B0 S8 |! I7 d
當以上程式碼經過修改後有兩段需要進行重定位:
$ r8 j) F+ q4 P& T9 p
005269A8      68 【10695300】       push Visual.00536910 5 c3 u0 a& n) j( |7 Z; q& l
005269AD      68 【20645200】       push Visual.00526420
9 m  T- o: B& [5 b005269B2      E8  6C000000         call Visual.00526A23
. A$ \! |+ \* s. \( z+ `$ UMust be relocated Address: 0x5269A9 & 0x5269AE 5 H; q! V. i* s" @7 V& H) v
- \" l; h: \" `9 {  [2 U/ J& r+ m
實際範例:
( a0 n: g3 Z. \5 A* H0 [' {
" x- d$ ?/ g5 B6 r7 I本人使用了C++撰寫了一個DLL Demo和DLL Loader,
) k- G) y9 s! O3 t給大家方面練習,下載於附件。
4 r" t" a4 P% N3 Q! c4 ]. n2 M, T# b3 _; e
修改目的,讓MsgBox彈出顯示字串。
% T6 L' G- F. {/ T1 O  N
# i) T5 g5 m7 F* IP.S.
- U3 m  s1 `5 x* ]4 `為了讓初學者快速上手,DLL已經處理過, # s( c' K, H3 d
可以直接使用RVA,且更改ASM時也預留了很多空間。
) Z. X3 V' j9 e: C; L2 `2 h突然看到ASM程式碼下面很多NOP,絕對不是偶然   ^_^ + W& F$ I# R. e3 l6 S
8 g  @/ i' l$ G- y  C
游客,如果您要查看本帖隐藏内容请回复
( ?! h( \) {! M- h- H8 C. `3 ^

, m% |0 Q5 E8 P: m4 _& W[ 本帖最后由 krizal 于 2009-8-13 20:25 编辑 ]

评分

2

查看全部评分

签到天数: 1535 天

[LV.Master]伴坛终老

发表于 2009-8-13 22:17:56 | 显示全部楼层
汗...
; {% E) H0 w+ ?: y% z看不懂,纯支持了8 p/ Z" T( c  k8 C3 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 | 显示全部楼层
那个 好象我顶过团长的这帖了
# F9 d6 _9 R( C. w论坛回滚:funk:
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-8-14 18:32:42 | 显示全部楼层
跟原始資料比較起來這個應該很簡單,( f- U; M' F4 I1 o& [, x
已經有盡量簡化過了,希望各位能有所得。4 v5 }( L: J- m8 A
學會後對於Hack DLL 很有用處。6 n7 i, a# ?/ G0 [

; u; b1 {0 T' n6 l0 g7 F; D( s/ zPS:6 O4 b2 P2 }1 P/ {: W7 Q% ~- R2 K
1.MessageBox 可以自行呼叫ASCII 或是WideChar格式的,. P+ V0 D8 U' W' g) \
但是記得更換字串書寫格式。
3 l8 X# _  R6 ]7 i' R
* ~# j( _: U( U" {2.此DLL其實更改後需要修復3處," {. Z! A% P. C- X8 E9 J! _% ]+ ~% ^
最後一處蠻簡單的,就留給大家當Homework。
回复

使用道具 举报

该用户从未签到

发表于 2009-8-14 21:03:11 | 显示全部楼层
睡起来看看,在顶一帖
回复

使用道具 举报

头像被屏蔽

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

签到天数: 1913 天

[LV.Master]伴坛终老

发表于 2009-8-17 20:25:26 | 显示全部楼层
来迟了,支持一下团长,团长生日快乐。:loveliness:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-6 04:47

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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