设为首页收藏本站

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

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

  [复制链接]

该用户从未签到

发表于 2009-8-13 20:14:40 | 显示全部楼层 |阅读模式
[tr][td]  
$ ]' k7 Y7 i) g0 l! F! n0 I
PC Game Hack -- DLL Relocation 9 y+ o9 x7 r8 `) k
Author: Krizal Chen & i; B0 k1 g, h; I$ R- L
HackerTeam: VirusDream7 8 M% X0 b5 O( m) Y2 \
Original: DarkShadow GameHackTeam
2 ~: M7 E4 d( ?0 A% ?9 j$ C
WebSite:http://kenkuroro.t35.com
6 M% m" k) {: K& w! G
Blog:http://tw.myblog.yahoo.com/dsght-krizal
. C5 K" T9 b, @. Z
; H" R6 x  ]; I# J9 p9 J
. `2 m2 R1 ^" V+ U" K  P
' ?! J8 u# n7 q4 u
昨天2009/08/12 Thursday 3 K5 i' |0 c7 M2 b4 N4 J4 ?3 ?
我們家的寶貝米格魯 - ミル,生了七隻小寶寶, & k# T0 n' E0 p3 q; q  u
雖然三隻夭折了,不過新生命的誕生仍然值得祝賀,
- m  }' W& q4 ?/ X- i, i
希望那三隻可愛的寶寶也能早日投胎。 ( @! }( z+ V7 q. A* E

1 m* D( M+ h% F! X5 K. m
明天是本人的生日,
: k  H6 w+ g! `; P5 S
依照慣例都會發一些Hack ROM,不過最近很忙沒什麼時間,
1 p0 R8 Q  g# d& b2 r! K
於是把我這禮拜Hack某東西的某些資料,整理簡化寫個教學, ! ~( k" {; s) J) A
適用於PC Game Hack或是加密解密的應用。
" z: X/ @# G4 y0 g
  T7 E+ a4 Y& }5 P) v- P- j  `

0 G4 t+ }. K+ x: h; D. h5 w
- i7 b0 H4 T% Y! i+ ~, t' ?7 F" E
$ y2 m% R) l) ^& n/ ^
首先我們先了解什麼是重定位? ( x* N* ^3 F' X; S
. N7 D4 G2 N2 `& @% j: ]; Z5 R( S8 ^
一般Windows執行檔EXE,
1 O5 Q- ]1 x% W1 R6 ]3 Y  q
於執行中系統會想盡辦法,讓EXE定位在ImageBase上。
- _. Q5 T! o" @- I8 f$ n
但是DLL並沒有辦法獲得保證,所以需要重定位資料,
! `9 k# ^. p% F# t
使DLL重新定位,否則可能造成程式執行上的錯誤。 ( |, d7 E# l1 G9 N2 Q7 B

) Q, q; q' N+ B9 L7 f9 T1 k+ Y
  J4 y- V+ d9 j; \# O
什麼時候需要重定位? " v9 G5 W/ U) `, w1 z
8 l- s$ Q, f+ m- P* S
當我們修改完DLL的時候,都必須進行重定位修復。 7 b6 N/ K: ^8 |+ ?# D
ex:
; s* A- `6 p# t* \% nOriginal:
8 M* i/ E; i7 o8 ?: P7 Y5 t005269A8      6A 00               push 0

/ M% z- U' r2 a# ^1 w005269AA      6A 00               push 0
* R8 C$ Y# X9 z2 W! E' d* h4 J7 F005269AC      E8 72000000         call Visual.00526A23
# P( Z- v( f. j9 A/ n& W4 P$ ~% F: n$ S
After: ) a+ A9 Z+ D& s& l6 E/ z( t
005269A8      68 10695300         push Visual.00536910 3 N# P  z: @- q8 Q
005269AD      68 20645200         push Visual.00526420 4 i; }! l) N, K
005269B2      E8 6C000000         call Visual.00526A23
1 j" [% J* o/ q6 u9 w  I( c3 l5 M) Q  a& v2 f1 D
當以上程式碼經過修改後有兩段需要進行重定位:
0 _$ K( J6 B9 B" w
005269A8      68 【10695300】       push Visual.00536910 ' w' u( M0 f* N( U( {
005269AD      68 【20645200】       push Visual.00526420   v9 p) I* L5 W! g  m. C  t
005269B2      E8  6C000000         call Visual.00526A23 7 ~. ]7 d$ D" m1 h' {1 S# _  f! G/ \
Must be relocated Address: 0x5269A9 & 0x5269AE ) c4 N. `$ {6 W- ?
$ f1 ?! q( x/ Q7 V2 Z. ~0 O2 H3 Z
實際範例: . H& b: ?1 R& W( {- X
# {3 z0 |) K0 q, m: y" _
本人使用了C++撰寫了一個DLL Demo和DLL Loader, ' g- X$ f) \# Q: y) O: O
給大家方面練習,下載於附件。
, i' {8 T2 b$ O0 M' ]/ E: ]
6 C' k4 P1 e# O修改目的,讓MsgBox彈出顯示字串。
1 w* T8 E+ A! _0 Z' o% _% r/ C. W% _1 l1 s% {" e2 z3 }: d" p# `* H
P.S.
' {9 z! C3 Q  n  D+ T- B為了讓初學者快速上手,DLL已經處理過, # ?' O5 f: J# @) B( P9 p
可以直接使用RVA,且更改ASM時也預留了很多空間。
  J, {) e. }/ z, S; d! m; _突然看到ASM程式碼下面很多NOP,絕對不是偶然   ^_^
3 f) `) L' p- \: U+ x2 [
4 Z1 ]% e$ `; R% s5 a. H3 \8 _6 Z
游客,如果您要查看本帖隐藏内容请回复
" {- D3 K! A% P# E

$ S2 M7 {6 i; R# }. N[ 本帖最后由 krizal 于 2009-8-13 20:25 编辑 ]

评分

2

查看全部评分

签到天数: 1651 天

[LV.Master]伴坛终老

发表于 2009-8-13 22:17:56 | 显示全部楼层
汗...
# U7 ^0 p" K. e8 m* t看不懂,纯支持了
/ n$ w+ y) c0 n8 J2 }+ T: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 | 显示全部楼层
那个 好象我顶过团长的这帖了( Z$ K0 P# Q" _) Q. ^& S
论坛回滚:funk:
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2009-8-14 18:32:42 | 显示全部楼层
跟原始資料比較起來這個應該很簡單,1 O6 U. Y& i* n$ i5 k$ T7 c
已經有盡量簡化過了,希望各位能有所得。) j" n' c! p; `9 y9 U' k. l
學會後對於Hack DLL 很有用處。
, n) @2 i" x" e2 |" r- b# {# F( q6 |0 g1 Z8 y- ~; s+ q  h
PS:7 ^! x+ ?9 \& V3 L( Y) D
1.MessageBox 可以自行呼叫ASCII 或是WideChar格式的,
& L! H8 ?- P( g! [/ T3 M0 A但是記得更換字串書寫格式。; V& }! I/ N$ O0 |) y

  G, r% r' y5 v" d; z6 [: s2.此DLL其實更改後需要修復3處,/ x7 L& \7 M: j" `4 R: s* p
最後一處蠻簡單的,就留給大家當Homework。
回复

使用道具 举报

该用户从未签到

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

使用道具 举报

头像被屏蔽

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

签到天数: 2032 天

[LV.Master]伴坛终老

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-5 02:22

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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