由于这个程序很短,OD里面的汇编代码也很短。 $ e8 q T& `/ i$ U+ ]3 S
请看红色的部分,这就是和0x80比较的部分。 , [% I8 n9 i7 ?# L! P9 e
把这2句NOP掉,然后保存修改后的文件为exe。
# r# [1 m T; L; x: O我们发现input.txt里面的所有内容都能被输出了。 9 L0 H# |/ o, |7 V
附上修改后的exe. 2 O3 b3 k/ y# ~7 s
深绿,你可以把这个操作过程试一下,练习一下.
% U& L+ G- x' h6 L1 `/ ?: d* y5 b) J$ ~! h- a
00401000 /$ 55 push ebp
$ e0 E H2 c: {/ u* B% F00401001 |. 89E5 mov ebp, esp {5 g c. h9 D: {1 \
00401003 |. 83EC 18 sub esp, 18 % a! ~" w0 @! z2 {" U
00401006 |. C745 FC 00000>mov dword ptr [ebp-4], 0 , g! ?; c6 f* Y2 S
0040100D |. 83C4 F4 add esp, -0C 8 T1 e/ n3 R/ ~3 q' ]! f. r
00401010 |. 8D45 FC lea eax, dword ptr [ebp-4]
$ Y/ G! x# y. q! B# Z& _00401013 |. 50 push eax
- w3 X* `0 I% M: h" [1 W: _$ B00401014 |. FF35 08204000 push dword ptr [402008]
( b2 W6 {3 S3 S) f2 j( e# x0040101A |. 8D45 F8 lea eax, dword ptr [ebp-8]
Q' a4 W; t2 n8 Z$ l9 ]0040101D |. 50 push eax
6 w0 I5 T3 c# c0 l, n0040101E |. 68 04204000 push 00402004 + D4 m a% i* M, l! q+ N% _
00401023 |. 68 00204000 push 00402000 . S2 z* b+ |9 Q" r6 I; C, U
00401028 |. E8 EB030000 call <jmp.&msvcrt.__getmainargs> $ {7 E' j2 w. C+ d1 c' A9 a
0040102D |. C9 leave . q. [& ~: C5 T4 L
0040102E \\. C3 retn 7 G$ P( }* L6 g
0040102F 90 nop ) |; d, ?* I4 ]" d
00401030 /$ 55 push ebp ; ^6 t/ V) f' C( v1 |' |
00401031 |. 89E5 mov ebp, esp
' ^! z7 u! {( |; h: s00401033 |. 83EC 08 sub esp, 8
4 } `1 z1 u4 [8 `) }% X00401036 |. 8B15 0C204000 mov edx, dword ptr [40200C] - \7 X3 D( y1 d+ k
0040103C |. 85D2 test edx, edx
$ Y1 _' B5 Y% f0040103E |. 74 7B je short 004010BB
9 Z e, b% b6 ?" f00401040 |. A1 AC304000 mov eax, dword ptr [<&msvcrt._fmode>> ; c3 X9 i- I' V6 w" Q% k: O
00401045 |. 8910 mov dword ptr [eax], edx
" W) m* G7 Q3 c1 S" w9 h. U+ j00401047 |. A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
1 M3 Y& s0 s% u0 o0040104C |. 85C0 test eax, eax
( `- A9 s& j; Q, |" M- Q) [, x0040104E |. 74 1E je short 0040106E
- ?) T8 }& J( s# H00401050 |. 83C4 F8 add esp, -8
! S, ?8 K- }2 R5 C" S00401053 |. FF35 0C204000 push dword ptr [40200C] - c( U/ X' V5 n# ^
00401059 |. 83C4 F4 add esp, -0C 1 O6 a' _/ {; r( m6 m6 r
0040105C |. 50 push eax ; /pstream => offset msvcrt._iob
5 {7 W! u' d3 F. i, P0040105D |. E8 A6030000 call <jmp.&msvcrt._fileno> ; \\_fileno 8 J6 |" W0 x! @1 e3 C2 Q' X
00401062 |. 83C4 10 add esp, 10
% k! ^$ {: W w: e( ~6 o00401065 |. 50 push eax ; |handle 0 @' `. J# j" O H! l$ g- R
00401066 |. E8 A5030000 call <jmp.&msvcrt._setmode> ; \\_setmode ) s! r& t$ F( o; {. S! f
0040106B |. 83C4 10 add esp, 10 7 y- R. ~- R/ c9 L# O0 W0 W5 ~
0040106E |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] ( H( Y" h* {+ J( S. q8 q3 c9 J
00401073 |. 83C0 20 add eax, 20
8 E0 { P) I9 c00401076 |. 74 1E je short 00401096
4 J- l5 v4 |; r; r00401078 |. 83C4 F8 add esp, -8
8 W9 \& k3 ^0 n6 w. P0040107B |. FF35 0C204000 push dword ptr [40200C]
% j1 s& H; K% y3 C; N: L3 l00401081 |. 83C4 F4 add esp, -0C
5 N( D, C5 G& [/ ^/ h7 ]: W/ V00401084 |. 50 push eax ; /pstream
- w a2 b/ Q( O- Q00401085 |. E8 7E030000 call <jmp.&msvcrt._fileno> ; \\_fileno
$ _ o( p( ~5 `8 _' K1 w$ F5 k0040108A |. 83C4 10 add esp, 10
) q1 A! c+ Y( ^0040108D |. 50 push eax ; |handle . v: g( Z4 L! n3 |3 X
0040108E |. E8 7D030000 call <jmp.&msvcrt._setmode> ; \\_setmode
9 T$ Y0 ~8 H2 H* D9 W0 P) m' ?; ^ b00401093 |. 83C4 10 add esp, 10
5 {8 l }2 W! u00401096 |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
+ J: n) i1 V q3 P! d3 ] w0040109B |. 83C0 40 add eax, 40
+ n" P/ S A7 I" H) J0040109E |. 74 1B je short 004010BB
# O1 j a9 E, n: q' z& U004010A0 |. 83C4 F8 add esp, -8
% R3 j# y8 E; G% j9 C004010A3 |. FF35 0C204000 push dword ptr [40200C] # \! @. g8 k2 M# L! t- K- P
004010A9 |. 83C4 F4 add esp, -0C
) g1 }& U: ^' ^. h, a004010AC |. 50 push eax ; /pstream ; W+ M0 j+ \2 @. q( l
004010AD |. E8 56030000 call <jmp.&msvcrt._fileno> ; \\_fileno # R9 z6 ~4 p6 X S/ ]1 ?
004010B2 |. 83C4 10 add esp, 10
. y: }9 f* {$ I! a! l$ X6 E8 S004010B5 |. 50 push eax ; |handle 3 D) K5 H& v; y& J$ l
004010B6 |. E8 55030000 call <jmp.&msvcrt._setmode> ; \\_setmode 2 u& q7 k' l6 H D! ^+ p, ]+ F
004010BB |> C9 leave
$ w; e3 l, w t; ~. U7 U004010BC \\. C3 retn . U+ [4 e9 c4 g# ~$ w/ t" i% c9 v6 o. o
004010BD 8D76 00 lea esi, dword ptr [esi] 4 h' k+ Y1 S7 k0 Z, F% H
004010C0 /. 55 push ebp
% h& ^) g* N4 ?, @: |5 j+ R4 }004010C1 |. 89E5 mov ebp, esp
, F! X. [- D8 h+ o004010C3 |. 83EC 10 sub esp, 10 ' X& u$ B0 |1 d" [5 v
004010C6 |. 56 push esi ! P* [' {7 U, G$ Q2 W
004010C7 |. 53 push ebx 6 b6 q+ R+ u* Z# e* H5 ^" \
004010C8 |. 8B45 08 mov eax, dword ptr [ebp+8]
- B5 `9 s6 C5 F, M4 T1 X9 I6 e/ F6 [) c004010CB |. 31DB xor ebx, ebx 6 q* B( a5 a/ H% X; g% X6 s" Q7 R
004010CD |. 31F6 xor esi, esi
& y; ?7 h- r- M7 f( \. n004010CF |. 8B00 mov eax, dword ptr [eax] 8 F8 r2 ~6 r9 g$ w
004010D1 |. 8B00 mov eax, dword ptr [eax] % _% \% x s' j
004010D3 |. 3D 910000C0 cmp eax, C0000091
' q, n4 W1 b: f; g/ Q004010D8 |. 77 16 ja short 004010F0
1 k8 l" v; r; a1 a8 b004010DA |. 3D 8D0000C0 cmp eax, C000008D
; B' ` q0 k* [3 [( K1 r004010DF |. 73 4F jnb short 00401130
3 ~1 X9 c$ i$ P9 s: ~% {$ R004010E1 |. 3D 050000C0 cmp eax, C0000005
( t& z& U3 e" v9 [& {004010E6 |. 74 18 je short 00401100 7 P+ \) ^! \6 |
004010E8 |. E9 86000000 jmp 00401173
4 s4 C# k. F4 p* l. X4 b( ]) i004010ED | 8D76 00 lea esi, dword ptr [esi]
6 ?" p) E! b1 O* Y004010F0 |> 3D 930000C0 cmp eax, C0000093 8 n5 w. _) s, Z0 m
004010F5 |. 74 39 je short 00401130
1 P+ Y K+ u- h004010F7 |. 3D 940000C0 cmp eax, C0000094 ' }- b1 d$ A# S' l
004010FC |. 74 37 je short 00401135 9 h) O+ A4 o% m4 u, V; ]
004010FE |. EB 73 jmp short 00401173
) V; Z6 M: @9 D3 |00401100 |> 83C4 F8 add esp, -8 / u) H+ d& _3 S$ O; }/ ~* s$ U- y/ i
00401103 |. 6A 00 push 0 ; /func = NULL
& c& G( I, u) }* \; R00401105 |. 6A 0B push 0B ; |sig = SIGSEGV ( A* e& F( n3 g
00401107 |. E8 F4020000 call <jmp.&msvcrt.signal> ; \\signal & [' C% d3 T2 v- r# `
0040110C |. 83C4 10 add esp, 10
5 J& O; T8 M* U: h) a! }: e# [0040110F |. 83F8 01 cmp eax, 1
% T$ | y, Q, Q/ [00401112 |. 75 0E jnz short 00401122
8 L: R5 w/ x2 v5 P$ ^. d. c% h4 M c00401114 |. 83C4 F8 add esp, -8 2 R/ w, @3 ^4 A, f3 m
00401117 |. 6A 01 push 1 ; /func = 00000001 . C9 p+ l% N7 ^5 p. }
00401119 |. 6A 0B push 0B ; |sig = SIGSEGV l$ R: S* P4 L# S& o- v
0040111B |. E8 E0020000 call <jmp.&msvcrt.signal> ; \\signal
% V3 x8 R- l5 @1 C6 r00401120 |. EB 4C jmp short 0040116E # t+ p8 ?! i& {5 |
00401122 |> 85C0 test eax, eax
( @$ Z) ?) c& ~0 [* e! _! X* z% b00401124 |. 74 4D je short 00401173
' b0 ~- q7 I3 L. m9 T- Z" g, x. ~00401126 |. 83C4 F4 add esp, -0C 5 e+ t) p2 O$ Q( B% S- f$ K& {
00401129 |. 6A 0B push 0B
/ `; x7 r( i* ~8 g0040112B |. EB 3F jmp short 0040116C
T2 }8 ? Y; Z$ E- J6 J0040112D | 8D76 00 lea esi, dword ptr [esi] ( D+ ?' X2 h5 u- B8 Y* j
00401130 |> BE 01000000 mov esi, 1 + F! N9 t* [5 J$ w! l6 c
00401135 |> 83C4 F8 add esp, -8
* \' C4 ~+ W g3 y$ ~- U00401138 |. 6A 00 push 0 ; /func = NULL % `5 y( a! p- s P
0040113A |. 6A 08 push 8 ; |sig = SIGFPE
2 o! P4 Q7 ]6 X4 p% U6 V9 d0040113C |. E8 BF020000 call <jmp.&msvcrt.signal> ; \\signal , I6 o; g- ?( ^9 @' ~/ E! v
00401141 |. 83C4 10 add esp, 10
; y% H/ w! ` ]7 k, r00401144 |. 83F8 01 cmp eax, 1
$ Q$ J4 s% c1 e& x00401147 |. 75 1A jnz short 00401163 - k$ T3 S) Q$ G
00401149 |. 83C4 F8 add esp, -8
# I: x3 ?) ~6 c# Y9 E* Y0040114C |. 6A 01 push 1 ; /func = 00000001 , J' @! ]1 g* n" L0 S% V! r4 F$ V, y
0040114E |. 6A 08 push 8 ; |sig = SIGFPE * I/ S6 T- a1 \! E, Y
00401150 |. E8 AB020000 call <jmp.&msvcrt.signal> ; \\signal
" ]* S6 a* T0 m$ z00401155 |. 83C4 10 add esp, 10 ' E* N" b8 j5 p- r/ ^, t
00401158 |. 85F6 test esi, esi : G- O' B. L# [
0040115A |. 74 12 je short 0040116E 8 ]2 C9 D+ m' f9 }& n
0040115C |. E8 97020000 call <jmp.&msvcrt._fpreset> ; [_fpreset * l# t r4 u& w5 O7 w
00401161 |. EB 0B jmp short 0040116E
/ O) ?' e, G7 G% \5 s: A7 A# v7 h$ U* S6 C00401163 |> 85C0 test eax, eax
& R+ d$ u1 H3 R( X00401165 |. 74 0C je short 00401173
/ B) w3 a3 P J2 w% ^00401167 |. 83C4 F4 add esp, -0C
/ @0 r Q7 F% i3 K$ n% [0040116A |. 6A 08 push 8
) U9 s4 y% n# V8 F, L9 Z0040116C |> FFD0 call eax / N0 c& S7 Z T# A- L
0040116E |> BB FFFFFFFF mov ebx, -1
2 {0 O6 u- r& g, {' }5 F00401173 |> 89D8 mov eax, ebx 2 l' o; v+ w. Z
00401175 |. 8D65 E8 lea esp, dword ptr [ebp-18] & _/ v& B' G# c; }7 F4 W$ w1 T( h
00401178 |. 5B pop ebx 6 T2 ^- v+ r) H0 T c
00401179 |. 5E pop esi
/ i+ B, N) x/ _% J& \* ^0040117A |. C9 leave # m# e; X) |, [1 ~$ J! e' @0 q
0040117B \\. C2 0400 retn 4 ; b0 U( s6 k; H/ E/ I
0040117E 89F6 mov esi, esi ! w2 y$ G) \9 Q2 ^4 f) p3 N
00401180 /$ 55 push ebp ) n9 A t. s' f* k* o1 q" f H7 I
00401181 |. 89E5 mov ebp, esp ! e$ Y& O1 G; s2 c' V
00401183 |. 83EC 14 sub esp, 14
. d. x: L2 I2 u y8 o00401186 |. 53 push ebx ( B0 H/ D' a1 D( n
00401187 |. 83C4 F4 add esp, -0C * P. I9 P! _# J9 N/ d: ~7 Z% s6 z
0040118A |. 68 C0104000 push 004010C0 ; /pTopLevelFilter = engoutpu.004010C0
3 R4 P% y8 v+ u& ?0040118F |. E8 B4020000 call <jmp.&KERNEL32.SetUnhandledExcep>; \\SetUnhandledExceptionFilter 2 u/ d% u) \4 `. j
00401194 |. 83C4 FC add esp, -4
3 @" `) `. ~- P00401197 |. E8 5C020000 call <jmp.&msvcrt._fpreset> ; [_fpreset
8 [0 b( G$ I n! Y- G# I: r' J0040119C |. E8 5FFEFFFF call 00401000 : L/ K6 s6 W* _# |. }9 z0 x/ \
004011A1 |. E8 8AFEFFFF call 00401030
: u* o5 R- H. N/ {# n2 I004011A6 |. 83C4 FC add esp, -4
: A: Z( G% H- E' p4 D004011A9 |. E8 42020000 call <jmp.&msvcrt.__p__environ>
9 U! W) ~% ?/ A8 c! D% b- }004011AE |. FF30 push dword ptr [eax] 5 n9 G7 s; x& j9 @7 y g% w; q r
004011B0 |. FF35 04204000 push dword ptr [402004] ' @1 `! i7 f/ w5 C; ^
004011B6 |. FF35 00204000 push dword ptr [402000] 0 q0 M& W# A) b8 z
004011BC |. E8 AB000000 call 0040126C 1 x3 m& r) ~! ~4 _
004011C1 |. 89C3 mov ebx, eax
2 ]1 P0 R- R/ N' U004011C3 |. 83C4 20 add esp, 20 & A( I: x& x+ P! k- |3 k. X
004011C6 |. E8 1D020000 call <jmp.&msvcrt._cexit> ; [msvcrt._cexit
1 i3 {( d8 c' C0 a004011CB |. 83C4 F4 add esp, -0C ' u0 x4 a; h, z3 h9 D
004011CE |. 53 push ebx ; /ExitCode , p7 ^ ^6 V2 F
004011CF \\. E8 7C020000 call <jmp.&KERNEL32.ExitProcess> ; \\ExitProcess 2 s: A. p* O( y0 e X
004011D4 >/$ 55 push ebp ) q$ T+ X5 _$ V2 m2 k4 Z' r& K
004011D5 |. 89E5 mov ebp, esp ( m8 z/ X+ f( i0 ^/ e( t
004011D7 |. 83EC 08 sub esp, 8 % [6 @: J. X8 x8 \6 q& E m: ?1 c
004011DA |. 83C4 F4 add esp, -0C
( V' ^: c4 a4 E! A' D004011DD |. 6A 01 push 1
4 x! Q N+ u3 l# Q7 M. @/ s. H004011DF |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> 0 N0 ^9 l: f& `3 T7 k
004011E4 |. FFD0 call eax ; <&msvcrt.__set_app_type>
2 \& @6 ?2 E5 c004011E6 |. E8 95FFFFFF call 00401180 0 z$ ~2 b- z i
004011EB |. 31C0 xor eax, eax 5 A+ w9 [4 G5 N
004011ED |. C9 leave 6 ~3 \, B* C$ M- U! U
004011EE \\. C3 retn ) F' ` \. x/ d: E5 h" g
004011EF 90 nop
* ~3 Z4 m3 D0 w! {0 L# r7 M; W004011F0 /. 55 push ebp
' j) y* [5 [5 u% l004011F1 |. 89E5 mov ebp, esp
c- ]! U9 T" b, G( y" U004011F3 |. 83EC 08 sub esp, 8
- S# Q8 ~# j: i; f, }, ]004011F6 |. 83C4 F4 add esp, -0C & k. C! w( o7 q7 c# s3 k
004011F9 |. 6A 02 push 2 j6 m. Y1 s3 K6 o- ]* ]6 }3 u0 W
004011FB |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a>
2 l9 `( G( c$ |: \% F" d00401200 |. FFD0 call eax ; <&msvcrt.__set_app_type>
& ]7 c0 n+ ^1 d- r6 }3 o) u6 Z00401202 |. E8 79FFFFFF call 00401180
6 R/ S5 I: \6 T6 B4 Z7 x6 U00401207 |. C9 leave
) B! B" k& [4 C- o8 i00401208 \\. C3 retn # N, z1 r) E& j; l# F; n5 k9 ~
00401209 00 db 00 * v9 @- X5 d' N6 y9 i" \& d
0040120A 00 db 00
T2 q3 |4 w0 z! I0040120B 00 db 00 + Q: K+ y+ T1 W5 l( E8 r7 d- j* q
0040120C 00 db 00
" b* h/ J9 U" x6 j( S0040120D 00 db 00 , A3 I! g! j5 |8 P" E
0040120E 00 db 00
3 @4 w2 ^4 O3 [7 X; f0040120F 00 db 00 2 ^7 Q) H4 x! F
00401210 72 db 72 ; CHAR 'r'
6 Q( m0 X, Y& N00401211 00 db 00
' \4 l1 ?4 m3 m8 h00401212 . 69 6E 70 75 7>ascii "input.txt",0
+ e. b0 K4 B& K' E# ~1 Y% q' m9 u0040121C . 43 61 6E 27 7>ascii "Can't Find input" , H9 _* }4 w( A& b6 {; O* y F2 p: c
0040122C . 2E 74 78 74 2>ascii ".txt!",0
' b! Z4 G/ V' \5 @/ } Q00401232 77 db 77 ; CHAR 'w'
1 H# d' b" S0 T$ N4 r, S00401233 00 db 00
, A& C5 @! }" C1 ^6 v# A00401234 . 6F 75 74 70 7>ascii "output.txt",0 " X3 Y8 P0 @0 e. i
0040123F . 43 61 6E 27 7>ascii "Can't Create out"
; ^0 z. ^' I: \$ t. F* [# w0040124F . 70 75 74 2E 7>ascii "put.txt!",0
. y4 | E3 x1 V$ Q; H: t5 O00401258 . 6F 6E 65 20 6>ascii "one char outpute" u; N$ M: r+ x4 F: j. u
00401268 . 64 0A 00 ascii "d
1 I" m$ S7 W' Z1 k9 s",0
* e) T4 i1 N/ g5 `0040126B 90 nop ) V! s( ~9 h+ ~8 X7 Q& ?, s
0040126C /$ 55 push ebp
! C( c, `0 f, d0040126D |. 89E5 mov ebp, esp 9 B, _6 }6 R o' }
0040126F |. 83EC 18 sub esp, 18
7 J5 n$ r8 G# `9 v1 V00401272 |. E8 39010000 call 004013B0
: p' \# e8 q& ?6 f' @- Z00401277 |. 83C4 F8 add esp, -8
: A4 r6 N* I, X8 N4 l* y7 N* t4 O; J0040127A |. 68 10124000 push 00401210 ; /mode = "r"
" {" B. U6 s+ J0040127F |. 68 12124000 push 00401212 ; |path = "input.txt" 7 X. |& B/ m4 z; F4 N8 {
00401284 |. E8 AF010000 call <jmp.&msvcrt.fopen> ; \\fopen
6 d( G* [7 n& ?/ D; @8 g$ o00401289 |. 83C4 10 add esp, 10 , [" Y; t* f( V7 G2 `
0040128C |. 89C0 mov eax, eax 3 [4 Y; X; X, b, U
0040128E |. 8945 FC mov dword ptr [ebp-4], eax 6 z( k9 T( O; W
00401291 |. 837D FC 00 cmp dword ptr [ebp-4], 0
) e# T5 k, ~* q; M00401295 |. 75 10 jnz short 004012A7
* X! U. n8 V5 k00401297 |. 83C4 F4 add esp, -0C
4 t: d c: c) r0040129A |. 68 1C124000 push 0040121C ; /format = "Can't Find input.txt!" 2 S7 v* k3 n# E& P% S8 A4 J
0040129F |. E8 8C010000 call <jmp.&msvcrt.printf> ; \\printf 0 f" a* W3 ~9 C4 P% c8 B4 J
004012A4 |. 83C4 10 add esp, 10 & D K3 o, |& G" ]" r9 W- }
004012A7 |> 83C4 F8 add esp, -8 ^/ p* u" m7 W8 z# T* r9 a
004012AA |. 68 32124000 push 00401232 ; /mode = "w"
. |( O# ?9 B( b3 \8 E9 ]3 z) k004012AF |. 68 34124000 push 00401234 ; |path = "output.txt"
: h% m) A- A8 H0 `004012B4 |. E8 7F010000 call <jmp.&msvcrt.fopen> ; \\fopen
" w" h* [ O8 Y& ~004012B9 |. 83C4 10 add esp, 10 + J. ^, C* Y1 d3 h U& I/ P, n
004012BC |. 89C0 mov eax, eax
5 v) H; ]& r: V3 |) y004012BE |. 8945 F8 mov dword ptr [ebp-8], eax b q I. c+ R& P( f
004012C1 |. 837D F8 00 cmp dword ptr [ebp-8], 0
/ ~. |' z3 g4 W$ _3 F004012C5 |. 75 10 jnz short 004012D7
! p4 z8 D8 F: W8 f( ]004012C7 |. 83C4 F4 add esp, -0C
6 x4 G& h) B: q" M+ i* c7 h, k004012CA |. 68 3F124000 push 0040123F ; /format = "Can't Create output.txt!"
" p" C2 ~, r) ~7 o! Q004012CF |. E8 5C010000 call <jmp.&msvcrt.printf> ; \\printf
3 q: `5 ^1 f" M, h @004012D4 |. 83C4 10 add esp, 10 9 X; G0 \6 \9 q$ g$ |' C/ z' v
004012D7 |> 83C4 F4 /add esp, -0C r) n7 `3 y% V
004012DA |. 8B45 FC |mov eax, dword ptr [ebp-4] : H; \6 n* `! E! |0 r+ `
004012DD |. 50 |push eax ; /stream
3 L& G ]' m6 q; `* a9 d004012DE |. E8 45010000 |call <jmp.&msvcrt.fgetc> ; \\fgetc
! Z3 X1 g6 H# h, o" t. Q004012E3 |. 83C4 10 |add esp, 10
; W I6 n/ I# P6 S0 Z+ N/ Q* }$ k004012E6 |. 89C0 |mov eax, eax
" Z: Z( s% P% U7 J9 `; v7 y004012E8 |. 8945 F4 |mov dword ptr [ebp-C], eax % p, E- v. X# k: F$ W9 f5 S
004012EB |. 817D F4 80000>|cmp dword ptr [ebp-C], 80 , ^3 b% {$ C, w( s: ]9 l
004012F2 |. 7F 23 |jg short 00401317 % u$ H5 N$ F% `% \2 L- N" z* @
004012F4 |. 83C4 F8 |add esp, -8
Y( k5 c: Q, q [004012F7 |. 8B45 F8 |mov eax, dword ptr [ebp-8] " |! k8 A/ U) O2 h- v; K' @9 I
004012FA |. 50 |push eax ; /stream ; @; ]) G/ t% n N0 N6 S2 Z
004012FB |. 8B45 F4 |mov eax, dword ptr [ebp-C] ; | 3 c/ _9 h/ j; G/ Z' ]1 i
004012FE |. 50 |push eax ; |c
) {* g1 j. B- t0 W& C b& t0 @004012FF |. E8 1C010000 |call <jmp.&msvcrt.fputc> ; \\fputc % Y* x- |( b% l, T
00401304 |. 83C4 10 |add esp, 10
" \& U- q7 M R7 [8 ?1 B" E00401307 |. 83C4 F4 |add esp, -0C ( _; c& p: \1 ^
0040130A |. 68 58124000 |push 00401258 ; /format = "one char outputed",LF,""
+ ~. }$ W! P5 g. M7 V( p% N0040130F |. E8 1C010000 |call <jmp.&msvcrt.printf> ; \\printf 6 B7 [; b! h7 R% ^7 S) K
00401314 |. 83C4 10 |add esp, 10 ! g. O' |" z' F% c' q8 l7 z
00401317 |> 837D F4 FF |cmp dword ptr [ebp-C], -1
. o+ d2 _1 {/ `& P4 e9 S; e0040131B |. 75 03 |jnz short 00401320 2 T7 m- C$ D6 R: C# C! d( x
0040131D |. EB 03 |jmp short 00401322 # f" }+ O! [ P P! V' U0 D) b* Q
0040131F | 90 |nop # n( V( n& R8 {% Z8 J
00401320 |>^ EB B5 \\jmp short 004012D7 . M, g: f: O- W, N
00401322 |> C9 leave 2 L# D8 D1 Z. i6 @1 T1 I: f/ q* G8 e6 v
00401323 \\. C3 retn ; B% Q' N! l' @6 X- }4 h
00401324 00 db 00
' J# h/ r: Y1 x- r2 @ w; l00401325 00 db 00 : K' I2 t5 m1 T6 O) Y( P
00401326 00 db 00 0 e) U' @8 d& r
00401327 00 db 00 ! ]0 j( B0 R0 @5 V/ n
00401328 00 db 00 4 w" K- }/ q0 i: P' n
00401329 00 db 00 " D! g) T, H4 z* T& c' b( o' T
0040132A 00 db 00
% d' ]# M0 |! Q& J; q0040132B 00 db 00
9 S. f% r3 z |7 f8 T2 u" w6 v1 o0040132C 00 db 00 4 t$ V0 B: W% f/ F
0040132D 00 db 00
) X/ o+ I4 l* j5 _( @0040132E 00 db 00 3 |$ Y! i; {. k# [
0040132F 00 db 00 1 s% l# [( {6 b! g2 m8 ~* [
00401330 /. 55 push ebp
; v. f3 t+ ~/ Z2 R" X& M& d00401331 |. 89E5 mov ebp, esp
/ G( Z6 {. X8 _+ @' D! Z0 `00401333 |. 83EC 08 sub esp, 8 - Y+ O, Z |1 ~" q
00401336 |. A1 10204000 mov eax, dword ptr [402010]
& k7 x# z: x# v5 ^- b- b- v4 W0040133B |. 8338 00 cmp dword ptr [eax], 0
$ R+ s1 q* `+ R, r& S0040133E |. 74 1D je short 0040135D - r E- R( k2 j0 d, |
00401340 |> A1 10204000 /mov eax, dword ptr [402010] 2 U! _2 c% ^, j* k+ ?; Q+ B
00401345 |. 8B00 |mov eax, dword ptr [eax] ' [+ `% z* p3 c6 U3 E8 Q0 c
00401347 |. FFD0 |call eax ! {: t1 ]; ~& C. _+ |; D
00401349 |. A1 10204000 |mov eax, dword ptr [402010]
! |$ |+ G; w4 K: v8 e( `: f0040134E |. 8D50 04 |lea edx, dword ptr [eax+4]
+ h, P* F! l" R6 M$ \1 j00401351 |. 8915 10204000 |mov dword ptr [402010], edx
) T( L- i2 Y7 B' ]( Z00401357 |. 8378 04 00 |cmp dword ptr [eax+4], 0
: B$ x+ q( i7 o X7 ^- a0 K0040135B |.^ 75 E3 \\jnz short 00401340
) t) m4 E+ M4 j8 \0 n; r! \0040135D |> C9 leave
6 G) M6 i# Q* {) c$ b3 ^ d0040135E \\. C3 retn 1 l( d) L) K- X) e* K" b: E* C6 E9 G
0040135F 90 nop
! ^0 r9 _3 _; j' `/ L00401360 /$ 55 push ebp 2 r8 \* ]0 Q3 j7 q J3 k0 _2 u: R: S$ I
00401361 |. 89E5 mov ebp, esp
! Y* K. N& ^9 T& ^00401363 |. 83EC 14 sub esp, 14
, S. l8 b P% R: b* I, ^00401366 |. 53 push ebx 7 W( C9 f! j/ [- @4 k9 `
00401367 |. A1 58144000 mov eax, dword ptr [401458] 5 e* O4 E3 w' _( x$ F
0040136C |. 83F8 FF cmp eax, -1 . h/ c, l7 c1 P+ w6 c% P, N: Z1 X
0040136F |. 75 19 jnz short 0040138A
$ r' B2 v6 I' Z1 d g1 T00401371 |. 31C0 xor eax, eax
4 Z6 T$ Z1 j& z7 U, ^00401373 |. 833D 5C144000>cmp dword ptr [40145C], 0
2 R1 F' {5 a. T Z1 y- A0040137A |. 74 0E je short 0040138A 1 G, U! I3 K0 z5 n
0040137C |. BA 5C144000 mov edx, 0040145C
/ Y/ _( T. t+ i( U( X00401381 |> 83C2 04 /add edx, 4 - D' J2 K4 {+ [! U% C3 U
00401384 |. 40 |inc eax ) E, K7 E2 r& @6 F, r
00401385 |. 833A 00 |cmp dword ptr [edx], 0 5 l9 I+ J) D3 F; y- f
00401388 |.^ 75 F7 \\jnz short 00401381 + ^% a) V* L/ F
0040138A |> 89C3 mov ebx, eax
; {1 m- E4 U6 @6 V( w5 R9 I8 Y# t0040138C |. 85DB test ebx, ebx
% q; ^( Z% G7 {) }, m0 }& M0040138E |. 74 0C je short 0040139C
/ P2 P; C% b/ D6 b' G00401390 |> 8B049D 581440>/mov eax, dword ptr [ebx*4+401458]
5 v$ y$ | ]$ m0 O$ Y5 c( I* a8 F00401397 |. FFD0 |call eax & L# I8 ?* m9 j: x' {! I
00401399 |. 4B |dec ebx & x2 I- T. }- s+ ?' M- r% |" K
0040139A |.^ 75 F4 \\jnz short 00401390
, t1 K0 n( b' p, w6 a \0040139C |> 83C4 F4 add esp, -0C ; a) i1 k; t% d Q' B
0040139F |. 68 30134000 push 00401330 ; /func = engoutpu.00401330 . `, b6 y$ s6 A: C% }& R1 T
004013A4 |. E8 97000000 call <jmp.&msvcrt.atexit> ; \\atexit ( Y9 k8 ~) A9 ?1 A. W
004013A9 |. 8B5D E8 mov ebx, dword ptr [ebp-18]
; ?0 k5 a. k! F, @; o+ }7 V f004013AC |. C9 leave 8 N3 A+ c! z( j/ R, G0 r2 R: G
004013AD \\. C3 retn . g$ P# D" N# N5 Z# a& v& M" h+ j7 }
004013AE 89F6 mov esi, esi 8 e* ^1 Y, t- I# d$ V" p# z
004013B0 /$ 55 push ebp 4 b I( ~2 q% q! W8 `
004013B1 |. 89E5 mov ebp, esp 4 q0 [/ `* I& d- x) \ g( q& F; P& E
004013B3 |. 83EC 08 sub esp, 8
5 [) U$ G5 ]- J4 f% y3 X y0 f6 Z004013B6 |. 833D 14204000>cmp dword ptr [402014], 0 " m7 h% R# T7 w! O: d
004013BD |. 75 0F jnz short 004013CE
; i8 M! p* k ~8 V; Q004013BF |. C705 14204000>mov dword ptr [402014], 1 7 |+ r' Q' u/ v7 Y8 k4 u
004013C9 |. E8 92FFFFFF call 00401360 1 s! j& {2 s/ u0 _, `4 t& q W
004013CE |> C9 leave ) d M) I- @* j) R6 r( V
004013CF \\. C3 retn
4 c9 P3 x1 h2 l$ I004013D0 .- FF25 AC304000 jmp dword ptr [<&msvcrt._fmode>] ; msvcrt._fmode
% P, z# ?2 q b3 ~. D7 p004013D6 90 nop
' c- J4 P" P; b w6 {) S004013D7 90 nop 3 X' j" S6 u5 N& z5 b
004013D8 .- FF25 B4304000 jmp dword ptr [<&msvcrt._iob>] ; msvcrt._iob ; Q' h# f* Z( }: @# ?4 l
004013DE 90 nop
6 Z+ x- ~6 p3 w0 P004013DF 90 nop
+ q7 r7 l: b& c6 ^5 w! u0 `3 H; `$ J004013E0 .- FF25 DC304000 jmp dword ptr [<&msvcrt.__set_app_ty>; msvcrt.__set_app_type [( F$ w* e* N, d- q
004013E6 90 nop # m4 N& W7 @' U7 m% m2 i5 W' E' ?- R0 ]* i
004013E7 90 nop
, G$ X3 E) K: F( ^! \0 Y% h004013E8 $- FF25 A4304000 jmp dword ptr [<&msvcrt._cexit>] ; msvcrt._cexit
" j3 _6 c7 T; B: K- i004013EE 90 nop
4 f) O- }) o' w2 s9 m4 A3 L! t004013EF 90 nop
. B- b) T& E- R1 Z0 V004013F0 $- FF25 D0304000 jmp dword ptr [<&msvcrt.__p__environ>; msvcrt.__p__environ
2 \+ {# k$ ^3 V004013F6 90 nop 2 Z. I" U( c- Q: L
004013F7 90 nop ! V, f% s+ K4 O# R
004013F8 $- FF25 B0304000 jmp dword ptr [<&msvcrt._fpreset>] ; msvcrt._fpreset
9 n9 X2 e0 t* F- }$ R- @2 i+ |004013FE 90 nop
# j0 G7 l3 B; s/ S, A3 H$ X004013FF 90 nop & a4 g& R7 N, i; X# Q
00401400 $- FF25 D8304000 jmp dword ptr [<&msvcrt.signal>] ; msvcrt.signal
8 P* L1 g- s( u4 e' I3 N% E00401406 90 nop
. }' |- |+ f' s5 w8 e; o00401407 90 nop
* m/ w# {4 g2 ?5 H& J00401408 $- FF25 A8304000 jmp dword ptr [<&msvcrt._fileno>] ; msvcrt._fileno
/ @0 e3 t3 c) h0040140E 90 nop $ A3 i/ ^: D* j
0040140F 90 nop 6 |' V5 i0 f# D/ ?6 {( J0 q
00401410 $- FF25 B8304000 jmp dword ptr [<&msvcrt._setmode>] ; msvcrt._setmode
9 S7 w: v" B6 k! f00401416 90 nop
. ~) o4 Z5 H; E Y$ J$ H) |5 _00401417 90 nop
0 y1 p# e! P3 n, n00401418 $- FF25 BC304000 jmp dword ptr [<&msvcrt.__getmainarg>; msvcrt.__getmainargs
( I% `, ^, G. k9 F0040141E 90 nop
$ z0 N$ j. j- y7 m0040141F 90 nop
% f* t1 q9 D3 r, \- y00401420 $- FF25 CC304000 jmp dword ptr [<&msvcrt.fputc>] ; msvcrt.putc & B9 d. l7 m3 c
00401426 90 nop * ^- k1 ]' V( H5 ~
00401427 90 nop N* M5 B7 l3 Q7 D, F1 {9 V
00401428 $- FF25 C4304000 jmp dword ptr [<&msvcrt.fgetc>] ; msvcrt.getc
0 C: [# e, y4 N! b0040142E 90 nop ( Z) B8 e) W0 _( G
0040142F 90 nop * t. [, j2 @- X( D; J7 h! I- c
00401430 $- FF25 D4304000 jmp dword ptr [<&msvcrt.printf>] ; msvcrt.printf 1 G# y( Y- b, |
00401436 90 nop ' l. f, N( }7 ?$ i% i1 q6 p4 B7 {
00401437 90 nop
/ o( I- y& f6 ~/ \ U1 |0 a, J6 c00401438 $- FF25 C8304000 jmp dword ptr [<&msvcrt.fopen>] ; msvcrt.fopen
/ q5 I+ N0 N) o0 r4 G0040143E 90 nop 6 b+ r" c( i% y1 r
0040143F 90 nop 3 x, p$ l$ R& l0 d4 s$ |- ?
00401440 $- FF25 C0304000 jmp dword ptr [<&msvcrt.atexit>] ; msvcrt.atexit # B u$ O0 ~7 I7 }9 m6 K* t
00401446 90 nop
$ H! T- o* K/ o; S$ l4 E00401447 90 nop
, |6 W" v: o: t9 Z G8 H00401448 $- FF25 98304000 jmp dword ptr [<&KERNEL32.SetUnhandl>; kernel32.SetUnhandledExceptionFilter * G' S. ~" @* B1 ~6 M
0040144E 90 nop
$ a Y& k$ a2 x3 ~0040144F 90 nop ( m( R7 j& x$ t
00401450 .- FF25 94304000 jmp dword ptr [<&KERNEL32.ExitProces>; kernel32.ExitProcess * a6 v. |( I' G6 K
00401456 90 nop
9 N, C, O+ h5 Y5 `) n00401457 90 nop
1 B8 H0 r8 D* z- k00401458 . FFFFFFFF dd FFFFFFFF
0 Q0 H7 @6 I. R8 k( f$ H0040145C . 00000000 dd 00000000 `# m1 A' u7 P3 v2 Z5 _
00401460 FF db FF
8 u2 P* J" o# p, z) B* Z0 d00401461 FF db FF
0 q( M# L6 j8 v5 D) D% _. O00401462 FF db FF " O7 X/ v$ F- }9 b+ t
00401463 FF db FF ; |+ p! K; _4 H, w5 e/ ^
00401464 00 db 00
! G+ C; [( z% H; x, e* V: ` q1 w+ _( e00401465 00 db 00
7 ~9 u' T2 y6 X) z00401466 00 db 00 7 [0 i4 _4 G" [' k( }+ Y
00401467 00 db 00 |