由于这个程序很短,OD里面的汇编代码也很短。
9 }& q" N7 \: h8 x请看红色的部分,这就是和0x80比较的部分。 8 `8 H9 C7 C5 b5 v7 T1 C
把这2句NOP掉,然后保存修改后的文件为exe。
% c4 N+ Q, b5 y1 t我们发现input.txt里面的所有内容都能被输出了。
5 U& D; G0 s* n2 T U* N" p附上修改后的exe. ' T( x& b4 v3 P7 X" N4 M& `7 C
深绿,你可以把这个操作过程试一下,练习一下.
' h: U5 Z; i4 K P. q9 a
) Y: d5 o& ~3 Z- E9 N00401000 /$ 55 push ebp
& c6 i+ M$ ~6 V1 C! @3 V) Q2 D00401001 |. 89E5 mov ebp, esp
+ N# H3 R* B( { B" f8 [; x00401003 |. 83EC 18 sub esp, 18
2 O3 n$ p( s( F00401006 |. C745 FC 00000>mov dword ptr [ebp-4], 0
, X& A; L! \2 J0 Q( e0040100D |. 83C4 F4 add esp, -0C h; \0 K- T. g V
00401010 |. 8D45 FC lea eax, dword ptr [ebp-4] ( S* O& ~% t' Z3 r+ b% U
00401013 |. 50 push eax : J, { F- `+ |# }9 ?9 `
00401014 |. FF35 08204000 push dword ptr [402008]
% R7 G; i/ p7 Y9 O( ~0 a0040101A |. 8D45 F8 lea eax, dword ptr [ebp-8] 5 U+ _8 c' n p
0040101D |. 50 push eax
; q8 @: C. o5 P" A2 @) T0 J+ ~0040101E |. 68 04204000 push 00402004
+ ?# a0 Z% i. K a7 z9 _ i5 t00401023 |. 68 00204000 push 00402000
5 Y- w% t& r0 C6 g00401028 |. E8 EB030000 call <jmp.&msvcrt.__getmainargs>
6 Z5 S q6 x3 F/ [* J0040102D |. C9 leave 2 Y# s" _1 r) q- r8 m8 N0 i& H
0040102E \\. C3 retn , Q! s! |0 M1 e# Q- ~
0040102F 90 nop
1 w4 `2 O5 H+ F( v* c00401030 /$ 55 push ebp
* X/ B0 E0 O9 `( D4 [00401031 |. 89E5 mov ebp, esp
0 h. U/ ~' V8 ] u- n; U2 ?8 s/ J00401033 |. 83EC 08 sub esp, 8
7 J8 k2 b8 R! k9 e D00401036 |. 8B15 0C204000 mov edx, dword ptr [40200C] 7 B# D( } }. z: u$ ]
0040103C |. 85D2 test edx, edx 4 x. \8 J5 N" G
0040103E |. 74 7B je short 004010BB
4 R( Y/ @2 t* ]$ I3 y00401040 |. A1 AC304000 mov eax, dword ptr [<&msvcrt._fmode>> 6 V! _/ Q# @ u, b0 E
00401045 |. 8910 mov dword ptr [eax], edx
/ n- ]0 I+ z) i00401047 |. A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
) G- @( o& E, ]3 U6 {0040104C |. 85C0 test eax, eax ' I! b' k; j. q
0040104E |. 74 1E je short 0040106E 9 z, [5 d7 F3 ^# l
00401050 |. 83C4 F8 add esp, -8
% f- x' j' Z- O/ f00401053 |. FF35 0C204000 push dword ptr [40200C]
2 u# S+ l# H; `* D/ p2 K+ |00401059 |. 83C4 F4 add esp, -0C * |5 R. U2 C+ L) c1 t
0040105C |. 50 push eax ; /pstream => offset msvcrt._iob
: v# k- a( r( R. u3 `- e6 W- L3 o0040105D |. E8 A6030000 call <jmp.&msvcrt._fileno> ; \\_fileno 4 U9 N5 v7 `. }. ?
00401062 |. 83C4 10 add esp, 10
: L9 s5 \* v; ~4 P! W00401065 |. 50 push eax ; |handle
' a: c; f9 S" S9 y% N: M00401066 |. E8 A5030000 call <jmp.&msvcrt._setmode> ; \\_setmode
[: l" I9 C* x/ s D" a0040106B |. 83C4 10 add esp, 10 - X& G4 r1 m1 X( R9 ]2 Y t; D8 h, C ?% d
0040106E |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
- J( E# {& o8 W6 y @0 j00401073 |. 83C0 20 add eax, 20
, f* K! ^8 o- g Y% x00401076 |. 74 1E je short 00401096 . Z8 y# ?9 Y. @7 M) m, v0 D& o
00401078 |. 83C4 F8 add esp, -8 / E1 |6 [ {, b
0040107B |. FF35 0C204000 push dword ptr [40200C]
" U& x" u4 c6 P8 u00401081 |. 83C4 F4 add esp, -0C 8 t2 q+ D3 f* p$ k0 o
00401084 |. 50 push eax ; /pstream
0 \: g6 D2 [9 Q/ |. h00401085 |. E8 7E030000 call <jmp.&msvcrt._fileno> ; \\_fileno
' n9 @/ y8 v+ K# A8 p3 @7 L' E0040108A |. 83C4 10 add esp, 10 " i5 P. g5 f8 q+ K
0040108D |. 50 push eax ; |handle
/ ^. M/ J9 u, e: Q0040108E |. E8 7D030000 call <jmp.&msvcrt._setmode> ; \\_setmode
/ _' a1 H0 i3 b! M3 M3 G$ l2 T00401093 |. 83C4 10 add esp, 10
! }/ I" F. u- F1 x0 Q: X, t00401096 |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] . ^% v$ b- M: C5 G
0040109B |. 83C0 40 add eax, 40
. n+ |: [1 q) @( _1 I% f0040109E |. 74 1B je short 004010BB
- k7 g) S+ R% D004010A0 |. 83C4 F8 add esp, -8
. T E6 F( A/ U6 X* w; q: _& q004010A3 |. FF35 0C204000 push dword ptr [40200C]
, b# b& e$ ]; r. D0 U; U004010A9 |. 83C4 F4 add esp, -0C
- _5 _6 s2 h+ v( U* }004010AC |. 50 push eax ; /pstream $ w) Y; B9 M [- H! k
004010AD |. E8 56030000 call <jmp.&msvcrt._fileno> ; \\_fileno 3 i$ k/ [/ z& `- C8 w- h( P9 ^
004010B2 |. 83C4 10 add esp, 10
# q. ^& x5 d& `! ~$ l2 H004010B5 |. 50 push eax ; |handle
% ]7 V( r/ g# C) U; r004010B6 |. E8 55030000 call <jmp.&msvcrt._setmode> ; \\_setmode 5 e, X- X& F% ^4 D
004010BB |> C9 leave & n) b5 \( d* f
004010BC \\. C3 retn
: v! C8 |7 Z. N& ~ x ]- u004010BD 8D76 00 lea esi, dword ptr [esi] / G2 t$ Z" g/ a& d' ]- j
004010C0 /. 55 push ebp
9 v) f1 \- k2 }* f004010C1 |. 89E5 mov ebp, esp , k! L# _. X! m4 r
004010C3 |. 83EC 10 sub esp, 10 # l* q# W) W8 ~. I, y
004010C6 |. 56 push esi 2 h4 \! s0 Q" c/ d3 B( K8 w4 |
004010C7 |. 53 push ebx
( ~; `- t% a2 E004010C8 |. 8B45 08 mov eax, dword ptr [ebp+8]
- c0 ?- a3 ` j' M; F0 k/ Q004010CB |. 31DB xor ebx, ebx
c' I# ^1 G4 t# h: h+ |004010CD |. 31F6 xor esi, esi 5 g$ n+ n6 E, p
004010CF |. 8B00 mov eax, dword ptr [eax] % k/ E& t0 ~" z* p/ w/ t4 k
004010D1 |. 8B00 mov eax, dword ptr [eax] ; G9 v% \9 \. J4 L* o% R8 v
004010D3 |. 3D 910000C0 cmp eax, C0000091 6 Y! ~0 M h8 q% f7 e( [: S' A
004010D8 |. 77 16 ja short 004010F0
; b) ~( ?8 n1 ]* w. Z. R! v* s- W004010DA |. 3D 8D0000C0 cmp eax, C000008D # | w$ F( r# N* } Z) J
004010DF |. 73 4F jnb short 00401130
( P6 M8 a( {- t$ W4 K# E! H/ V004010E1 |. 3D 050000C0 cmp eax, C0000005
& z, q7 F# s) T0 r' }$ x' g/ N004010E6 |. 74 18 je short 00401100 0 r4 W D; e0 k" g
004010E8 |. E9 86000000 jmp 00401173
9 O+ e5 w' J! s004010ED | 8D76 00 lea esi, dword ptr [esi] $ V' S! b4 @$ N$ A; u6 x- ^
004010F0 |> 3D 930000C0 cmp eax, C0000093 7 o' {9 S; `) ^* X0 {8 Y
004010F5 |. 74 39 je short 00401130 1 e3 O6 k3 P- X U8 K6 _# f9 ?
004010F7 |. 3D 940000C0 cmp eax, C0000094 6 u5 K" M& G1 X5 I* ]" L
004010FC |. 74 37 je short 00401135
$ F7 a2 o% c' `5 C/ A004010FE |. EB 73 jmp short 00401173
: t2 N: t* Q+ O* ~: H7 K00401100 |> 83C4 F8 add esp, -8
4 v. X/ V- y9 G0 L/ L0 ]) T$ J00401103 |. 6A 00 push 0 ; /func = NULL , v& K8 ~# t* K! u
00401105 |. 6A 0B push 0B ; |sig = SIGSEGV
3 a. B* @% t4 S- g2 N7 P$ `00401107 |. E8 F4020000 call <jmp.&msvcrt.signal> ; \\signal r. \8 @8 J/ D/ a: H
0040110C |. 83C4 10 add esp, 10 , J* l" b. L& J7 u9 ?3 i
0040110F |. 83F8 01 cmp eax, 1 2 I- q# i- x, N
00401112 |. 75 0E jnz short 00401122
( [. U; s2 G; k$ X00401114 |. 83C4 F8 add esp, -8 # o& \: J% G/ H; [: W2 c' i
00401117 |. 6A 01 push 1 ; /func = 00000001
5 J" h( r7 N/ X; }2 q1 l00401119 |. 6A 0B push 0B ; |sig = SIGSEGV 6 l/ G' D1 ^* }: y1 V" S$ ^
0040111B |. E8 E0020000 call <jmp.&msvcrt.signal> ; \\signal
8 a7 Q l6 ^4 S) w00401120 |. EB 4C jmp short 0040116E
1 l" O* y/ ~$ s$ [/ z8 u& d00401122 |> 85C0 test eax, eax
% \5 P! d7 s. n$ b" n* ?& g& y8 A4 u00401124 |. 74 4D je short 00401173
8 a! x" B* V2 b/ ? ]* z+ ^00401126 |. 83C4 F4 add esp, -0C
: k7 i+ B; v/ O1 [00401129 |. 6A 0B push 0B 2 C/ B! ^) Y& ?6 q
0040112B |. EB 3F jmp short 0040116C & f2 n$ X: H: }5 N6 V
0040112D | 8D76 00 lea esi, dword ptr [esi]
% G: n {6 N0 q7 h+ [$ a2 k00401130 |> BE 01000000 mov esi, 1 0 s$ n& p: `9 N6 a
00401135 |> 83C4 F8 add esp, -8 5 @: Y+ _9 q4 b% a! Y) L
00401138 |. 6A 00 push 0 ; /func = NULL ! b- V: u0 z& m6 ~) f
0040113A |. 6A 08 push 8 ; |sig = SIGFPE
/ Z- v& d' v* y; o+ f8 Y& F+ o0040113C |. E8 BF020000 call <jmp.&msvcrt.signal> ; \\signal . Y& \! C& {/ d' g, U0 g3 A R
00401141 |. 83C4 10 add esp, 10 4 P) G! n, E& J# x& J
00401144 |. 83F8 01 cmp eax, 1 % }% z. @' _/ @. o. L
00401147 |. 75 1A jnz short 00401163 ) _, O$ }0 x4 B. L, w& D
00401149 |. 83C4 F8 add esp, -8 . T. z1 n. X2 s% V
0040114C |. 6A 01 push 1 ; /func = 00000001
# y7 k2 w X v) {$ A0040114E |. 6A 08 push 8 ; |sig = SIGFPE 7 M. k* @6 n* U) w1 b8 S$ b
00401150 |. E8 AB020000 call <jmp.&msvcrt.signal> ; \\signal ! w. w0 N7 N! R" R
00401155 |. 83C4 10 add esp, 10 2 U5 O! `( A/ l7 r
00401158 |. 85F6 test esi, esi
- d0 u& {1 h& F% l. h# F+ r0040115A |. 74 12 je short 0040116E + u U0 ?% }/ z" b/ m, Z
0040115C |. E8 97020000 call <jmp.&msvcrt._fpreset> ; [_fpreset
: `( A8 W( h' }% {9 ]: r00401161 |. EB 0B jmp short 0040116E & O* ~1 m) j6 i7 }
00401163 |> 85C0 test eax, eax
& i4 F3 B0 r4 O- D& ?4 i6 {00401165 |. 74 0C je short 00401173 9 O3 u; \5 Y; }6 D' A( X; b& K
00401167 |. 83C4 F4 add esp, -0C
1 `2 r3 ]$ I |4 C1 B0040116A |. 6A 08 push 8
7 E; U$ H% J& Y B U9 D! K% ~9 E0040116C |> FFD0 call eax 9 x0 U$ s" v2 \
0040116E |> BB FFFFFFFF mov ebx, -1 ( e! d9 K; G( r8 v2 I. y
00401173 |> 89D8 mov eax, ebx
) W1 v: S% g3 A/ h- C00401175 |. 8D65 E8 lea esp, dword ptr [ebp-18]
1 P' H4 p2 h) h x' T0 S! @00401178 |. 5B pop ebx / c; j7 U) n8 c1 h2 u- a8 J& j" b
00401179 |. 5E pop esi
$ J& w" u' p: d8 W+ i9 P5 K2 {0040117A |. C9 leave , ^; h; b1 l$ ~! x) R% V' n
0040117B \\. C2 0400 retn 4
* b$ P$ w- Y* ^' t* f. U4 \0040117E 89F6 mov esi, esi ( j. E2 q. ]$ t1 B! g
00401180 /$ 55 push ebp ! F$ Z9 C! i* h" b0 f) b5 o/ l N6 k
00401181 |. 89E5 mov ebp, esp 4 S& j# x) \, Y2 H+ g: H9 o$ T! ~
00401183 |. 83EC 14 sub esp, 14
. D8 n4 D6 T3 j% _00401186 |. 53 push ebx 3 |) z$ k! Z& I3 V3 w* c
00401187 |. 83C4 F4 add esp, -0C
$ A; }: ]( p/ m7 r4 W) y+ d0040118A |. 68 C0104000 push 004010C0 ; /pTopLevelFilter = engoutpu.004010C0 0 x: K g3 l4 C4 Y( ]
0040118F |. E8 B4020000 call <jmp.&KERNEL32.SetUnhandledExcep>; \\SetUnhandledExceptionFilter ! {+ r2 j& I& `+ e( e" f
00401194 |. 83C4 FC add esp, -4 8 @0 ?0 R# ~5 U( \& [: S
00401197 |. E8 5C020000 call <jmp.&msvcrt._fpreset> ; [_fpreset # K, J1 O9 P. J
0040119C |. E8 5FFEFFFF call 00401000 3 K# f4 Y+ o2 c7 n
004011A1 |. E8 8AFEFFFF call 00401030
* a% V, q' y/ C0 |004011A6 |. 83C4 FC add esp, -4
4 h4 U% `* X9 K) c004011A9 |. E8 42020000 call <jmp.&msvcrt.__p__environ>
2 q' s, U6 }: H4 u3 D0 C0 j' X004011AE |. FF30 push dword ptr [eax]
: ?$ p2 T+ i& p% g1 T/ E) F004011B0 |. FF35 04204000 push dword ptr [402004] ; |( |/ l, V+ a
004011B6 |. FF35 00204000 push dword ptr [402000]
5 \% e( h5 y: b" P, r/ |004011BC |. E8 AB000000 call 0040126C , V) [$ h+ h% r* y( j/ k* c- r T
004011C1 |. 89C3 mov ebx, eax 1 E8 e+ |1 c/ X' l# l/ ^
004011C3 |. 83C4 20 add esp, 20
4 d1 @5 L# X% \004011C6 |. E8 1D020000 call <jmp.&msvcrt._cexit> ; [msvcrt._cexit
( d) y% B! p' t3 m004011CB |. 83C4 F4 add esp, -0C ) j7 I* }; |) r$ b( s, O
004011CE |. 53 push ebx ; /ExitCode
+ j9 p: }' c$ _2 n" z( O004011CF \\. E8 7C020000 call <jmp.&KERNEL32.ExitProcess> ; \\ExitProcess
6 q/ J1 p1 t; N' S) a; o, w1 }5 e004011D4 >/$ 55 push ebp / p6 h% b' z- z: R2 f; }
004011D5 |. 89E5 mov ebp, esp $ c9 q* Y, a$ B% x
004011D7 |. 83EC 08 sub esp, 8
4 n; C, K* h- Q9 r* J n004011DA |. 83C4 F4 add esp, -0C 7 P! a* }; h8 C+ I1 N
004011DD |. 6A 01 push 1 6 g. u/ `& m2 |3 _6 R5 a
004011DF |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> * n* @# V h) ^
004011E4 |. FFD0 call eax ; <&msvcrt.__set_app_type> ) O) M) p' K! I5 P- z) k
004011E6 |. E8 95FFFFFF call 00401180
% r$ h, d; i9 a1 _+ M1 f z004011EB |. 31C0 xor eax, eax
L% k! y4 E& o1 z5 i. \004011ED |. C9 leave
' m% u& h' c! j- e% r004011EE \\. C3 retn
7 k' {/ b! v! E) w004011EF 90 nop 9 ?6 K; R9 x; R
004011F0 /. 55 push ebp
L% e* ~, F5 I" M004011F1 |. 89E5 mov ebp, esp " ^1 z; q1 _) U- y9 [6 j }; A
004011F3 |. 83EC 08 sub esp, 8
! T% j9 g& D+ q4 q004011F6 |. 83C4 F4 add esp, -0C 7 }( d5 K7 v" u2 q/ h
004011F9 |. 6A 02 push 2
3 {6 N9 `3 Y: A2 _) {5 |004011FB |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> ( b- ~5 h" i; H- W) r* Z& f
00401200 |. FFD0 call eax ; <&msvcrt.__set_app_type> ' Y# m0 S9 Y4 G! X S9 v- G! Q3 u
00401202 |. E8 79FFFFFF call 00401180 1 v# H: M& W8 E
00401207 |. C9 leave , G$ D$ R" W3 p
00401208 \\. C3 retn : r( R0 p+ v. C1 ]
00401209 00 db 00
. E' i" h8 h6 I- m$ l0040120A 00 db 00
5 v( G! Y' L3 T& Z# H0040120B 00 db 00 0 A. a: ~6 V- l0 \9 A, g9 i# @5 q
0040120C 00 db 00
: s0 C+ H+ u1 \' Y0040120D 00 db 00 1 B1 D% Q& ]6 Z' [% I
0040120E 00 db 00
8 S8 T2 l% W3 |( a- u1 ?0040120F 00 db 00 4 d2 R* y4 ?3 I' a: f- @( g
00401210 72 db 72 ; CHAR 'r'
! V# Z9 b+ _$ E- f00401211 00 db 00 4 q# m; {- W$ j/ x
00401212 . 69 6E 70 75 7>ascii "input.txt",0
/ S5 k# m2 I" j Z% f+ }0040121C . 43 61 6E 27 7>ascii "Can't Find input" 5 q& M5 e6 Z" M3 z; o
0040122C . 2E 74 78 74 2>ascii ".txt!",0
1 y' |) K- X9 m00401232 77 db 77 ; CHAR 'w' $ {' x( r2 u; E) P6 t
00401233 00 db 00
# X/ T i1 f5 e00401234 . 6F 75 74 70 7>ascii "output.txt",0 3 b, v% {, w) x9 X! \' v, [; X( \
0040123F . 43 61 6E 27 7>ascii "Can't Create out" ' k' h3 q2 I! c) B
0040124F . 70 75 74 2E 7>ascii "put.txt!",0
0 ]0 D# P, u( i, Q' C00401258 . 6F 6E 65 20 6>ascii "one char outpute" ' v0 \0 A! w0 P, ^, S
00401268 . 64 0A 00 ascii "d
: Q- K+ t0 T0 q5 D) n7 J",0 : A( t. p' b9 P; j
0040126B 90 nop # n: w, [( h3 J( ]4 Q9 d" g
0040126C /$ 55 push ebp : E5 l: r4 n9 P" ~- G+ m* E
0040126D |. 89E5 mov ebp, esp
* D+ V* W# s' }- L ~0040126F |. 83EC 18 sub esp, 18
: G( J) E8 n: k" f1 i3 H9 m00401272 |. E8 39010000 call 004013B0 9 H( U5 |1 w& B+ J1 ]! M0 l
00401277 |. 83C4 F8 add esp, -8
- c) ?0 r1 J: | L$ y0040127A |. 68 10124000 push 00401210 ; /mode = "r" / f5 |9 d$ e0 `2 }! H" e
0040127F |. 68 12124000 push 00401212 ; |path = "input.txt" 0 K* N9 M: w- E) e$ S
00401284 |. E8 AF010000 call <jmp.&msvcrt.fopen> ; \\fopen
' Q* j; S5 p6 }( W- L7 }% k; I00401289 |. 83C4 10 add esp, 10 4 s& Y: L1 a& Z3 M. W
0040128C |. 89C0 mov eax, eax
5 A- e+ t9 V/ ~9 c3 d" @. v0 f0040128E |. 8945 FC mov dword ptr [ebp-4], eax ! q C+ _4 i$ U3 P7 z" L
00401291 |. 837D FC 00 cmp dword ptr [ebp-4], 0 ' a+ Z, U+ _. o/ g; E% w Y
00401295 |. 75 10 jnz short 004012A7 2 S. v% }! ?% f2 d G* d
00401297 |. 83C4 F4 add esp, -0C
% G$ x& F* m/ z% e% E0 q0040129A |. 68 1C124000 push 0040121C ; /format = "Can't Find input.txt!" 7 Z$ G% M8 N8 X" I" \7 _
0040129F |. E8 8C010000 call <jmp.&msvcrt.printf> ; \\printf
- [ j# V. L. l0 Q: e: o/ {004012A4 |. 83C4 10 add esp, 10 6 Z) I) a: N3 L* I$ H! ~
004012A7 |> 83C4 F8 add esp, -8 1 C" V9 u' q+ t" g% s
004012AA |. 68 32124000 push 00401232 ; /mode = "w"
4 [& y2 w: ~7 n004012AF |. 68 34124000 push 00401234 ; |path = "output.txt" ) q! H& Q) D; M4 B8 b) e
004012B4 |. E8 7F010000 call <jmp.&msvcrt.fopen> ; \\fopen ) p: V* o* {6 N
004012B9 |. 83C4 10 add esp, 10
$ k1 ?8 V3 Y3 k ?. g004012BC |. 89C0 mov eax, eax ) Q5 Z( T4 i/ i% y V: `8 ]
004012BE |. 8945 F8 mov dword ptr [ebp-8], eax
6 R7 @6 p1 \( J004012C1 |. 837D F8 00 cmp dword ptr [ebp-8], 0
: Q7 |/ |3 N* M+ ? q/ J* m1 A004012C5 |. 75 10 jnz short 004012D7
% l# Z' C/ R/ h: \004012C7 |. 83C4 F4 add esp, -0C
% j) n5 N3 ~: [6 u5 n+ r2 M, }004012CA |. 68 3F124000 push 0040123F ; /format = "Can't Create output.txt!"
9 k1 Q! x) h$ B3 M7 K004012CF |. E8 5C010000 call <jmp.&msvcrt.printf> ; \\printf 3 X. u+ t3 I3 b3 A: s" B
004012D4 |. 83C4 10 add esp, 10 6 I+ f+ V0 {7 X5 o
004012D7 |> 83C4 F4 /add esp, -0C
* D! T3 w6 s& w004012DA |. 8B45 FC |mov eax, dword ptr [ebp-4] 3 C( X* m$ b# B
004012DD |. 50 |push eax ; /stream / A# M# O" H. n" ~
004012DE |. E8 45010000 |call <jmp.&msvcrt.fgetc> ; \\fgetc : r& w5 I$ M& X4 \1 @, u- |3 A
004012E3 |. 83C4 10 |add esp, 10 : c, W) n- f; M/ v/ t( U$ g
004012E6 |. 89C0 |mov eax, eax ! D3 `( ~. g* `" V
004012E8 |. 8945 F4 |mov dword ptr [ebp-C], eax
. s0 i% q# Y) \8 [0 ~004012EB |. 817D F4 80000>|cmp dword ptr [ebp-C], 80
5 u7 F. }- R& o5 i! h004012F2 |. 7F 23 |jg short 00401317 . D$ t: F* k& `) z! L) r k6 e& Y
004012F4 |. 83C4 F8 |add esp, -8
5 v. K; u! N6 u$ g004012F7 |. 8B45 F8 |mov eax, dword ptr [ebp-8] 6 Y" _1 x+ D+ u" F! l
004012FA |. 50 |push eax ; /stream
$ S+ a( e H M% C) v- v004012FB |. 8B45 F4 |mov eax, dword ptr [ebp-C] ; | , O) f: U( l2 B/ B- K: }/ S# q
004012FE |. 50 |push eax ; |c * v9 L/ T+ K! ~0 r- a
004012FF |. E8 1C010000 |call <jmp.&msvcrt.fputc> ; \\fputc ; v! g$ G# C. e$ x5 N6 @
00401304 |. 83C4 10 |add esp, 10 5 }) y' v3 l, T0 `7 B
00401307 |. 83C4 F4 |add esp, -0C . S; m$ G g& `- w# I
0040130A |. 68 58124000 |push 00401258 ; /format = "one char outputed",LF,"" $ U( T+ e/ h; t1 w8 @
0040130F |. E8 1C010000 |call <jmp.&msvcrt.printf> ; \\printf 1 w/ O" x; ^6 O( X
00401314 |. 83C4 10 |add esp, 10 ! G9 Z, o4 i" q& _# e' T$ o7 a% F3 |
00401317 |> 837D F4 FF |cmp dword ptr [ebp-C], -1 4 L( z% E) k# k
0040131B |. 75 03 |jnz short 00401320 ) W9 P c1 q+ k" y+ i) l
0040131D |. EB 03 |jmp short 00401322 4 b' M( z i( L- G- k
0040131F | 90 |nop
( \. s9 \! ]; t00401320 |>^ EB B5 \\jmp short 004012D7
# U; y6 n' Z1 i2 B2 \" G" T& K00401322 |> C9 leave 7 f- z) w5 m' _; @: b1 |
00401323 \\. C3 retn
3 {- ^) p* Z' X/ O: k7 ~( y r00401324 00 db 00 7 T( b( ^3 Z; ]- h& p
00401325 00 db 00 $ F# s* t- p% S
00401326 00 db 00
6 Q0 v# U4 ~3 h00401327 00 db 00
, m6 J- G: ~# P+ Y3 r! y00401328 00 db 00 : V! D+ ]+ d: s1 T. ?1 S7 @$ S7 G
00401329 00 db 00
x2 Z- ~& c% T. a" E" r0040132A 00 db 00 . ~! i) \' S" y1 j$ d
0040132B 00 db 00
- Y5 Q# J# E) a5 L. h3 y' O0040132C 00 db 00 8 e$ T* M" f3 d8 a0 P$ I0 K# [
0040132D 00 db 00 . P; z" y }/ l7 C
0040132E 00 db 00 % r0 S- i# k8 A, n& w
0040132F 00 db 00
- t6 n/ q Q( z4 d3 Q9 E00401330 /. 55 push ebp
! @* Q$ |2 o" X6 w00401331 |. 89E5 mov ebp, esp
4 O) Y7 n3 k( J; n00401333 |. 83EC 08 sub esp, 8 # o5 e) B' z4 ^. | W
00401336 |. A1 10204000 mov eax, dword ptr [402010] + f! W' {' e# x% I' x
0040133B |. 8338 00 cmp dword ptr [eax], 0
1 L* _( _+ @0 f9 c9 I& Q b! E/ x# F0040133E |. 74 1D je short 0040135D 3 T9 u; H2 j0 P/ [6 F( `: o! T
00401340 |> A1 10204000 /mov eax, dword ptr [402010] ' ?, {* q- I2 }9 K% [
00401345 |. 8B00 |mov eax, dword ptr [eax] 2 @5 o% D/ P3 a- B0 p1 V' @6 h
00401347 |. FFD0 |call eax 5 ^/ G( f% r4 v9 @/ [
00401349 |. A1 10204000 |mov eax, dword ptr [402010] % c- E R% k" R5 c6 Q
0040134E |. 8D50 04 |lea edx, dword ptr [eax+4] 4 Y1 w" I/ p7 U. r
00401351 |. 8915 10204000 |mov dword ptr [402010], edx ! W/ Y5 I% h9 H$ d4 D3 O
00401357 |. 8378 04 00 |cmp dword ptr [eax+4], 0 ' P N1 D6 ^2 E# [ P0 I) j6 T% B
0040135B |.^ 75 E3 \\jnz short 00401340
6 g; W- _/ A& \: R& F" D! r0040135D |> C9 leave 0 F+ M+ Y$ C9 @
0040135E \\. C3 retn
( y, k2 ~2 }1 f0 [# L0040135F 90 nop
8 q0 S0 [/ g2 B9 t# |00401360 /$ 55 push ebp 6 u% v' _7 M/ T R3 B( N: ^5 m
00401361 |. 89E5 mov ebp, esp
* F9 N% Q, q w2 h1 O00401363 |. 83EC 14 sub esp, 14 8 V- ? F3 a" B$ X5 W0 O" s( `8 E
00401366 |. 53 push ebx . I" J. x, }/ o% C
00401367 |. A1 58144000 mov eax, dword ptr [401458] ; }2 o4 Q* ?0 i6 l3 q r
0040136C |. 83F8 FF cmp eax, -1 $ ]9 N3 L% G2 q2 C0 L% S5 ^
0040136F |. 75 19 jnz short 0040138A
- |) S$ h: g5 |, s8 b% t00401371 |. 31C0 xor eax, eax - V/ D- V5 j- H! n1 V- G
00401373 |. 833D 5C144000>cmp dword ptr [40145C], 0
/ a- V; ^3 [- W( S7 \0040137A |. 74 0E je short 0040138A
2 z F4 a. Z) k, C8 n2 @ \0040137C |. BA 5C144000 mov edx, 0040145C
7 ^9 ] ~/ m5 V3 k5 \& S00401381 |> 83C2 04 /add edx, 4
0 O% K: R5 O }& r T' y- j00401384 |. 40 |inc eax
1 O9 P2 m9 z8 O0 F7 v, D3 f00401385 |. 833A 00 |cmp dword ptr [edx], 0 4 f3 a2 }, H+ Z; p4 u& X! V
00401388 |.^ 75 F7 \\jnz short 00401381
( S6 v! T- I6 H, X0 e0040138A |> 89C3 mov ebx, eax
4 \# i0 Y/ L: e) q0040138C |. 85DB test ebx, ebx 4 l# {0 c5 h% |) a% g
0040138E |. 74 0C je short 0040139C
" y: t9 D" H- e5 l4 r5 I$ V00401390 |> 8B049D 581440>/mov eax, dword ptr [ebx*4+401458]
" r8 q: M/ U% |9 [" H" S* ~00401397 |. FFD0 |call eax
2 C2 t* f+ g2 K& N, D2 J00401399 |. 4B |dec ebx
* N+ d1 x, ]0 s0040139A |.^ 75 F4 \\jnz short 00401390 $ I: j% s& k6 p* O
0040139C |> 83C4 F4 add esp, -0C
: C9 n/ r, N6 b: K, E0040139F |. 68 30134000 push 00401330 ; /func = engoutpu.00401330 % C) m/ G6 u" M& \6 d
004013A4 |. E8 97000000 call <jmp.&msvcrt.atexit> ; \\atexit 8 I5 x G, r, a
004013A9 |. 8B5D E8 mov ebx, dword ptr [ebp-18] 0 L. G C1 `: [( P- ~) ~9 m9 `
004013AC |. C9 leave - A% ]* N0 k5 ^& Q' x
004013AD \\. C3 retn * F9 K8 ?, i% j; [
004013AE 89F6 mov esi, esi 0 O! C3 G! q# e# n( L
004013B0 /$ 55 push ebp
" o' n q5 N' y* X004013B1 |. 89E5 mov ebp, esp v4 G9 i& c1 O5 F/ @
004013B3 |. 83EC 08 sub esp, 8 : [! l, \7 F3 x& Y
004013B6 |. 833D 14204000>cmp dword ptr [402014], 0 5 S$ R" e% _: i& P1 i& p2 ?8 K' Y/ q
004013BD |. 75 0F jnz short 004013CE & G& P( S* @) E# a5 ^! y: i. ^& a3 C
004013BF |. C705 14204000>mov dword ptr [402014], 1
, W k" j5 o9 a: U, T004013C9 |. E8 92FFFFFF call 00401360
' h% f4 p% W4 g1 P$ U( O( t1 g* H004013CE |> C9 leave 2 H3 D9 H$ z! c0 v
004013CF \\. C3 retn - ~# c4 u0 Q# R$ [1 H
004013D0 .- FF25 AC304000 jmp dword ptr [<&msvcrt._fmode>] ; msvcrt._fmode * x1 p" H7 H4 B+ }* Y
004013D6 90 nop + a" C$ P5 X/ c
004013D7 90 nop % w- X: n4 J/ ~" Y: U
004013D8 .- FF25 B4304000 jmp dword ptr [<&msvcrt._iob>] ; msvcrt._iob
6 K& k% B9 Z# W9 j; t004013DE 90 nop
+ P2 q+ u. B/ Z5 E9 m9 _1 s( G004013DF 90 nop
- \' t6 \2 E. q/ ?8 Q; s& \7 a& X004013E0 .- FF25 DC304000 jmp dword ptr [<&msvcrt.__set_app_ty>; msvcrt.__set_app_type 2 L# p6 ~$ s. L) T6 R% w
004013E6 90 nop / u3 j! G* Y. R0 j
004013E7 90 nop
5 S) n4 P0 o% i3 @: j* X0 t! R004013E8 $- FF25 A4304000 jmp dword ptr [<&msvcrt._cexit>] ; msvcrt._cexit
2 H' g% H0 A6 l7 l- s9 x4 M004013EE 90 nop
7 u( x- C/ c8 Y004013EF 90 nop / ^( s" u% L x. K' t4 T6 `
004013F0 $- FF25 D0304000 jmp dword ptr [<&msvcrt.__p__environ>; msvcrt.__p__environ
A$ ]; G& D7 ?; C/ d4 l004013F6 90 nop
$ | B0 h1 t# ^/ i% k. J9 m5 b" t! V004013F7 90 nop / C$ m9 \3 |; i
004013F8 $- FF25 B0304000 jmp dword ptr [<&msvcrt._fpreset>] ; msvcrt._fpreset r: W8 C" r& b, H: U5 ~4 L- J6 y. v% X
004013FE 90 nop
' H# f3 L3 S* w4 ~8 q' }004013FF 90 nop
" [" x8 {. F8 C00401400 $- FF25 D8304000 jmp dword ptr [<&msvcrt.signal>] ; msvcrt.signal 1 |$ w8 G0 s1 H3 K' l
00401406 90 nop
# H, ~0 _# g2 s4 d2 f00401407 90 nop / _' i; }! a( w1 ?
00401408 $- FF25 A8304000 jmp dword ptr [<&msvcrt._fileno>] ; msvcrt._fileno " @$ u$ y8 v( Y
0040140E 90 nop
7 @6 E: j8 x. ?' V0040140F 90 nop
& P3 r/ g2 W) [+ `# n00401410 $- FF25 B8304000 jmp dword ptr [<&msvcrt._setmode>] ; msvcrt._setmode * P! X$ {: X7 g2 H/ L% |
00401416 90 nop 5 ]- O; d; h+ i( b _
00401417 90 nop
. J/ X, f: a1 Y% D00401418 $- FF25 BC304000 jmp dword ptr [<&msvcrt.__getmainarg>; msvcrt.__getmainargs
& }0 A* }' e- I+ N! ?% G0 ^+ Z0040141E 90 nop
6 N* J0 e5 a; s; f% m. m4 `; m% `0040141F 90 nop
: {$ u3 ]9 n% o, v v4 Q4 I3 `' A) r00401420 $- FF25 CC304000 jmp dword ptr [<&msvcrt.fputc>] ; msvcrt.putc
% M6 Y$ z0 R1 Y6 ^: N8 y4 v1 F00401426 90 nop
: G# M* N; h# @- ^00401427 90 nop & \4 ^( \' Z& \
00401428 $- FF25 C4304000 jmp dword ptr [<&msvcrt.fgetc>] ; msvcrt.getc # G2 I T3 U4 R; [& U) V7 T
0040142E 90 nop
* c1 Z' V* q9 Q5 U2 J j0040142F 90 nop R# I9 @: p$ }1 L1 B6 k; l. d
00401430 $- FF25 D4304000 jmp dword ptr [<&msvcrt.printf>] ; msvcrt.printf
* k3 d0 ?0 n: G8 `5 W00401436 90 nop
# O8 a# |) s0 y00401437 90 nop
/ |* k8 ?9 M1 ?- d* ~00401438 $- FF25 C8304000 jmp dword ptr [<&msvcrt.fopen>] ; msvcrt.fopen
1 C! X- s2 n; d2 r/ B* ]5 j+ Y- O0040143E 90 nop
; a4 { V8 s' a: u# g6 e2 c/ g/ U0040143F 90 nop
! I; Q$ ~% i- [5 s: [00401440 $- FF25 C0304000 jmp dword ptr [<&msvcrt.atexit>] ; msvcrt.atexit 8 U& u) y- N' L) I' m
00401446 90 nop
4 l$ a+ g* M1 T U00401447 90 nop
8 J! r1 w- Q# |# Q/ Z. S a00401448 $- FF25 98304000 jmp dword ptr [<&KERNEL32.SetUnhandl>; kernel32.SetUnhandledExceptionFilter 5 U6 j4 o$ R; ^: I* C3 s
0040144E 90 nop
$ \/ K3 w9 Q$ h+ f. L0040144F 90 nop
+ a+ M- F X w# r) i1 {4 y00401450 .- FF25 94304000 jmp dword ptr [<&KERNEL32.ExitProces>; kernel32.ExitProcess 6 j# s# p( Q* ^) w
00401456 90 nop
: z8 W- `, Q4 j: Y& h0 W! \00401457 90 nop
# M( v" O( B6 B8 N7 b! }0 F00401458 . FFFFFFFF dd FFFFFFFF / l; [- M% i8 t0 h1 L) L3 I
0040145C . 00000000 dd 00000000 5 f! f: l8 }+ Z C+ u; g0 F) G. }
00401460 FF db FF
! v, B9 e/ D ~: E) E; B& x00401461 FF db FF 6 [* _' T: H# k/ Z/ l
00401462 FF db FF 7 _& I: l$ | { m1 W2 b W
00401463 FF db FF
0 _, ?. s% ?" L00401464 00 db 00
& H) L9 j2 b7 `- P/ C$ c00401465 00 db 00 ( a- t. f) n L( P( ]/ [/ F1 @/ k
00401466 00 db 00 2 C1 R' j0 a- v2 p$ ?: J9 w0 r
00401467 00 db 00 |