由于这个程序很短,OD里面的汇编代码也很短。
. D! k2 g' ~, U! L( L" h. s请看红色的部分,这就是和0x80比较的部分。
" W0 O2 ^# m1 W! J0 B把这2句NOP掉,然后保存修改后的文件为exe。
`; S8 e( @5 i我们发现input.txt里面的所有内容都能被输出了。
. `! o/ ~7 i @2 f附上修改后的exe.
' p6 p. y9 o* e' r6 {7 ?深绿,你可以把这个操作过程试一下,练习一下.
% M3 c# u8 S+ ^6 l i& A5 }6 S4 P G+ \' A
00401000 /$ 55 push ebp , W% p) E; d7 G& f2 T
00401001 |. 89E5 mov ebp, esp
) M1 H9 o, w( E/ I7 T# _00401003 |. 83EC 18 sub esp, 18 6 ]* {. r6 G7 `, j/ D
00401006 |. C745 FC 00000>mov dword ptr [ebp-4], 0 # @2 V6 P& S2 K/ N/ X% m# e4 g
0040100D |. 83C4 F4 add esp, -0C . B5 j4 d0 ^1 N8 {
00401010 |. 8D45 FC lea eax, dword ptr [ebp-4]
' ^& P2 r1 A& J' Q00401013 |. 50 push eax ! \! k; e( l; T( z! `
00401014 |. FF35 08204000 push dword ptr [402008]
+ b; ]* k/ g- t" m0040101A |. 8D45 F8 lea eax, dword ptr [ebp-8]
1 C$ J- q. E1 l8 s# l7 W0040101D |. 50 push eax
3 U8 G1 ?- R; D* R, z! H; P) w2 ]" A0040101E |. 68 04204000 push 00402004 ' [; i+ c3 A- m. |0 c
00401023 |. 68 00204000 push 00402000 ' w! n* k# d" x8 H0 i( {
00401028 |. E8 EB030000 call <jmp.&msvcrt.__getmainargs>
* f% G$ i5 p% Y" D" U0040102D |. C9 leave
7 R' L8 z4 O+ I4 q1 t, V* ^" ]0040102E \\. C3 retn
; M4 s$ U0 \' t, M8 b2 e$ b0040102F 90 nop
( \4 U8 O: V- d00401030 /$ 55 push ebp
) O% @3 _5 H9 e00401031 |. 89E5 mov ebp, esp 0 c& l Z' |5 a+ n3 W0 }' h
00401033 |. 83EC 08 sub esp, 8
n9 \% L* T1 T5 d+ E6 Q+ I00401036 |. 8B15 0C204000 mov edx, dword ptr [40200C] ) y; i! f! z0 I5 x* J/ [* g
0040103C |. 85D2 test edx, edx
# |/ @5 `4 J1 c2 q+ d: E0040103E |. 74 7B je short 004010BB
" ^5 c, G3 W2 O* w9 U0 ~8 s00401040 |. A1 AC304000 mov eax, dword ptr [<&msvcrt._fmode>>
$ k7 m0 H1 P. K; g9 s% @8 Z00401045 |. 8910 mov dword ptr [eax], edx
- z" E* T3 x' e& S7 {00401047 |. A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] ( N1 K! K7 m) k k) R" Y
0040104C |. 85C0 test eax, eax
- c/ n$ N, [) W- Z1 H0 `5 P0040104E |. 74 1E je short 0040106E ; N) _# G, p+ M( b& e' A- R
00401050 |. 83C4 F8 add esp, -8
: M% r4 g/ B" m1 t A, \! c1 T0 i* ]. Y00401053 |. FF35 0C204000 push dword ptr [40200C] ' Y' v o- v, q
00401059 |. 83C4 F4 add esp, -0C ) X3 q6 ^; O- P
0040105C |. 50 push eax ; /pstream => offset msvcrt._iob * ]) \9 Z5 B2 F k; m1 t
0040105D |. E8 A6030000 call <jmp.&msvcrt._fileno> ; \\_fileno ' B$ H" A) M3 ?9 ` A1 C
00401062 |. 83C4 10 add esp, 10
: b! D7 l9 x3 B9 B6 j00401065 |. 50 push eax ; |handle
9 T6 Y" }; \, K: j/ u; M; u00401066 |. E8 A5030000 call <jmp.&msvcrt._setmode> ; \\_setmode , Y& {# Y, ^6 C* s2 q& E/ R! x
0040106B |. 83C4 10 add esp, 10 4 E; w2 t: b2 z( x5 I! i: O
0040106E |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] 4 _* P4 O4 r* P+ i% J
00401073 |. 83C0 20 add eax, 20
$ \* k. [/ r9 Q4 N7 v3 h# Y! U00401076 |. 74 1E je short 00401096 : t* B- c5 @! J& N! j
00401078 |. 83C4 F8 add esp, -8
. v' {, n1 N3 Z3 P0040107B |. FF35 0C204000 push dword ptr [40200C] 2 S0 h, t; v8 D$ o! J3 q8 f& t1 W
00401081 |. 83C4 F4 add esp, -0C
* Y/ B' n1 q! c) V% }, s# Z- I0 q00401084 |. 50 push eax ; /pstream
' n5 d% _' }% u00401085 |. E8 7E030000 call <jmp.&msvcrt._fileno> ; \\_fileno " ]$ i1 n) Y7 i- ~/ E' ?
0040108A |. 83C4 10 add esp, 10
& e7 H9 K) o6 G) M# x0040108D |. 50 push eax ; |handle 9 c [$ d1 j6 P
0040108E |. E8 7D030000 call <jmp.&msvcrt._setmode> ; \\_setmode
; I0 l3 }3 k$ [: F: K: d* i00401093 |. 83C4 10 add esp, 10 ' D& b. B& N) G6 f. n
00401096 |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
% t( c2 Q9 L3 c) c5 T$ q9 p0040109B |. 83C0 40 add eax, 40 - v' N# w9 l9 b: }1 [
0040109E |. 74 1B je short 004010BB
' ?8 C4 x* H- X2 q; A) z004010A0 |. 83C4 F8 add esp, -8
) q0 T1 {6 {. ]/ d* E0 {( E004010A3 |. FF35 0C204000 push dword ptr [40200C]
8 q* w3 G8 G. Q0 c6 d3 `8 }0 ~& [004010A9 |. 83C4 F4 add esp, -0C 7 ]. A# }; t% M8 l4 j( H- r
004010AC |. 50 push eax ; /pstream
" q2 c2 v6 `' L9 @004010AD |. E8 56030000 call <jmp.&msvcrt._fileno> ; \\_fileno 0 a9 j, A g( T. D
004010B2 |. 83C4 10 add esp, 10
O2 ?5 s. S$ C004010B5 |. 50 push eax ; |handle
$ S9 {( g3 B/ ]( u6 E4 a004010B6 |. E8 55030000 call <jmp.&msvcrt._setmode> ; \\_setmode ' [/ a+ M7 f, g4 d& o( C
004010BB |> C9 leave 7 f$ v7 I" _8 z( E4 e, `
004010BC \\. C3 retn
* B7 a( Y h6 i* j' l( Q004010BD 8D76 00 lea esi, dword ptr [esi] 9 ~. u6 q G- m& @: n5 M; Z" c
004010C0 /. 55 push ebp
0 I" n6 Y l& h/ I/ ~% ]004010C1 |. 89E5 mov ebp, esp
3 U( v1 h4 x/ i* ?004010C3 |. 83EC 10 sub esp, 10 0 j+ N: V, {" L* k+ q
004010C6 |. 56 push esi . ^( u$ V/ [/ |7 d1 y7 i* r9 @% ^
004010C7 |. 53 push ebx - T& M! v* U6 n6 ? E$ Q+ o4 ]2 h
004010C8 |. 8B45 08 mov eax, dword ptr [ebp+8]
! w0 R8 y( N$ |5 B3 Q. C7 h004010CB |. 31DB xor ebx, ebx " f# k+ k* V7 q n# T% K
004010CD |. 31F6 xor esi, esi 8 A3 a: ?8 O4 c+ R! t
004010CF |. 8B00 mov eax, dword ptr [eax]
5 |4 d% c2 M) q# C004010D1 |. 8B00 mov eax, dword ptr [eax]
/ M e# v8 [4 w+ V" L/ U004010D3 |. 3D 910000C0 cmp eax, C0000091 4 u) B7 H, K' u: U/ \# O' N
004010D8 |. 77 16 ja short 004010F0
, N7 S! X D |6 ~004010DA |. 3D 8D0000C0 cmp eax, C000008D
1 C/ i8 x$ e: I004010DF |. 73 4F jnb short 00401130
: r9 o5 ?7 Y5 x& B7 a004010E1 |. 3D 050000C0 cmp eax, C0000005 , j( f! m! p8 m/ d+ d1 v: o0 T
004010E6 |. 74 18 je short 00401100
' C1 J h- f. W, Z2 M9 U004010E8 |. E9 86000000 jmp 00401173 / a- S; F: s& ^9 {3 n$ a
004010ED | 8D76 00 lea esi, dword ptr [esi]
2 @" S: s8 q. l. }5 M$ d004010F0 |> 3D 930000C0 cmp eax, C0000093 8 a `' n5 t0 q
004010F5 |. 74 39 je short 00401130
" O1 n4 I& ]$ H" ^4 _) q" v0 j! x004010F7 |. 3D 940000C0 cmp eax, C0000094
& V, P. y7 K% |7 \004010FC |. 74 37 je short 00401135 $ S; O) C' s! K- t c- R- D& T; X
004010FE |. EB 73 jmp short 00401173
+ W- g% T1 d3 b00401100 |> 83C4 F8 add esp, -8
7 b( h& }1 |4 c* a2 B6 H- [( }00401103 |. 6A 00 push 0 ; /func = NULL ( P. E: ~1 J5 @( A1 e
00401105 |. 6A 0B push 0B ; |sig = SIGSEGV 1 l& ]) @- e T% _0 A+ G4 R
00401107 |. E8 F4020000 call <jmp.&msvcrt.signal> ; \\signal + l# s; G+ W8 w; K& n
0040110C |. 83C4 10 add esp, 10
; C- U/ |/ }/ s/ w0040110F |. 83F8 01 cmp eax, 1 8 n; Q/ ?# _' Q7 E4 F
00401112 |. 75 0E jnz short 00401122
2 U+ q7 }: Y5 ~5 Y00401114 |. 83C4 F8 add esp, -8
# n6 V/ g' W' o+ ]+ F00401117 |. 6A 01 push 1 ; /func = 00000001 ' B& J1 D5 c( g6 P& r
00401119 |. 6A 0B push 0B ; |sig = SIGSEGV ' w% }4 }0 M' i6 m& P
0040111B |. E8 E0020000 call <jmp.&msvcrt.signal> ; \\signal
. S6 d" B p2 I* O00401120 |. EB 4C jmp short 0040116E - F4 U1 E: t" R/ T+ M1 o( d
00401122 |> 85C0 test eax, eax ! x. j2 i$ _5 Z% R$ A; u
00401124 |. 74 4D je short 00401173 & c% T" T j* k, c9 s1 @$ H
00401126 |. 83C4 F4 add esp, -0C . f2 K, K0 u0 f! V' w; v
00401129 |. 6A 0B push 0B 5 {/ H, k$ T) i1 y( J
0040112B |. EB 3F jmp short 0040116C
; T6 N& I& a0 l2 Y7 c Y0040112D | 8D76 00 lea esi, dword ptr [esi]
- s7 o- a! P! e+ k00401130 |> BE 01000000 mov esi, 1 $ X+ T; A* i, ^1 x# v j8 O
00401135 |> 83C4 F8 add esp, -8
" Z8 @: L4 P% @00401138 |. 6A 00 push 0 ; /func = NULL
# V9 W/ i4 T. q$ n( _0040113A |. 6A 08 push 8 ; |sig = SIGFPE
* m8 |5 ]/ y: I5 Q+ B! S+ |% L5 M0040113C |. E8 BF020000 call <jmp.&msvcrt.signal> ; \\signal
; W9 s) [) h0 ]) {' G- }/ K4 g00401141 |. 83C4 10 add esp, 10
9 a" k; K5 d) \+ U3 ?( F00401144 |. 83F8 01 cmp eax, 1
3 F, c. S( P& P n00401147 |. 75 1A jnz short 00401163
, T$ K1 q! ^0 a2 S3 i/ ^00401149 |. 83C4 F8 add esp, -8
$ I3 j1 T- F' u2 |0040114C |. 6A 01 push 1 ; /func = 00000001 ! s- m3 L1 `) y& Y
0040114E |. 6A 08 push 8 ; |sig = SIGFPE 3 ?' N/ `" @0 E! v; Z+ ?% {8 K; I* _' e
00401150 |. E8 AB020000 call <jmp.&msvcrt.signal> ; \\signal 6 P1 H4 [* ^ l4 f- u/ t4 q
00401155 |. 83C4 10 add esp, 10 2 m" J" F- G5 T# ^& p/ n
00401158 |. 85F6 test esi, esi * h$ T- _8 X; ~" q" a6 K
0040115A |. 74 12 je short 0040116E
: a- M" F# A. i @0040115C |. E8 97020000 call <jmp.&msvcrt._fpreset> ; [_fpreset & J* K; f: X6 b; M# X
00401161 |. EB 0B jmp short 0040116E 6 h$ w8 q( R9 ]) z& O7 G; D% N
00401163 |> 85C0 test eax, eax
: X6 t# R) ]( |3 A K! b00401165 |. 74 0C je short 00401173
0 N- e# c+ ]! D: J( ]00401167 |. 83C4 F4 add esp, -0C 6 N" o$ a* i2 H* O! }% U' r
0040116A |. 6A 08 push 8 5 E5 U! `7 l; i+ r' E; ]5 H* }, C5 x/ c
0040116C |> FFD0 call eax
7 x9 O8 o" m, Q$ Y0040116E |> BB FFFFFFFF mov ebx, -1 7 h/ N$ d2 n' ^; e1 k$ n
00401173 |> 89D8 mov eax, ebx g# g3 F: `2 Y& T% `& p9 c) _
00401175 |. 8D65 E8 lea esp, dword ptr [ebp-18] " H M! B$ L& ?; |, B) k
00401178 |. 5B pop ebx
+ H3 t2 ~: @6 M9 |00401179 |. 5E pop esi 6 s& d3 }9 ?* i
0040117A |. C9 leave + k' B6 S: a1 Y. S7 k' O& I
0040117B \\. C2 0400 retn 4
( F$ g- S, j) G5 g0040117E 89F6 mov esi, esi
- @/ n7 @$ p e: Y1 {1 c00401180 /$ 55 push ebp
k* f! R7 q8 b4 B00401181 |. 89E5 mov ebp, esp
, j. i3 E. r, T- _: d0 A9 o. H00401183 |. 83EC 14 sub esp, 14 % e( o" V- K- W+ x/ b L
00401186 |. 53 push ebx
! ] D6 I: a- C! q O" s( H# }00401187 |. 83C4 F4 add esp, -0C
( ^2 B) W8 m& v0 h4 s- x- M' u, K0040118A |. 68 C0104000 push 004010C0 ; /pTopLevelFilter = engoutpu.004010C0
' e2 t" I! _+ Y' a: Y9 C0040118F |. E8 B4020000 call <jmp.&KERNEL32.SetUnhandledExcep>; \\SetUnhandledExceptionFilter , D4 S; ?% O* j2 u. b) n% I
00401194 |. 83C4 FC add esp, -4 6 f7 y ?# p; m( X2 ]. F* g
00401197 |. E8 5C020000 call <jmp.&msvcrt._fpreset> ; [_fpreset : O) o7 h: \0 v: |0 |# q
0040119C |. E8 5FFEFFFF call 00401000
9 W9 z ~& M& ~004011A1 |. E8 8AFEFFFF call 00401030
& t a2 e. @! v0 n* }004011A6 |. 83C4 FC add esp, -4 + c2 o; e3 O/ s% V2 Y" [/ _
004011A9 |. E8 42020000 call <jmp.&msvcrt.__p__environ>
. B: z2 Q' R4 w+ U004011AE |. FF30 push dword ptr [eax]
+ c5 _$ J' T& k# ?9 B% R7 ^004011B0 |. FF35 04204000 push dword ptr [402004]
' R7 D0 A5 s8 T! s6 P004011B6 |. FF35 00204000 push dword ptr [402000] - s5 X( E2 E3 J! ]6 |( D
004011BC |. E8 AB000000 call 0040126C # Q# b @% e1 z6 O- Q7 B5 m
004011C1 |. 89C3 mov ebx, eax 6 \6 }" o/ w& [9 c* ^
004011C3 |. 83C4 20 add esp, 20
" l: g- j4 y6 N0 F. i004011C6 |. E8 1D020000 call <jmp.&msvcrt._cexit> ; [msvcrt._cexit N7 q8 }% n; Y- y% {% G. o
004011CB |. 83C4 F4 add esp, -0C
; Z* A! ^- r' W% R c3 s t# @4 |7 W004011CE |. 53 push ebx ; /ExitCode ) k( y1 `2 V4 b* Y6 D4 r
004011CF \\. E8 7C020000 call <jmp.&KERNEL32.ExitProcess> ; \\ExitProcess
. B$ W* u, O! y004011D4 >/$ 55 push ebp
7 c: G, s: _5 w# t004011D5 |. 89E5 mov ebp, esp
# |$ Q/ K- r* `! k004011D7 |. 83EC 08 sub esp, 8
; h* O# F& i2 \$ o) t1 K) r004011DA |. 83C4 F4 add esp, -0C
- K& w) A u! l4 ]004011DD |. 6A 01 push 1
% L3 q4 t/ I. X" D ?) e004011DF |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> 8 E; `" L, E- {% p6 J3 c- `" J( y
004011E4 |. FFD0 call eax ; <&msvcrt.__set_app_type> . ~( z2 v, F4 m
004011E6 |. E8 95FFFFFF call 00401180
, D$ T; m4 a4 n9 r. O9 J004011EB |. 31C0 xor eax, eax * y& u5 r- d. O9 x
004011ED |. C9 leave 5 g. G6 O/ W1 K8 i' q _
004011EE \\. C3 retn
/ c! h& u; n( u' u1 Q( v; w. C004011EF 90 nop 0 [! e) s/ _2 r" K( b
004011F0 /. 55 push ebp : l! ]9 M+ n' i- [8 M
004011F1 |. 89E5 mov ebp, esp $ [3 V/ u5 {& f) s" R
004011F3 |. 83EC 08 sub esp, 8
* T2 V" }; }1 i# x1 n004011F6 |. 83C4 F4 add esp, -0C
: Y N' Z( C3 z. i6 m: A& w004011F9 |. 6A 02 push 2 . D% m. I2 `% R# c; R
004011FB |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> 0 z' o) N- Y n3 h, ^" x, S) h
00401200 |. FFD0 call eax ; <&msvcrt.__set_app_type>
$ ~& ~ v& G) V) j( @0 d00401202 |. E8 79FFFFFF call 00401180
: v: I+ i* L3 {3 V% _; i. w00401207 |. C9 leave
A6 X1 q0 q. n00401208 \\. C3 retn
/ l, L$ S+ n& x& p( f9 a( g+ u/ x3 m00401209 00 db 00
1 ^5 z* t9 T+ E" J0040120A 00 db 00 : c+ U6 C6 v/ {7 A* A
0040120B 00 db 00 . ~% [) ^ k/ Q3 A, q
0040120C 00 db 00
! u" K0 ^2 x5 H9 }+ W% _9 E0040120D 00 db 00
# I4 x7 H: D' h/ K9 v0040120E 00 db 00 ' t6 t4 O/ M7 ?9 G# Z& A7 q! n/ H
0040120F 00 db 00 ; |0 w- b! I6 q/ S8 Z+ ~
00401210 72 db 72 ; CHAR 'r' $ S% C7 |' r# ~! G
00401211 00 db 00
2 E' F* u/ v& N$ j# K+ c0 W00401212 . 69 6E 70 75 7>ascii "input.txt",0
5 q6 C, Y5 S$ i8 V+ U- s( `3 J0040121C . 43 61 6E 27 7>ascii "Can't Find input"
, Z# }0 u7 m* N/ {0040122C . 2E 74 78 74 2>ascii ".txt!",0 D3 e/ ` M+ W) @. T- G0 t! D
00401232 77 db 77 ; CHAR 'w' % T K! j1 j) ~1 Q" n6 Z1 B) r
00401233 00 db 00 4 d, C2 T+ f/ N8 h- C7 P% o$ [
00401234 . 6F 75 74 70 7>ascii "output.txt",0
4 \! B! e) k1 B( |4 d0 H0040123F . 43 61 6E 27 7>ascii "Can't Create out" 8 e) Y& K* j% `% _
0040124F . 70 75 74 2E 7>ascii "put.txt!",0 & A6 [5 u# @8 ^0 D& x* Y
00401258 . 6F 6E 65 20 6>ascii "one char outpute"
. U3 {# x9 l1 Q00401268 . 64 0A 00 ascii "d 8 T& M# N0 V" i# N4 v$ X' b
",0
+ g" e9 c0 U K& F- q: a2 s8 Z0040126B 90 nop , T$ w6 q8 y* n
0040126C /$ 55 push ebp " u! w" f# O' |. [5 N
0040126D |. 89E5 mov ebp, esp - e) R" i t+ K* F& I E
0040126F |. 83EC 18 sub esp, 18 + ^: B1 Q1 Y: Z
00401272 |. E8 39010000 call 004013B0
8 U. A" _" ^& h3 C2 n, N00401277 |. 83C4 F8 add esp, -8
$ z; `# s# z) h. F2 N9 _0040127A |. 68 10124000 push 00401210 ; /mode = "r" 9 G# J, E! ~. M, U' u. g0 h& f: i
0040127F |. 68 12124000 push 00401212 ; |path = "input.txt"
$ |3 k- r! F+ Q( \( E* ^$ [00401284 |. E8 AF010000 call <jmp.&msvcrt.fopen> ; \\fopen
# X w+ f5 h$ C00401289 |. 83C4 10 add esp, 10 2 Q& x/ @: [. p5 q- ] p
0040128C |. 89C0 mov eax, eax
, ], f% B' S6 ?7 @: p" P0040128E |. 8945 FC mov dword ptr [ebp-4], eax
S+ S( ~0 M& k4 q! ?% w4 |00401291 |. 837D FC 00 cmp dword ptr [ebp-4], 0
9 g. f- T7 q! p+ D- p' N00401295 |. 75 10 jnz short 004012A7 , R7 I" X8 X7 a( ~+ F q: n
00401297 |. 83C4 F4 add esp, -0C ' a4 B5 M6 l3 G& u; z, R, c( R
0040129A |. 68 1C124000 push 0040121C ; /format = "Can't Find input.txt!"
2 G3 J; P: q5 o! Z4 m0 O! H6 i0040129F |. E8 8C010000 call <jmp.&msvcrt.printf> ; \\printf
) S; Z/ F3 I! w! s% L0 A004012A4 |. 83C4 10 add esp, 10 2 A! C2 r8 \; V3 O
004012A7 |> 83C4 F8 add esp, -8 L @% |$ h2 x6 I
004012AA |. 68 32124000 push 00401232 ; /mode = "w" ; m+ Q8 g2 B5 J/ g( \# Q
004012AF |. 68 34124000 push 00401234 ; |path = "output.txt" . k$ [2 H9 m# @8 h( W
004012B4 |. E8 7F010000 call <jmp.&msvcrt.fopen> ; \\fopen : x1 G. [/ S$ I( H" M
004012B9 |. 83C4 10 add esp, 10
9 P* s+ Q4 \7 Y% ?* S004012BC |. 89C0 mov eax, eax
+ y6 v- k* }$ D0 A$ t$ _* }004012BE |. 8945 F8 mov dword ptr [ebp-8], eax
: G' z5 f$ l, s# v$ u004012C1 |. 837D F8 00 cmp dword ptr [ebp-8], 0
* O7 Z; Y: D5 s5 o" t* K004012C5 |. 75 10 jnz short 004012D7
% b' s$ m9 O1 x8 l004012C7 |. 83C4 F4 add esp, -0C ( G. N' M/ }0 R3 ~+ }8 l& T7 n
004012CA |. 68 3F124000 push 0040123F ; /format = "Can't Create output.txt!"
7 u+ F9 @: w9 U$ m$ [004012CF |. E8 5C010000 call <jmp.&msvcrt.printf> ; \\printf : \! S- A8 W* E% I7 J4 G$ Y
004012D4 |. 83C4 10 add esp, 10 % U& C5 W! L# |& _0 S
004012D7 |> 83C4 F4 /add esp, -0C 9 q6 C2 w) Y4 s" R
004012DA |. 8B45 FC |mov eax, dword ptr [ebp-4] 4 c9 @9 D8 ]( T
004012DD |. 50 |push eax ; /stream
% q4 S2 `4 J! G5 R004012DE |. E8 45010000 |call <jmp.&msvcrt.fgetc> ; \\fgetc
- f- j* U; V; M004012E3 |. 83C4 10 |add esp, 10
5 b9 v2 z& O3 Z0 M) j004012E6 |. 89C0 |mov eax, eax * M7 ?0 |6 u" O* \6 `( t9 {
004012E8 |. 8945 F4 |mov dword ptr [ebp-C], eax 7 D* e+ a0 G5 `
004012EB |. 817D F4 80000>|cmp dword ptr [ebp-C], 80
# K/ I- r2 a4 D( r004012F2 |. 7F 23 |jg short 00401317
' h0 G3 f; m* I1 G( r( l004012F4 |. 83C4 F8 |add esp, -8
0 i; b+ H1 o+ ^- X004012F7 |. 8B45 F8 |mov eax, dword ptr [ebp-8]
1 _1 V' q& K$ p9 P/ l d( ~004012FA |. 50 |push eax ; /stream
~2 z" E$ C! B004012FB |. 8B45 F4 |mov eax, dword ptr [ebp-C] ; |
1 K) r( Q3 q" r- [, v004012FE |. 50 |push eax ; |c
i: U& z0 I: Q004012FF |. E8 1C010000 |call <jmp.&msvcrt.fputc> ; \\fputc
2 Q, V# q2 x! {7 H. V00401304 |. 83C4 10 |add esp, 10 + w, Z+ K- _' n# B
00401307 |. 83C4 F4 |add esp, -0C
% {. M) S# k; l( S0040130A |. 68 58124000 |push 00401258 ; /format = "one char outputed",LF,"" " R8 o H n- t
0040130F |. E8 1C010000 |call <jmp.&msvcrt.printf> ; \\printf " p$ z7 q7 T- `% E1 v) c3 c, s ]
00401314 |. 83C4 10 |add esp, 10
" n9 b0 \% b c0 R( @00401317 |> 837D F4 FF |cmp dword ptr [ebp-C], -1
) S: Z- E: N7 N" D) D6 a# `0040131B |. 75 03 |jnz short 00401320
4 e4 ^* a0 L d. X0040131D |. EB 03 |jmp short 00401322
, I: B$ m j& E0040131F | 90 |nop ) ^5 c$ k5 n: t( `
00401320 |>^ EB B5 \\jmp short 004012D7 8 M( | E! |( k/ I4 X/ t* |
00401322 |> C9 leave 9 Q8 {7 x9 E G7 p+ T3 V
00401323 \\. C3 retn
3 k1 V- [& _! v) M. k/ S, Z4 x00401324 00 db 00
; m& d! t( q' _00401325 00 db 00 ' u( `, m- Y8 O) ]$ g& s
00401326 00 db 00
; D! k+ l7 `) L2 ?3 ~: F00401327 00 db 00
. e# L1 B$ ^6 P% ~00401328 00 db 00
: a9 i8 ]6 A; Z' P2 G& W) G00401329 00 db 00 6 G" c& Z8 }' ~$ `
0040132A 00 db 00 : D1 I5 P, H0 C4 ?1 y, _
0040132B 00 db 00 0 `( g5 D& W3 D' J* j3 z; `; V
0040132C 00 db 00 8 w0 H# d: x: g5 M4 u* K
0040132D 00 db 00 Q; n! i4 S7 Z+ X0 {3 } I3 k
0040132E 00 db 00
$ i. I5 W* B- g0 J& `0040132F 00 db 00 7 f. S8 W) [- U8 e" F/ d/ |* c
00401330 /. 55 push ebp ; `" t* T! ] w9 N# z9 G: l
00401331 |. 89E5 mov ebp, esp K0 w9 r$ s% {' c
00401333 |. 83EC 08 sub esp, 8
) ~% p- B8 q# e$ H+ Q00401336 |. A1 10204000 mov eax, dword ptr [402010]
# d6 E' b. _. u# E8 m8 S) i0040133B |. 8338 00 cmp dword ptr [eax], 0 * u" u. |! |4 C
0040133E |. 74 1D je short 0040135D
0 K1 g6 u0 b' \* ~1 ^" z" j# O00401340 |> A1 10204000 /mov eax, dword ptr [402010]
9 R$ ^8 W; i* G# o% e00401345 |. 8B00 |mov eax, dword ptr [eax] * m/ {. R7 |$ ]; _( r8 _( F) {& O0 e
00401347 |. FFD0 |call eax " A, P2 g l8 U9 V
00401349 |. A1 10204000 |mov eax, dword ptr [402010] / p$ D. ?1 U9 b) Y: a
0040134E |. 8D50 04 |lea edx, dword ptr [eax+4] 9 T" d& o8 P* ^4 o# w
00401351 |. 8915 10204000 |mov dword ptr [402010], edx , s; w4 a% \4 Y! b
00401357 |. 8378 04 00 |cmp dword ptr [eax+4], 0 ! P/ M; ]+ X! p z
0040135B |.^ 75 E3 \\jnz short 00401340 ; ^: i# i; Y2 {' v) x8 W9 I
0040135D |> C9 leave ( Z& R0 H6 a, y) o* Z0 W" k& ~
0040135E \\. C3 retn
, F4 O$ }, p* y1 P( ~; S0040135F 90 nop
7 n f1 Q3 y& l3 F( w9 e00401360 /$ 55 push ebp
9 e9 c" ~4 L" f0 L9 n6 U/ e' \* Z# R00401361 |. 89E5 mov ebp, esp
$ K t: A' c, _4 [2 k7 w# |00401363 |. 83EC 14 sub esp, 14 : F: {: o ?7 I) z! y: b
00401366 |. 53 push ebx
; B' s3 x0 }9 I v7 J00401367 |. A1 58144000 mov eax, dword ptr [401458]
5 Y4 w/ }* S6 u; _. H0040136C |. 83F8 FF cmp eax, -1
% u! S" z1 j: W5 n' o* J. [0040136F |. 75 19 jnz short 0040138A # L( f; m0 n7 j4 D o" C3 B& N
00401371 |. 31C0 xor eax, eax
8 u/ w* Z* B i! @1 Q6 }00401373 |. 833D 5C144000>cmp dword ptr [40145C], 0
* N) J0 N8 |( n0040137A |. 74 0E je short 0040138A - r1 e/ \2 k+ V7 W
0040137C |. BA 5C144000 mov edx, 0040145C
1 u7 X2 ~, }7 x C5 b, L# N, J00401381 |> 83C2 04 /add edx, 4
+ {% q' q2 A% L( d3 |9 i00401384 |. 40 |inc eax ; s6 ^0 R5 Y& ?( N
00401385 |. 833A 00 |cmp dword ptr [edx], 0
8 o3 K& ^9 |" z7 M' v' G; \00401388 |.^ 75 F7 \\jnz short 00401381
+ e5 V7 \5 A& j1 U/ `0040138A |> 89C3 mov ebx, eax 7 c" P% H7 B4 v3 j$ @5 s
0040138C |. 85DB test ebx, ebx 7 k2 Q* }6 r6 D" G/ I; S: F; o
0040138E |. 74 0C je short 0040139C , X& s4 }5 n& l& e6 V
00401390 |> 8B049D 581440>/mov eax, dword ptr [ebx*4+401458] ' w2 N# p/ D1 G' p6 C0 U
00401397 |. FFD0 |call eax % P$ k- q' P. }1 W' ? J5 a
00401399 |. 4B |dec ebx
1 F3 e; K& d9 y$ ?0040139A |.^ 75 F4 \\jnz short 00401390 9 t& s' T: Z( O. [& m# C' `
0040139C |> 83C4 F4 add esp, -0C
9 A/ C+ @7 E2 R5 f# B0040139F |. 68 30134000 push 00401330 ; /func = engoutpu.00401330 : v+ U7 V0 e/ \
004013A4 |. E8 97000000 call <jmp.&msvcrt.atexit> ; \\atexit
7 \9 Q1 D8 S& J, R* H! s004013A9 |. 8B5D E8 mov ebx, dword ptr [ebp-18]
) @9 b8 P: K* k0 n" ~5 U004013AC |. C9 leave # h4 M1 r! h/ W3 C4 f: H
004013AD \\. C3 retn : n* M% }, K/ n' E% J
004013AE 89F6 mov esi, esi / s% c& x- a9 D
004013B0 /$ 55 push ebp ' F3 O8 F7 z1 g* ]9 L0 y" e
004013B1 |. 89E5 mov ebp, esp
- W. J: y" s3 o4 d' T; M. o3 U004013B3 |. 83EC 08 sub esp, 8
" W+ B8 p1 z2 x/ V$ i$ h004013B6 |. 833D 14204000>cmp dword ptr [402014], 0 8 g$ Z. u" c& J9 ^8 H2 K# v
004013BD |. 75 0F jnz short 004013CE
/ P9 w' Z m) c- V7 R4 O, Q$ `( ^004013BF |. C705 14204000>mov dword ptr [402014], 1
, p0 g! N# m( ]3 G% w004013C9 |. E8 92FFFFFF call 00401360
2 |% w2 ^0 G; p$ W# D4 W6 O004013CE |> C9 leave 3 T" P H2 e. ?
004013CF \\. C3 retn * r; D' }) @ Y- l
004013D0 .- FF25 AC304000 jmp dword ptr [<&msvcrt._fmode>] ; msvcrt._fmode
/ {3 \) ?5 d/ m3 k# j004013D6 90 nop C3 _% g; {4 N {% u; x
004013D7 90 nop
, q( q8 G9 ^1 v* _! v ?! F/ H; f004013D8 .- FF25 B4304000 jmp dword ptr [<&msvcrt._iob>] ; msvcrt._iob * _! M% d6 N$ \: M
004013DE 90 nop " p/ M7 T1 n2 y" L( G& D6 @
004013DF 90 nop
0 a! q% J. f0 h X; ?; }) I6 ?004013E0 .- FF25 DC304000 jmp dword ptr [<&msvcrt.__set_app_ty>; msvcrt.__set_app_type 9 X0 c" S: f; O7 Q6 j7 Q
004013E6 90 nop
6 s9 y& S* |9 T# R004013E7 90 nop
/ E+ e! @) a+ j! j8 b6 }004013E8 $- FF25 A4304000 jmp dword ptr [<&msvcrt._cexit>] ; msvcrt._cexit ; r* \- F/ k& @4 V7 K
004013EE 90 nop ) v2 D( U% j1 I: }
004013EF 90 nop
" m5 i4 }5 h! Y8 n# c: G- e2 S004013F0 $- FF25 D0304000 jmp dword ptr [<&msvcrt.__p__environ>; msvcrt.__p__environ 4 S5 E j; q. r2 m+ D, J
004013F6 90 nop
- k; k ]% g4 d) R4 c1 B5 K; X004013F7 90 nop # x8 ]) I) z0 k4 m
004013F8 $- FF25 B0304000 jmp dword ptr [<&msvcrt._fpreset>] ; msvcrt._fpreset * E0 Z% E7 E% N1 F, ^6 B
004013FE 90 nop . K5 K/ w+ ?1 `7 U5 ~* H u" t9 O
004013FF 90 nop
5 Q0 P/ W0 q( i' ]2 k9 V" ]- o' `00401400 $- FF25 D8304000 jmp dword ptr [<&msvcrt.signal>] ; msvcrt.signal
# p% V+ i, g9 x- c00401406 90 nop
* Y# ]: P M+ p00401407 90 nop
P# ^! }7 i/ A! v0 E00401408 $- FF25 A8304000 jmp dword ptr [<&msvcrt._fileno>] ; msvcrt._fileno 4 u2 S# ~- K/ Z @! g! A/ x: t
0040140E 90 nop
" f+ G. g& b- A5 `" y4 F/ \2 M0040140F 90 nop
x8 g9 B% {/ Y00401410 $- FF25 B8304000 jmp dword ptr [<&msvcrt._setmode>] ; msvcrt._setmode 3 ]7 O& G; c: R
00401416 90 nop
" m- L5 o/ s/ b. ~+ q) p$ \00401417 90 nop ) W+ H( Z3 v* j' j0 a- W+ K+ X
00401418 $- FF25 BC304000 jmp dword ptr [<&msvcrt.__getmainarg>; msvcrt.__getmainargs - i9 W9 ?( g6 V. R4 W! q- J- F
0040141E 90 nop
4 R: l6 ~$ J8 y' C( D7 D$ \3 h5 M* D0040141F 90 nop 0 P1 n2 m' Q; m
00401420 $- FF25 CC304000 jmp dword ptr [<&msvcrt.fputc>] ; msvcrt.putc
; _, Z2 I6 {8 _' I2 _/ D- N! b00401426 90 nop + D/ S/ w: F$ P; i# P; k
00401427 90 nop : \$ ^5 t2 E( G6 V
00401428 $- FF25 C4304000 jmp dword ptr [<&msvcrt.fgetc>] ; msvcrt.getc 6 y0 i& g, v; Y' v! @
0040142E 90 nop # L* Z7 ^' z" A
0040142F 90 nop 6 C" |( L, X6 k: H; z( h: Z Q. k
00401430 $- FF25 D4304000 jmp dword ptr [<&msvcrt.printf>] ; msvcrt.printf
# A8 s0 P( @% @3 {; `* D00401436 90 nop , V( \3 a# Q# e B( n4 {
00401437 90 nop
4 }# r: r- M* v00401438 $- FF25 C8304000 jmp dword ptr [<&msvcrt.fopen>] ; msvcrt.fopen - f. c, P6 u Z8 d- U
0040143E 90 nop 1 h! h: w+ _) G8 a" K' o
0040143F 90 nop 3 Z# N' D" m' @. k
00401440 $- FF25 C0304000 jmp dword ptr [<&msvcrt.atexit>] ; msvcrt.atexit
7 @' w K+ w* D/ b00401446 90 nop # n% R2 K$ [+ z
00401447 90 nop {2 x* l7 Q5 [) X' ~
00401448 $- FF25 98304000 jmp dword ptr [<&KERNEL32.SetUnhandl>; kernel32.SetUnhandledExceptionFilter 1 ?8 |) C. P4 m! x
0040144E 90 nop
! J' {) a _6 F/ U( n6 H0040144F 90 nop
( @( C# d) e' e. e0 \ j8 T0 t00401450 .- FF25 94304000 jmp dword ptr [<&KERNEL32.ExitProces>; kernel32.ExitProcess
! q2 w& P$ H- U/ t9 H) o5 K9 T7 |00401456 90 nop
# c. J! M S/ J+ `; v6 u00401457 90 nop
% K- H9 _5 t0 w, O5 `' v g00401458 . FFFFFFFF dd FFFFFFFF 6 l+ v. x" l6 A5 F& K
0040145C . 00000000 dd 00000000 ; N4 S K. F! h2 v, l& C
00401460 FF db FF
0 V _% J: P$ n' A1 [00401461 FF db FF 9 C6 h2 i6 l j& _8 P% @
00401462 FF db FF
( k _& Y) B" U0 @# d* l, I00401463 FF db FF
) F* K$ N( v/ a k0 _8 R00401464 00 db 00
. }5 M# l5 {" `9 m5 V00401465 00 db 00 ' R6 o) I; a6 {+ e# w. T6 C% V8 i
00401466 00 db 00
' E7 m9 j2 F. t$ X* Z00401467 00 db 00 |