由于这个程序很短,OD里面的汇编代码也很短。
' f) F8 T% i# n. i0 V请看红色的部分,这就是和0x80比较的部分。
4 i0 i2 x; s! [* Z; C把这2句NOP掉,然后保存修改后的文件为exe。
% k- A: |4 B" k8 `我们发现input.txt里面的所有内容都能被输出了。
7 D {# x5 [+ x( @附上修改后的exe.
* o8 M# L" A. R9 c深绿,你可以把这个操作过程试一下,练习一下. 4 f. [0 m' K$ w
9 ?# k" W+ f o3 e0 l0 I& ]; ~00401000 /$ 55 push ebp " x. \6 {" i1 a2 M' ^. [* a
00401001 |. 89E5 mov ebp, esp 7 x# v# B+ ]& F, ^5 {7 d- o/ ^
00401003 |. 83EC 18 sub esp, 18
. `9 F' e( t( X00401006 |. C745 FC 00000>mov dword ptr [ebp-4], 0
0 F& f- B$ w6 o: ]* K# A0040100D |. 83C4 F4 add esp, -0C
2 g5 j- `" |$ x" `+ X! H00401010 |. 8D45 FC lea eax, dword ptr [ebp-4] % T/ g7 u5 {( ?( Y% d1 }( @! o
00401013 |. 50 push eax ! ^$ ~ T* O" p- J" w* K r
00401014 |. FF35 08204000 push dword ptr [402008]
% k. i) f: o) h8 P0 K& Q0040101A |. 8D45 F8 lea eax, dword ptr [ebp-8]
0 r* r3 x' y0 `2 |1 z J" l! A. [0040101D |. 50 push eax 7 T) J7 v: _2 h/ f1 h, |, w
0040101E |. 68 04204000 push 00402004 ; C* R) B2 E8 M6 V5 e( ~$ e' g4 D
00401023 |. 68 00204000 push 00402000
4 u& X& E5 v% b0 L00401028 |. E8 EB030000 call <jmp.&msvcrt.__getmainargs> |) ?% ~: } C( @
0040102D |. C9 leave
* J% j, q) t. [" U0040102E \\. C3 retn 3 n9 Z( i4 R H$ r
0040102F 90 nop 7 d, Q$ N: S4 b
00401030 /$ 55 push ebp
% i* y! h; F/ g00401031 |. 89E5 mov ebp, esp : C! \( @3 J$ d+ I7 V. U: x
00401033 |. 83EC 08 sub esp, 8
6 W/ u' a u0 W' b3 l0 h/ d8 r00401036 |. 8B15 0C204000 mov edx, dword ptr [40200C]
) Y: q. ?; v ]6 g! \0040103C |. 85D2 test edx, edx
9 d; t2 J" ?( c0 \. ` W! g0040103E |. 74 7B je short 004010BB % l. a2 q* B' P
00401040 |. A1 AC304000 mov eax, dword ptr [<&msvcrt._fmode>> ( ~! v! Q% I& H( k' S# ?! U
00401045 |. 8910 mov dword ptr [eax], edx
- o: |" ^8 B1 r' O00401047 |. A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] 8 @7 l; E* G) J" c. R
0040104C |. 85C0 test eax, eax
" K' D' R' j0 k0040104E |. 74 1E je short 0040106E
3 v, k+ S1 J9 m5 U5 y, v) O00401050 |. 83C4 F8 add esp, -8 , E' y# ?" K; e9 ?+ v7 t
00401053 |. FF35 0C204000 push dword ptr [40200C]
9 e% M* q5 ?5 N7 F/ Q8 P. E$ j00401059 |. 83C4 F4 add esp, -0C % D) e% \( i+ i* S7 Q. M& W' ~9 K
0040105C |. 50 push eax ; /pstream => offset msvcrt._iob
; W: m" ?$ I0 v& y5 t2 ]* M0040105D |. E8 A6030000 call <jmp.&msvcrt._fileno> ; \\_fileno
8 N+ X: V4 Z7 X00401062 |. 83C4 10 add esp, 10 / l9 e2 V# P% [; ]7 }
00401065 |. 50 push eax ; |handle
: s8 Z: t6 r0 z. ]4 g7 {00401066 |. E8 A5030000 call <jmp.&msvcrt._setmode> ; \\_setmode
; o' k8 y7 u' Q* M! z5 i0040106B |. 83C4 10 add esp, 10
* w" Y8 x) A" I- ?0040106E |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] ! B# z) l) z; r
00401073 |. 83C0 20 add eax, 20 3 x! o/ z8 c% Q+ B8 P; @9 Z2 ?
00401076 |. 74 1E je short 00401096
! w& r6 G3 S- U A00401078 |. 83C4 F8 add esp, -8
7 v, D a* D% H( v4 E% c# S& t0040107B |. FF35 0C204000 push dword ptr [40200C] ' `6 T3 d, S5 u5 H1 j0 d; `
00401081 |. 83C4 F4 add esp, -0C 5 w" X8 F+ G+ i2 ~3 d, W) D) P
00401084 |. 50 push eax ; /pstream
: P l4 {6 V7 m4 r" S00401085 |. E8 7E030000 call <jmp.&msvcrt._fileno> ; \\_fileno
) U/ o! N! X: G) ^5 N! }( N0040108A |. 83C4 10 add esp, 10 % B6 r) H' w3 c+ F( k, P: @, g
0040108D |. 50 push eax ; |handle
# G$ @8 T5 s6 O0040108E |. E8 7D030000 call <jmp.&msvcrt._setmode> ; \\_setmode
+ s: I' Z: A% n, g4 p00401093 |. 83C4 10 add esp, 10
" w/ H' O2 A8 |00401096 |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
, a0 x. ~+ S3 R+ U7 L0040109B |. 83C0 40 add eax, 40
* d& t$ C) M# J6 h1 M2 ~0040109E |. 74 1B je short 004010BB 2 f1 S9 D6 S% R* O C! {- X
004010A0 |. 83C4 F8 add esp, -8
1 a& N' U! P- D004010A3 |. FF35 0C204000 push dword ptr [40200C]
8 n/ l0 g* G' Y004010A9 |. 83C4 F4 add esp, -0C 8 H* m" H# Y) W% ^; j% x
004010AC |. 50 push eax ; /pstream
+ X2 d: F7 ?6 ]: Q- M004010AD |. E8 56030000 call <jmp.&msvcrt._fileno> ; \\_fileno $ H# B$ u" N3 ]7 [/ d% a) o) p
004010B2 |. 83C4 10 add esp, 10
1 q. s# o8 ^. s! e) u$ i3 Z004010B5 |. 50 push eax ; |handle
6 _' x/ l4 Q m l( z9 |004010B6 |. E8 55030000 call <jmp.&msvcrt._setmode> ; \\_setmode / r/ H2 a0 |5 F1 T) f/ d$ m* k
004010BB |> C9 leave
7 X7 ]! f" _4 W" B004010BC \\. C3 retn 5 E S, w4 ?/ z! m- l
004010BD 8D76 00 lea esi, dword ptr [esi] ( X9 O# L4 ^- i2 G& a
004010C0 /. 55 push ebp
8 C( | z* E( |* D' C( k% l004010C1 |. 89E5 mov ebp, esp $ f0 O( B8 c r( F
004010C3 |. 83EC 10 sub esp, 10
: U% L- _7 E% R' m f, U" Z004010C6 |. 56 push esi ' B2 n' W- j( n% H
004010C7 |. 53 push ebx - e' `: i( f& v' W+ d
004010C8 |. 8B45 08 mov eax, dword ptr [ebp+8] + K# i/ y1 Z. V l- L
004010CB |. 31DB xor ebx, ebx ; c" R5 U" E! U x4 v2 |
004010CD |. 31F6 xor esi, esi
" d. l, r, G& F$ p- _7 O1 i E' H004010CF |. 8B00 mov eax, dword ptr [eax] ( ~% S9 f0 C7 z: I6 C- z" i9 u3 A
004010D1 |. 8B00 mov eax, dword ptr [eax]
' m8 x. A3 m, `& t7 J, \. b+ B/ [004010D3 |. 3D 910000C0 cmp eax, C0000091 $ K, d4 U0 ^; |# I( J
004010D8 |. 77 16 ja short 004010F0 # J8 E" u+ \/ ], M
004010DA |. 3D 8D0000C0 cmp eax, C000008D
6 G( ^5 \ ~! n& ?1 X004010DF |. 73 4F jnb short 00401130 ) s% \9 B6 d) W0 A8 ?9 i6 t4 Z
004010E1 |. 3D 050000C0 cmp eax, C0000005
% `; a* S9 E, }4 u5 u9 M; F5 }004010E6 |. 74 18 je short 00401100 * W3 n8 N7 \3 J3 ^% ~+ u3 q1 e6 K
004010E8 |. E9 86000000 jmp 00401173
6 M% C Q2 I" J004010ED | 8D76 00 lea esi, dword ptr [esi] 9 L. e$ m2 w' E3 N* f4 g ~' n. r
004010F0 |> 3D 930000C0 cmp eax, C0000093
! D# e/ a1 B0 c004010F5 |. 74 39 je short 00401130
3 N w+ a I& H; q! O1 J3 v: p, i1 j004010F7 |. 3D 940000C0 cmp eax, C0000094
4 t. Z: r Q4 }/ L: i+ p004010FC |. 74 37 je short 00401135 * i5 G8 Y/ y4 B. l/ J- E
004010FE |. EB 73 jmp short 00401173
% K# k9 d2 U3 z( D) T00401100 |> 83C4 F8 add esp, -8
# h1 J$ X' @2 T: d2 H00401103 |. 6A 00 push 0 ; /func = NULL & f- m8 C1 Y+ W: I. {' v [" P
00401105 |. 6A 0B push 0B ; |sig = SIGSEGV - X) i5 M2 k" b, U
00401107 |. E8 F4020000 call <jmp.&msvcrt.signal> ; \\signal / x3 V0 N; f7 N; g4 p' C- I2 D
0040110C |. 83C4 10 add esp, 10
& E0 ?" p5 V* k3 N8 A0040110F |. 83F8 01 cmp eax, 1 7 \0 E) Z8 L. q
00401112 |. 75 0E jnz short 00401122
1 M9 @$ {. T3 O4 W+ I H00401114 |. 83C4 F8 add esp, -8
% u+ H2 u$ Q+ A* v6 O* ?00401117 |. 6A 01 push 1 ; /func = 00000001 - P4 z3 ~$ L# k5 Y5 T6 z9 s: S( s1 n& ?
00401119 |. 6A 0B push 0B ; |sig = SIGSEGV
& J1 f2 O& g: ~+ B& F8 a S0040111B |. E8 E0020000 call <jmp.&msvcrt.signal> ; \\signal 7 q5 r# }$ u+ p$ n# c' c5 N8 @
00401120 |. EB 4C jmp short 0040116E
) S: [) A+ D, m+ g- B q00401122 |> 85C0 test eax, eax 3 A- _# E [+ G% r/ I
00401124 |. 74 4D je short 00401173 ' J# f& u |0 v) T2 r/ x4 C
00401126 |. 83C4 F4 add esp, -0C 5 z' _: I2 U9 x4 ]( L; k
00401129 |. 6A 0B push 0B
2 x p# L! G3 @6 h9 K0040112B |. EB 3F jmp short 0040116C
6 q6 `3 F7 F0 T! k0040112D | 8D76 00 lea esi, dword ptr [esi]
4 e; O v# N- @, _3 y: j00401130 |> BE 01000000 mov esi, 1
5 q/ o; R- i t" j$ y6 j00401135 |> 83C4 F8 add esp, -8
$ y) G* M8 ~: |- \+ m0 S, |# d00401138 |. 6A 00 push 0 ; /func = NULL
3 p/ R: s! p0 o% S0040113A |. 6A 08 push 8 ; |sig = SIGFPE ) m4 G# P6 t6 \. t
0040113C |. E8 BF020000 call <jmp.&msvcrt.signal> ; \\signal J8 X# Q: `. Z9 ~5 G6 m7 ?, F
00401141 |. 83C4 10 add esp, 10
) m8 M% l$ R9 I7 _2 |9 R00401144 |. 83F8 01 cmp eax, 1
$ U' t+ @, s8 Q2 y& y& p; ~00401147 |. 75 1A jnz short 00401163 2 z2 m: O& I& y+ \* }
00401149 |. 83C4 F8 add esp, -8
% j6 b; J% ~$ a! e# a0040114C |. 6A 01 push 1 ; /func = 00000001
2 J& \# J" l: f7 F+ P. K, X0040114E |. 6A 08 push 8 ; |sig = SIGFPE 2 [/ g; S, M. _$ M6 t7 c' v/ [
00401150 |. E8 AB020000 call <jmp.&msvcrt.signal> ; \\signal / E* W# c! D; s% K/ t
00401155 |. 83C4 10 add esp, 10 + Q2 L% Q: a1 D- q8 O. \
00401158 |. 85F6 test esi, esi
% z6 c, a4 {$ W0040115A |. 74 12 je short 0040116E 3 z* f, Q5 b: @2 f
0040115C |. E8 97020000 call <jmp.&msvcrt._fpreset> ; [_fpreset
0 E& m- i+ A9 z: B00401161 |. EB 0B jmp short 0040116E + d4 P( \2 _9 w; ]% E) w
00401163 |> 85C0 test eax, eax
8 P" R2 B1 {. B00401165 |. 74 0C je short 00401173 / I/ _2 X4 J3 T0 O
00401167 |. 83C4 F4 add esp, -0C
+ \& E* ?6 C/ O' C0040116A |. 6A 08 push 8
& L3 S, E4 T& m+ P0040116C |> FFD0 call eax
7 q! P3 o( E; D4 T. n9 ?! f0040116E |> BB FFFFFFFF mov ebx, -1 % b4 }+ E6 G6 J8 k9 \
00401173 |> 89D8 mov eax, ebx
& {) _! q0 D- O; ]2 g5 Q00401175 |. 8D65 E8 lea esp, dword ptr [ebp-18]
6 O% V; j8 b! |- t00401178 |. 5B pop ebx
7 u" j' B: I+ M7 _+ B' H# B# d) Z, V; t00401179 |. 5E pop esi & `! ^: `- A1 @$ R# H
0040117A |. C9 leave
) h8 q3 i, {% k, ?4 {0040117B \\. C2 0400 retn 4 $ L) v9 T5 A: X* L) U
0040117E 89F6 mov esi, esi
/ O1 H/ [- j5 L/ P/ m a/ v/ G00401180 /$ 55 push ebp & p7 C0 S6 q: Z J6 }
00401181 |. 89E5 mov ebp, esp - C8 @. |) a; |7 Y- q( d7 \2 B
00401183 |. 83EC 14 sub esp, 14 . j6 Y9 l# I2 w% E7 }4 Y, W
00401186 |. 53 push ebx
" g2 h3 h% W7 k0 J00401187 |. 83C4 F4 add esp, -0C
) Y8 X9 n# R3 j1 M3 s0040118A |. 68 C0104000 push 004010C0 ; /pTopLevelFilter = engoutpu.004010C0 . Q4 o. ~) M$ S+ Y% _
0040118F |. E8 B4020000 call <jmp.&KERNEL32.SetUnhandledExcep>; \\SetUnhandledExceptionFilter
8 i( r, f/ G) ? b1 J8 x2 \! a00401194 |. 83C4 FC add esp, -4
2 _3 A5 I( G, y2 E) i( U& R! U00401197 |. E8 5C020000 call <jmp.&msvcrt._fpreset> ; [_fpreset 6 D- u/ A5 l# ^( T! ]
0040119C |. E8 5FFEFFFF call 00401000
+ z" l+ J# b ]004011A1 |. E8 8AFEFFFF call 00401030
% y' f2 Z# a3 D |5 x) j004011A6 |. 83C4 FC add esp, -4 . e& D! R$ C! D1 W( y
004011A9 |. E8 42020000 call <jmp.&msvcrt.__p__environ>
3 w2 n8 x* R( Y( N2 y2 C* ~+ p004011AE |. FF30 push dword ptr [eax] ( B+ |" @$ E& [% {
004011B0 |. FF35 04204000 push dword ptr [402004] ; t+ \9 }, e; E+ N+ M
004011B6 |. FF35 00204000 push dword ptr [402000] ( F2 p/ T4 @7 U6 N4 D
004011BC |. E8 AB000000 call 0040126C ( W6 m9 V, O' G4 E7 V. |- Q
004011C1 |. 89C3 mov ebx, eax
8 w+ h, E" H( B0 `. g& _- ^004011C3 |. 83C4 20 add esp, 20 - `1 N' b& Z2 }% g0 J3 p
004011C6 |. E8 1D020000 call <jmp.&msvcrt._cexit> ; [msvcrt._cexit . W1 F3 w/ I4 o$ a+ S' x
004011CB |. 83C4 F4 add esp, -0C
. Y) @ w* ]9 s8 B4 x" W; H5 N; a7 y004011CE |. 53 push ebx ; /ExitCode
, L2 n! @+ n6 Y004011CF \\. E8 7C020000 call <jmp.&KERNEL32.ExitProcess> ; \\ExitProcess 5 K3 I# |, i( a3 B% G; Z4 r$ o n
004011D4 >/$ 55 push ebp
# r5 Z s F- s' C004011D5 |. 89E5 mov ebp, esp
0 d# q$ K p3 }! O9 p; K- z' a004011D7 |. 83EC 08 sub esp, 8 % |& g* T" S: }) F) J8 O) e
004011DA |. 83C4 F4 add esp, -0C " ]9 p& c8 M& m6 h' U/ G9 n4 }
004011DD |. 6A 01 push 1 9 m2 E" A3 S3 x a+ Z: Y
004011DF |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a>
% J: T) n2 d- t' W! R0 x004011E4 |. FFD0 call eax ; <&msvcrt.__set_app_type> g$ t9 p7 x$ Y, O) Z/ A! E6 o* B% w
004011E6 |. E8 95FFFFFF call 00401180
6 L7 D" D! o2 G+ x: P6 w004011EB |. 31C0 xor eax, eax + x# c+ _( |4 P- m$ A6 {2 }
004011ED |. C9 leave
# ^6 k9 D1 R: L D% x004011EE \\. C3 retn
+ d, j8 X; h1 w% C/ Q004011EF 90 nop
5 z9 J3 ?9 v- l; \" e6 ?! E004011F0 /. 55 push ebp ( T/ ]$ y( i$ j6 V
004011F1 |. 89E5 mov ebp, esp : n1 Y, Z0 r+ a* Y" m* l3 s( I
004011F3 |. 83EC 08 sub esp, 8 ' W* [# D2 ^* {. m
004011F6 |. 83C4 F4 add esp, -0C
2 D z; Y$ N: X004011F9 |. 6A 02 push 2 2 V5 l6 ] M! P! R7 m! m# \5 l. E4 B! @
004011FB |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> # W/ L1 l" ?2 l, s/ u
00401200 |. FFD0 call eax ; <&msvcrt.__set_app_type> 4 ~6 U) s k; Z2 S; v
00401202 |. E8 79FFFFFF call 00401180
" R5 L2 f9 i Y6 A00401207 |. C9 leave
3 ]# C( Z' g) K/ L" `. b00401208 \\. C3 retn
. a7 T7 ]0 S* w# O$ O, m00401209 00 db 00 9 `' ]+ |$ `# ?/ R0 O2 q% a; W
0040120A 00 db 00 % R P) X5 d; k6 {3 @
0040120B 00 db 00
0 J1 ]$ ^2 U, l) k8 X+ }0040120C 00 db 00 ; n+ P* |. K- G/ {1 c+ z* |
0040120D 00 db 00
$ E' Y- {& B6 @& q* |+ n! J# @0040120E 00 db 00
5 }, ]8 F' N1 r0040120F 00 db 00
% z) m+ P( |* U00401210 72 db 72 ; CHAR 'r'
0 ^2 _/ L1 t( ]2 g00401211 00 db 00 ' c0 o" j2 J p, L+ U1 R# m. b
00401212 . 69 6E 70 75 7>ascii "input.txt",0
j9 m" z& ^/ l/ i) m0040121C . 43 61 6E 27 7>ascii "Can't Find input" " m7 ^# z6 z- M" _- W
0040122C . 2E 74 78 74 2>ascii ".txt!",0 & f$ O' w( y- E# j$ Y( Z
00401232 77 db 77 ; CHAR 'w' : Y8 R' x! d! S6 T
00401233 00 db 00
+ A3 d) h8 e# P7 \0 b2 W) e00401234 . 6F 75 74 70 7>ascii "output.txt",0 ! k/ m" ~* T0 X. f* j7 I. r# l
0040123F . 43 61 6E 27 7>ascii "Can't Create out" 9 z- q1 v( W8 o0 K) Y1 L
0040124F . 70 75 74 2E 7>ascii "put.txt!",0 " U, g" K, F4 B# M) H
00401258 . 6F 6E 65 20 6>ascii "one char outpute" 1 o1 c1 U: B- B, J5 a
00401268 . 64 0A 00 ascii "d - R3 w' S2 P& d; K7 v
",0
: G# g% |8 m" |$ \7 L K, @0040126B 90 nop 5 Z' Q G( |: m! X8 F8 m
0040126C /$ 55 push ebp
; M0 f& I/ f9 `# K2 y2 \0040126D |. 89E5 mov ebp, esp ( h: Y5 W0 m- Q: o
0040126F |. 83EC 18 sub esp, 18 5 B8 ]6 ^- Q% z0 k
00401272 |. E8 39010000 call 004013B0 2 y& s, `) H2 ]7 [7 _1 b& U
00401277 |. 83C4 F8 add esp, -8 7 L: [" ?' @6 d# e
0040127A |. 68 10124000 push 00401210 ; /mode = "r" $ U0 n0 X" D, D8 p' S X0 X- E
0040127F |. 68 12124000 push 00401212 ; |path = "input.txt" + P4 K1 Y6 J" f: P( S
00401284 |. E8 AF010000 call <jmp.&msvcrt.fopen> ; \\fopen
5 ]4 ^* @0 P9 J) n+ \00401289 |. 83C4 10 add esp, 10 # Z* i* D# j! C- m) h
0040128C |. 89C0 mov eax, eax ( w7 |8 y0 {7 J6 Q" F. _1 n7 g
0040128E |. 8945 FC mov dword ptr [ebp-4], eax ; ^, j+ {3 C6 ]8 r W* M( @
00401291 |. 837D FC 00 cmp dword ptr [ebp-4], 0 7 R# r' V1 i7 i9 f: o
00401295 |. 75 10 jnz short 004012A7 ; t/ x7 n( o0 K& S" z) m2 ?& a5 x8 J' u, j
00401297 |. 83C4 F4 add esp, -0C & x/ R8 `9 D! ?! Y
0040129A |. 68 1C124000 push 0040121C ; /format = "Can't Find input.txt!"
* n' q6 |2 Y5 ]5 [" R0040129F |. E8 8C010000 call <jmp.&msvcrt.printf> ; \\printf
( V) ? s' a. X0 k004012A4 |. 83C4 10 add esp, 10
2 F" K; e( E7 L1 T* Y# i004012A7 |> 83C4 F8 add esp, -8
% h. S, W. P8 `* [* V004012AA |. 68 32124000 push 00401232 ; /mode = "w" , p$ `1 J) Q+ c* H
004012AF |. 68 34124000 push 00401234 ; |path = "output.txt"
7 N2 D) @3 L: l8 I004012B4 |. E8 7F010000 call <jmp.&msvcrt.fopen> ; \\fopen 6 `6 G: v6 K0 i1 V9 e
004012B9 |. 83C4 10 add esp, 10
3 Y, @* C, q: _9 U2 }* z004012BC |. 89C0 mov eax, eax
- J$ h' [$ s; m& A1 A: f004012BE |. 8945 F8 mov dword ptr [ebp-8], eax ! P' z/ g1 O: f$ F( A# |
004012C1 |. 837D F8 00 cmp dword ptr [ebp-8], 0
. b( W9 e. ^# \004012C5 |. 75 10 jnz short 004012D7 ~: H U2 l+ u! `* s5 P
004012C7 |. 83C4 F4 add esp, -0C 1 O1 g, f4 x! u
004012CA |. 68 3F124000 push 0040123F ; /format = "Can't Create output.txt!"
4 l" z. Z+ F! |4 T7 }004012CF |. E8 5C010000 call <jmp.&msvcrt.printf> ; \\printf 4 D7 X+ g0 [$ V9 E! d
004012D4 |. 83C4 10 add esp, 10 8 k; ]2 S3 J$ q% ~( ?
004012D7 |> 83C4 F4 /add esp, -0C
9 C4 M- L' t2 z; `; {004012DA |. 8B45 FC |mov eax, dword ptr [ebp-4] / M9 U/ H6 `, e* \% A3 Q
004012DD |. 50 |push eax ; /stream / N% i" ^8 s' g' q
004012DE |. E8 45010000 |call <jmp.&msvcrt.fgetc> ; \\fgetc
; ]% \7 m+ w; j0 ?' e- } U" M: ?004012E3 |. 83C4 10 |add esp, 10 7 b( x1 u J* D+ P3 v8 `) f
004012E6 |. 89C0 |mov eax, eax * u& t. z" b2 K1 l' B7 i! Q
004012E8 |. 8945 F4 |mov dword ptr [ebp-C], eax . d* L% U( a- |& W) b0 X
004012EB |. 817D F4 80000>|cmp dword ptr [ebp-C], 80 6 i0 v6 c3 f" U- U$ s( V/ U
004012F2 |. 7F 23 |jg short 00401317
7 X2 E# k/ ?9 u! N. U004012F4 |. 83C4 F8 |add esp, -8
9 e0 e7 t. ^% J( V3 j8 I7 P* d004012F7 |. 8B45 F8 |mov eax, dword ptr [ebp-8] / g' e* x! q$ Z" U2 e9 {
004012FA |. 50 |push eax ; /stream
6 w8 O* M+ s- y004012FB |. 8B45 F4 |mov eax, dword ptr [ebp-C] ; |
) ?5 J8 G- \2 |, M5 s5 u+ ]. o004012FE |. 50 |push eax ; |c
; @% Y* ]% b' S% L! u004012FF |. E8 1C010000 |call <jmp.&msvcrt.fputc> ; \\fputc 1 J) F6 _( ^# u0 x) N$ k+ v
00401304 |. 83C4 10 |add esp, 10 5 G+ |- H0 ]) l5 j9 y G% p9 |
00401307 |. 83C4 F4 |add esp, -0C
5 ] B! n0 U* h0040130A |. 68 58124000 |push 00401258 ; /format = "one char outputed",LF,""
5 f8 C- T5 ]- H$ F2 n0040130F |. E8 1C010000 |call <jmp.&msvcrt.printf> ; \\printf
7 G/ S! v9 N$ F1 w8 u/ W00401314 |. 83C4 10 |add esp, 10 , V' U8 l, U4 s' l/ L+ J
00401317 |> 837D F4 FF |cmp dword ptr [ebp-C], -1 6 S* }$ U% g/ _
0040131B |. 75 03 |jnz short 00401320 & ]" q+ J/ \2 I& j3 `- U
0040131D |. EB 03 |jmp short 00401322
- a3 o% G2 O3 i2 K/ I6 Y0040131F | 90 |nop 3 C. N# R/ a; Q# b h
00401320 |>^ EB B5 \\jmp short 004012D7 ; U/ s. ^" m- E# r
00401322 |> C9 leave 4 x) |& `& [3 E" [5 g3 L/ i* q
00401323 \\. C3 retn
/ e" G" m6 g7 \$ S0 F00401324 00 db 00 / ~/ H8 d$ @+ l
00401325 00 db 00
, w/ `( }: O ~& i& N) b8 J, D, |00401326 00 db 00 2 m& Y0 Q- @+ P% D' E+ Y
00401327 00 db 00 ) R1 ^+ l' Q& _, f- N
00401328 00 db 00
" H7 F4 h/ s$ t* P: S9 ]" l00401329 00 db 00
0 |* J6 w, }4 C! C. }8 K0040132A 00 db 00 1 {. v$ Y: V0 ]3 _9 G6 K5 k) a
0040132B 00 db 00
& ?8 X1 X( R( g3 P0040132C 00 db 00
' u' j1 ?' E: a$ a9 c0040132D 00 db 00
6 u) w/ w# m# E8 E% J6 R+ x7 z0040132E 00 db 00
8 _1 A. m0 T9 K H2 K; c, V0040132F 00 db 00 7 b g2 K0 D: Y& B- Y* w: y( i
00401330 /. 55 push ebp
3 z O6 y0 W. G00401331 |. 89E5 mov ebp, esp # h3 T1 g' J. X) ^2 M6 B
00401333 |. 83EC 08 sub esp, 8
9 m. c, f. V! X# G0 @- Q ~8 ~00401336 |. A1 10204000 mov eax, dword ptr [402010] 8 t& f5 g k! j: t& x V
0040133B |. 8338 00 cmp dword ptr [eax], 0
% _* V: d4 T0 P( b0040133E |. 74 1D je short 0040135D 1 w$ W: _4 e: X2 S0 f
00401340 |> A1 10204000 /mov eax, dword ptr [402010] , ? J& o. _( g) K- W# ]' [
00401345 |. 8B00 |mov eax, dword ptr [eax]
1 @* {1 K, |7 E& _( t" y0 F* }4 u00401347 |. FFD0 |call eax
& y2 v) `# {& f0 {00401349 |. A1 10204000 |mov eax, dword ptr [402010] ( h' A) H2 }( a) b! B) c
0040134E |. 8D50 04 |lea edx, dword ptr [eax+4]
1 ?1 D* v! q) [! ?5 S4 y00401351 |. 8915 10204000 |mov dword ptr [402010], edx
) T/ D9 q: W/ v9 {' |; l00401357 |. 8378 04 00 |cmp dword ptr [eax+4], 0 1 {5 N5 T9 f& O3 X8 n, T' Q
0040135B |.^ 75 E3 \\jnz short 00401340 % U( T( C; y" ]6 w1 v* Y2 D P. ]
0040135D |> C9 leave
* `4 A8 ~5 h% u0 r$ S* K0040135E \\. C3 retn & a& }7 ^: P2 w6 T- m6 e
0040135F 90 nop 8 [; ^' u2 @- H$ h0 _
00401360 /$ 55 push ebp
$ f& y. E5 }. f6 f! m$ p' u7 Q00401361 |. 89E5 mov ebp, esp
) L+ I3 B" p1 H00401363 |. 83EC 14 sub esp, 14
, r6 a D0 H7 O0 C7 }) y00401366 |. 53 push ebx
) Q9 K9 c& \$ I00401367 |. A1 58144000 mov eax, dword ptr [401458]
8 z+ T5 s" z0 p8 N5 Q) u Z7 r0040136C |. 83F8 FF cmp eax, -1
) Q" ?) w% J5 n" g' U0040136F |. 75 19 jnz short 0040138A
* E5 Q3 F' U: y, A4 E: e6 C00401371 |. 31C0 xor eax, eax
% m/ A8 t" v0 p( N8 \2 [00401373 |. 833D 5C144000>cmp dword ptr [40145C], 0 $ N" b1 l P& Y7 @9 [- m1 M
0040137A |. 74 0E je short 0040138A ( t: J, c, L# V. c7 `* C
0040137C |. BA 5C144000 mov edx, 0040145C
3 [% _2 y4 d+ L; a00401381 |> 83C2 04 /add edx, 4
& |/ A1 T! R2 n3 y4 Q! _00401384 |. 40 |inc eax / t' y& U* M& t7 i# s1 T
00401385 |. 833A 00 |cmp dword ptr [edx], 0
- R6 }( Q; p4 U$ j* {00401388 |.^ 75 F7 \\jnz short 00401381 * M! D3 w$ t; [9 U* ?$ V4 n
0040138A |> 89C3 mov ebx, eax
' X: {* b8 H |8 ^1 v. ]! V0 L0 f0040138C |. 85DB test ebx, ebx
% [" s' z' ]* \5 ]. Q0040138E |. 74 0C je short 0040139C
! M$ [* d3 W2 R9 _( ^00401390 |> 8B049D 581440>/mov eax, dword ptr [ebx*4+401458]
' b: h K' M) o' G, I! S" b00401397 |. FFD0 |call eax
( n5 N" Q, A: t( V00401399 |. 4B |dec ebx
" W2 p7 P* s2 o& |/ w5 O0 f0040139A |.^ 75 F4 \\jnz short 00401390 / k0 A' k6 W/ y! G8 G, ]
0040139C |> 83C4 F4 add esp, -0C
! E) t3 q, ?. u4 w0040139F |. 68 30134000 push 00401330 ; /func = engoutpu.00401330 3 H0 R7 I5 E8 [& q' b9 m! H; U
004013A4 |. E8 97000000 call <jmp.&msvcrt.atexit> ; \\atexit
! }& _ K3 k H2 P2 @( D* D9 l004013A9 |. 8B5D E8 mov ebx, dword ptr [ebp-18] ) X2 {3 m/ _3 K4 g8 w1 q6 s& @
004013AC |. C9 leave ' W+ u7 { G5 H
004013AD \\. C3 retn 8 L9 t0 c; w# u3 f; ]
004013AE 89F6 mov esi, esi , k' _6 P* i# z q: T) l6 u6 o
004013B0 /$ 55 push ebp R9 [: X- D, Z$ e' [0 B
004013B1 |. 89E5 mov ebp, esp 8 e9 d+ ^9 }. n9 M
004013B3 |. 83EC 08 sub esp, 8 6 ?4 E; h2 l" G6 g' p5 a
004013B6 |. 833D 14204000>cmp dword ptr [402014], 0 . o& U/ P; v. K
004013BD |. 75 0F jnz short 004013CE
p4 j7 j' u$ V: _1 r004013BF |. C705 14204000>mov dword ptr [402014], 1 , D5 ?6 K8 t. h3 E' C/ T
004013C9 |. E8 92FFFFFF call 00401360 9 Z5 |- t8 y7 ^
004013CE |> C9 leave * d. S3 x c2 h2 }: _' c
004013CF \\. C3 retn
, w% M( h: H1 f: p004013D0 .- FF25 AC304000 jmp dword ptr [<&msvcrt._fmode>] ; msvcrt._fmode
. n [) P% k; O- I4 z004013D6 90 nop
- e8 ^6 [! ^* E004013D7 90 nop
# ^$ |' `( V% Y/ M5 ~004013D8 .- FF25 B4304000 jmp dword ptr [<&msvcrt._iob>] ; msvcrt._iob % C0 h0 K3 ?8 q; E
004013DE 90 nop $ n+ s1 R, h" R( R4 S& N! r
004013DF 90 nop 9 R' O# e7 G @
004013E0 .- FF25 DC304000 jmp dword ptr [<&msvcrt.__set_app_ty>; msvcrt.__set_app_type 3 a e2 N, O" b1 K8 F* g
004013E6 90 nop
3 i9 z% n Y) Z- g: ~5 g" W4 R8 L4 @004013E7 90 nop 5 C$ W5 |8 p- h0 h C
004013E8 $- FF25 A4304000 jmp dword ptr [<&msvcrt._cexit>] ; msvcrt._cexit ( F2 \& {: A3 d
004013EE 90 nop ( M0 W3 g$ ?2 |8 _1 k Q9 O4 G
004013EF 90 nop
; u: F9 O4 B0 L+ m( z004013F0 $- FF25 D0304000 jmp dword ptr [<&msvcrt.__p__environ>; msvcrt.__p__environ * j/ a- o9 [( u9 M+ x+ h+ v. H7 x
004013F6 90 nop ! C! ?- e/ ?0 G/ ^- j6 T
004013F7 90 nop
4 F7 Y7 R/ _$ t2 @+ L004013F8 $- FF25 B0304000 jmp dword ptr [<&msvcrt._fpreset>] ; msvcrt._fpreset & x! W- x7 U$ u V/ v$ |7 i; V
004013FE 90 nop 4 O2 r! {0 ~/ ]" E( |' W6 |) ~! p* d
004013FF 90 nop
& h* c+ k4 _8 `9 e# |6 `% ?9 u7 Z00401400 $- FF25 D8304000 jmp dword ptr [<&msvcrt.signal>] ; msvcrt.signal
4 y1 u9 a4 W5 ~6 R00401406 90 nop 2 W% G6 Z0 G* _6 X6 E3 Q5 n
00401407 90 nop : A& o1 t! q' _4 Z6 x5 r3 @9 I7 B
00401408 $- FF25 A8304000 jmp dword ptr [<&msvcrt._fileno>] ; msvcrt._fileno 9 j1 ]( V" A# a9 }! V+ B- S9 [
0040140E 90 nop
5 {) @3 L6 w% w- Z+ q0 T0040140F 90 nop
3 t+ f$ A) k# _9 o8 `' D# P00401410 $- FF25 B8304000 jmp dword ptr [<&msvcrt._setmode>] ; msvcrt._setmode
) |5 }' o5 u8 H: ^. e8 z- h. |00401416 90 nop 9 y3 q0 E7 Z Q( }0 ^( r1 U
00401417 90 nop
3 N$ s/ @5 D [7 I Y* r+ d00401418 $- FF25 BC304000 jmp dword ptr [<&msvcrt.__getmainarg>; msvcrt.__getmainargs : D) B2 j& }; }1 z
0040141E 90 nop / ^3 d& }: I6 r9 c9 B6 R7 P
0040141F 90 nop
1 G+ }. r9 q$ h. d) F% l& l00401420 $- FF25 CC304000 jmp dword ptr [<&msvcrt.fputc>] ; msvcrt.putc
6 h: @; a3 N B" X" Q2 D3 d00401426 90 nop
3 w- c1 M7 ^4 @7 K) z( v/ x00401427 90 nop $ O2 h$ n% J" v: W# _* }3 Z, D; q
00401428 $- FF25 C4304000 jmp dword ptr [<&msvcrt.fgetc>] ; msvcrt.getc 0 O3 \" c3 L0 m% V4 r6 U! o
0040142E 90 nop
9 J" O5 [9 Z1 D: Z- ~ ^0040142F 90 nop 2 T3 ~" P# z* t8 a
00401430 $- FF25 D4304000 jmp dword ptr [<&msvcrt.printf>] ; msvcrt.printf
. l3 J. `/ e% v9 l3 m0 _- g/ V: d00401436 90 nop 9 a% b' t a' L2 t# p/ d$ m
00401437 90 nop
- Q4 S) L& N0 Y00401438 $- FF25 C8304000 jmp dword ptr [<&msvcrt.fopen>] ; msvcrt.fopen
0 M6 t' V6 a( s+ }4 d1 i0040143E 90 nop 3 r A- t) l& F e" q
0040143F 90 nop
" ^( z. f$ v* F) F7 q8 _4 ]00401440 $- FF25 C0304000 jmp dword ptr [<&msvcrt.atexit>] ; msvcrt.atexit 8 F. ?% d$ k+ `( |, i
00401446 90 nop ) d- I. G0 Q( Z S
00401447 90 nop 1 ?6 A9 A+ j- |, U$ @9 f1 u9 e
00401448 $- FF25 98304000 jmp dword ptr [<&KERNEL32.SetUnhandl>; kernel32.SetUnhandledExceptionFilter
% t% b" R/ X. X1 p0040144E 90 nop
- V4 F: @1 t" |, V; D& d; L0040144F 90 nop 2 T! _ }. t) W0 r
00401450 .- FF25 94304000 jmp dword ptr [<&KERNEL32.ExitProces>; kernel32.ExitProcess
$ }( T% Y' f: M3 D00401456 90 nop
: c1 i& j7 Q' B+ ^1 t! S00401457 90 nop - D! k8 Z" z& F2 T; k% |
00401458 . FFFFFFFF dd FFFFFFFF % u4 G/ \, a) d2 Z; Z
0040145C . 00000000 dd 00000000 + x/ p) M" [/ l5 |1 @; ]; o* `
00401460 FF db FF
! | B# f0 b/ D- o00401461 FF db FF 7 B5 l1 n: w: Q! i
00401462 FF db FF
' m7 o( n8 d# d* [7 |00401463 FF db FF
( d2 M4 d& M h! O( e w& o7 z00401464 00 db 00
h+ O$ B; {$ ^1 X4 c$ \00401465 00 db 00
( |( D7 w! L- G2 q' b6 t00401466 00 db 00 : k2 u2 M$ D# h* i8 x9 P' N
00401467 00 db 00 |