由于这个程序很短,OD里面的汇编代码也很短。 0 @2 P& b3 u( T' p' H" v: V1 j6 B$ w
请看红色的部分,这就是和0x80比较的部分。 & D J; R: |, ?2 c# x
把这2句NOP掉,然后保存修改后的文件为exe。
q4 M5 K: h7 E6 K* t我们发现input.txt里面的所有内容都能被输出了。
6 e; Y: u. N; B& t& q8 \附上修改后的exe.
7 c# D6 T) J; m深绿,你可以把这个操作过程试一下,练习一下. : t/ u' q2 P0 e
9 N2 |. ^3 U2 s2 M7 a7 d. v
00401000 /$ 55 push ebp - E. Q; b" b* ^3 T! z, W
00401001 |. 89E5 mov ebp, esp / |$ `! ]9 k# @* N3 M( U
00401003 |. 83EC 18 sub esp, 18 & P4 R% @% o0 y [
00401006 |. C745 FC 00000>mov dword ptr [ebp-4], 0 ! @: y& I( @! K" Y/ R# b4 W$ B
0040100D |. 83C4 F4 add esp, -0C 2 L. ?, Z d$ q) z, R1 H. t7 ~
00401010 |. 8D45 FC lea eax, dword ptr [ebp-4]
$ s( T) f/ a" p. ~& }4 G00401013 |. 50 push eax 9 d* Y' V# x1 h( N4 A) U
00401014 |. FF35 08204000 push dword ptr [402008] . S* k; E# t( B8 X3 X
0040101A |. 8D45 F8 lea eax, dword ptr [ebp-8] + |& q( g9 J7 f2 x- [
0040101D |. 50 push eax
# c1 S+ t+ `! c/ L0040101E |. 68 04204000 push 00402004 8 g3 d: H4 u0 w* `
00401023 |. 68 00204000 push 00402000
: g* L. I, s4 e00401028 |. E8 EB030000 call <jmp.&msvcrt.__getmainargs> + r! N, T* j( {; w! y
0040102D |. C9 leave
, s1 C0 }0 j5 J! |1 I0040102E \\. C3 retn D# D# F/ ^+ t/ |* P3 j; ^5 F
0040102F 90 nop % t: K4 a3 Z' M2 {- M
00401030 /$ 55 push ebp $ b) G) A- y6 u: S& e
00401031 |. 89E5 mov ebp, esp ( a8 Y0 T. O1 U4 S6 S
00401033 |. 83EC 08 sub esp, 8 % _% w' I, \8 E" h d
00401036 |. 8B15 0C204000 mov edx, dword ptr [40200C] 8 w: j- w( a5 j/ e7 w) \- H
0040103C |. 85D2 test edx, edx ) t+ \- C% y% I( y+ x5 I
0040103E |. 74 7B je short 004010BB
9 u, D1 s6 _ P+ `% {00401040 |. A1 AC304000 mov eax, dword ptr [<&msvcrt._fmode>> 6 W7 _9 A0 q( P& Y6 ?6 U9 c
00401045 |. 8910 mov dword ptr [eax], edx / |* ?: L- R, [' c8 N! v
00401047 |. A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
1 ~4 D6 p/ l2 H: F0040104C |. 85C0 test eax, eax 7 S+ F8 \9 p* p7 O
0040104E |. 74 1E je short 0040106E
- s. ?' A/ C: }) ~* n" S00401050 |. 83C4 F8 add esp, -8 " ?7 L: ]9 J- ^" a `" G: V
00401053 |. FF35 0C204000 push dword ptr [40200C] 5 `7 J5 z3 o8 x& y) V8 O
00401059 |. 83C4 F4 add esp, -0C
, H- c7 O" b8 i0040105C |. 50 push eax ; /pstream => offset msvcrt._iob 4 C, B6 w# u: I/ r
0040105D |. E8 A6030000 call <jmp.&msvcrt._fileno> ; \\_fileno
, \1 W9 r/ {6 M/ M1 Y# A00401062 |. 83C4 10 add esp, 10 1 G0 I; V( x: Y ~
00401065 |. 50 push eax ; |handle " x/ I. _; ]5 H) z2 N' r
00401066 |. E8 A5030000 call <jmp.&msvcrt._setmode> ; \\_setmode 4 W! k) P& C, g$ `; e; n
0040106B |. 83C4 10 add esp, 10
& @. I6 T- K9 O) M$ \8 l0040106E |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>]
5 _* B0 A+ V4 U r, P z00401073 |. 83C0 20 add eax, 20 ) b E! e$ \1 S A0 n: g
00401076 |. 74 1E je short 00401096
! l9 b, ?. l, S00401078 |. 83C4 F8 add esp, -8
3 P! v5 c9 J# W' H* X L( y0040107B |. FF35 0C204000 push dword ptr [40200C] 3 t( T$ x. M2 o; j- }, I
00401081 |. 83C4 F4 add esp, -0C 9 o7 L' W3 k- Z9 T0 p u
00401084 |. 50 push eax ; /pstream
' f0 b; F8 Y/ p( g! t00401085 |. E8 7E030000 call <jmp.&msvcrt._fileno> ; \\_fileno
) C0 k0 ^, w, k! e5 m$ u0040108A |. 83C4 10 add esp, 10
6 t5 A, M; _- w9 e' G0 M, j( V' W0040108D |. 50 push eax ; |handle 7 k4 E- p3 H9 F( D: G! ^
0040108E |. E8 7D030000 call <jmp.&msvcrt._setmode> ; \\_setmode
! B% @! b% e9 i8 S0 N, L7 }00401093 |. 83C4 10 add esp, 10
$ I0 l/ e; T2 {. |# p" |00401096 |> A1 B4304000 mov eax, dword ptr [<&msvcrt._iob>] 5 o' w7 h" N3 R/ U/ y! p
0040109B |. 83C0 40 add eax, 40
g+ o. t# {; K u4 ~5 N0040109E |. 74 1B je short 004010BB . k6 g' S+ V s0 ~
004010A0 |. 83C4 F8 add esp, -8 ! y3 C( I/ H# y8 B- M# k. @' |
004010A3 |. FF35 0C204000 push dword ptr [40200C]
* G6 g/ K( g" G- n: G004010A9 |. 83C4 F4 add esp, -0C
! `. u6 ~$ c% x* H; R& |: R004010AC |. 50 push eax ; /pstream E* c- C: E& c. |8 r
004010AD |. E8 56030000 call <jmp.&msvcrt._fileno> ; \\_fileno
7 @8 Z4 T8 H2 ^* ] Z" r' C. v004010B2 |. 83C4 10 add esp, 10 3 g a; x, |2 `3 q
004010B5 |. 50 push eax ; |handle 8 X( f, N# \& f# z) q/ H' \
004010B6 |. E8 55030000 call <jmp.&msvcrt._setmode> ; \\_setmode
4 x2 l, }0 b7 G4 e004010BB |> C9 leave
; s/ j* |* _$ O5 r: Q% g004010BC \\. C3 retn ( `* x$ _! u8 z5 b* k7 b. d6 _
004010BD 8D76 00 lea esi, dword ptr [esi]
5 X) }: Z2 ~5 r, ~& C7 i: \004010C0 /. 55 push ebp
$ ^0 E2 T+ b: e5 c$ o004010C1 |. 89E5 mov ebp, esp
0 q& u, c Z) z5 P. R004010C3 |. 83EC 10 sub esp, 10
0 W+ y$ ]+ ?( F004010C6 |. 56 push esi
( j g6 z0 M# y' @004010C7 |. 53 push ebx
! b8 R& f! L9 k+ D004010C8 |. 8B45 08 mov eax, dword ptr [ebp+8] : |$ q- D$ l5 g/ L
004010CB |. 31DB xor ebx, ebx
# F0 U" f1 L1 r7 X' p0 a5 D004010CD |. 31F6 xor esi, esi % F; B+ ^9 Q: q0 O; w# P9 C
004010CF |. 8B00 mov eax, dword ptr [eax]
0 k8 k, G9 G1 S. F( g5 @& D n2 B004010D1 |. 8B00 mov eax, dword ptr [eax] ) \0 S! P& B, C& I5 N
004010D3 |. 3D 910000C0 cmp eax, C0000091
3 H0 |5 b5 P( F! e T. v0 E1 s' c004010D8 |. 77 16 ja short 004010F0 $ q/ g4 }4 q9 Q
004010DA |. 3D 8D0000C0 cmp eax, C000008D
$ q1 q9 F4 ]: r, l# i: d/ s004010DF |. 73 4F jnb short 00401130
- y, q$ K, d9 \) l004010E1 |. 3D 050000C0 cmp eax, C0000005 " T( |1 Q5 W9 x% v- V
004010E6 |. 74 18 je short 00401100
" F3 p7 ?" {3 _2 D004010E8 |. E9 86000000 jmp 00401173
3 @4 }$ t7 n5 W004010ED | 8D76 00 lea esi, dword ptr [esi]
/ ]" ~! |8 G/ o* S+ J' o" a$ T004010F0 |> 3D 930000C0 cmp eax, C0000093
5 `. d. E/ Z" p- L" M- V+ l/ Z004010F5 |. 74 39 je short 00401130 * n' ?$ M6 {' g3 Q
004010F7 |. 3D 940000C0 cmp eax, C0000094 - B S A' m+ x! ?6 ]( q8 \4 J
004010FC |. 74 37 je short 00401135 # y% [4 S" E+ }8 V
004010FE |. EB 73 jmp short 00401173
, g% `1 ~8 _ Y: F00401100 |> 83C4 F8 add esp, -8 , B; F4 V* @( `; g
00401103 |. 6A 00 push 0 ; /func = NULL 3 U8 X) e. ?4 D
00401105 |. 6A 0B push 0B ; |sig = SIGSEGV
4 G2 u7 C5 j2 W00401107 |. E8 F4020000 call <jmp.&msvcrt.signal> ; \\signal
3 ]. M" m% ~9 L0040110C |. 83C4 10 add esp, 10 ' {% Z( M5 T. r
0040110F |. 83F8 01 cmp eax, 1
: _% D+ E' U5 u9 X00401112 |. 75 0E jnz short 00401122
3 C2 f1 `/ w7 i% K00401114 |. 83C4 F8 add esp, -8 9 a) V$ q: ]6 d7 a$ l2 y& _* F) p
00401117 |. 6A 01 push 1 ; /func = 00000001
, ~0 N) [5 L0 f7 s$ C00401119 |. 6A 0B push 0B ; |sig = SIGSEGV
. g' i% l ?0 W, b7 V" J0040111B |. E8 E0020000 call <jmp.&msvcrt.signal> ; \\signal p7 e# z5 F4 W1 R
00401120 |. EB 4C jmp short 0040116E 2 `0 t; j; j8 V H8 z5 `% P6 o1 d
00401122 |> 85C0 test eax, eax . Q4 X5 W8 j% y' i# n
00401124 |. 74 4D je short 00401173
6 v$ ?' ^( y2 h, p( m" F00401126 |. 83C4 F4 add esp, -0C
3 I, U3 |$ y4 R$ w00401129 |. 6A 0B push 0B
, Y, e4 K, a6 g. `7 ^0040112B |. EB 3F jmp short 0040116C 2 k! [: p- @; ~3 Z- r* n
0040112D | 8D76 00 lea esi, dword ptr [esi]
8 d1 |3 V" W) W$ t4 R3 u3 y" F: J00401130 |> BE 01000000 mov esi, 1
% G) ~; P1 H0 ~00401135 |> 83C4 F8 add esp, -8
& `0 c' j6 w5 s: D. x3 |; x* s0 d00401138 |. 6A 00 push 0 ; /func = NULL 6 g; D2 i$ i) |! U
0040113A |. 6A 08 push 8 ; |sig = SIGFPE
?) X0 H' R- g( f. Z7 v+ w. G0040113C |. E8 BF020000 call <jmp.&msvcrt.signal> ; \\signal
5 Z5 S* I( j' D; d00401141 |. 83C4 10 add esp, 10 0 e( _( [, ^, T
00401144 |. 83F8 01 cmp eax, 1
- o) P2 G% m( [: v2 W, F5 x00401147 |. 75 1A jnz short 00401163
& f, t( j, y* M4 } |" \00401149 |. 83C4 F8 add esp, -8 : Z7 {$ u( W$ B: \" j) Z- H: T' \
0040114C |. 6A 01 push 1 ; /func = 00000001 5 A" H. p) @6 O! L
0040114E |. 6A 08 push 8 ; |sig = SIGFPE
* [. h/ X% s! p D2 N00401150 |. E8 AB020000 call <jmp.&msvcrt.signal> ; \\signal
0 U, k7 {$ i- `& R: @" h00401155 |. 83C4 10 add esp, 10 5 o1 V7 l$ ?8 X0 u( V& Q
00401158 |. 85F6 test esi, esi 5 M+ k Z2 Y( _, l8 Z; T
0040115A |. 74 12 je short 0040116E 2 r7 `9 e! V+ l8 @
0040115C |. E8 97020000 call <jmp.&msvcrt._fpreset> ; [_fpreset 5 u7 H# J" |5 D+ i, K5 H
00401161 |. EB 0B jmp short 0040116E
4 I' m; b5 \9 S5 T# E* j$ v: h4 N00401163 |> 85C0 test eax, eax
& ]0 L. O9 U0 |: ~( b+ X00401165 |. 74 0C je short 00401173 8 q" F+ O# z) I& h5 |
00401167 |. 83C4 F4 add esp, -0C
: s9 T, v) l- r; i# f) ^0040116A |. 6A 08 push 8 4 t$ E/ h0 w0 n. R2 [
0040116C |> FFD0 call eax 9 [+ w4 O% N3 o* J, k; b
0040116E |> BB FFFFFFFF mov ebx, -1 ( \* S1 k9 A5 V: I/ v# ^. b, Z
00401173 |> 89D8 mov eax, ebx * }$ f. ^* N0 _
00401175 |. 8D65 E8 lea esp, dword ptr [ebp-18] $ C; C1 D4 G8 G8 n) l5 g/ O
00401178 |. 5B pop ebx
( n( V% D5 ~& T I00401179 |. 5E pop esi
/ u# P+ p. a& E! C) r0040117A |. C9 leave 0 N- |1 t/ q L( x/ y# n% T
0040117B \\. C2 0400 retn 4 ; g j0 b& X1 {9 h1 i+ S
0040117E 89F6 mov esi, esi
) V; C( j7 ? X$ j00401180 /$ 55 push ebp
5 z6 e. }( A J00401181 |. 89E5 mov ebp, esp " ~. m8 Y7 A( ^8 y4 o
00401183 |. 83EC 14 sub esp, 14
1 ^* ~9 E* J5 {! `00401186 |. 53 push ebx
o- I4 [" N' [ j: G6 ^00401187 |. 83C4 F4 add esp, -0C
a/ k# |2 R3 C* r7 H. K3 l, ^0040118A |. 68 C0104000 push 004010C0 ; /pTopLevelFilter = engoutpu.004010C0
. n7 O& `0 n* k( Q, L6 B0040118F |. E8 B4020000 call <jmp.&KERNEL32.SetUnhandledExcep>; \\SetUnhandledExceptionFilter
' G- ^, |% P* z3 L2 g00401194 |. 83C4 FC add esp, -4
" ^% e! i/ J9 r% T" C00401197 |. E8 5C020000 call <jmp.&msvcrt._fpreset> ; [_fpreset
2 X2 P! t8 A) |9 D+ ?5 I* I0040119C |. E8 5FFEFFFF call 00401000
; ]; S& T( |9 i; K/ P004011A1 |. E8 8AFEFFFF call 00401030
$ a$ O/ v3 v: T7 i' U0 ?: S- R004011A6 |. 83C4 FC add esp, -4 * r% r2 @! f- A( y, ?" ?# g' B, Z, X$ x
004011A9 |. E8 42020000 call <jmp.&msvcrt.__p__environ> & _1 O- {' e2 c, a( X; ~
004011AE |. FF30 push dword ptr [eax]
9 k& t, o2 @9 c( N; m. U8 |% K' l004011B0 |. FF35 04204000 push dword ptr [402004] * o5 O( x7 w9 v7 n( Z1 m! r. l: n% a
004011B6 |. FF35 00204000 push dword ptr [402000] . V& [3 U2 P; h0 [; Q
004011BC |. E8 AB000000 call 0040126C
2 r2 z- M* [% O& D004011C1 |. 89C3 mov ebx, eax
8 N3 N7 X* k! L. R8 n/ n, k- l( l0 x004011C3 |. 83C4 20 add esp, 20
. ~! p7 U" Z N& a+ ^004011C6 |. E8 1D020000 call <jmp.&msvcrt._cexit> ; [msvcrt._cexit
9 R h/ A& x' R; c" f004011CB |. 83C4 F4 add esp, -0C 0 n: @& ]$ l7 N9 Y
004011CE |. 53 push ebx ; /ExitCode
3 R0 u1 k; i$ h004011CF \\. E8 7C020000 call <jmp.&KERNEL32.ExitProcess> ; \\ExitProcess
1 I6 O* r0 h9 w: Q! \004011D4 >/$ 55 push ebp ( q8 Y, D, z4 G* P8 l% w& ]
004011D5 |. 89E5 mov ebp, esp 2 c1 `/ Q) A s$ D* ^% [' p3 a
004011D7 |. 83EC 08 sub esp, 8
0 H" \( h% c! t% {8 m004011DA |. 83C4 F4 add esp, -0C . Q J. \3 ~- I3 X& b# ~
004011DD |. 6A 01 push 1
0 u( V) X8 j9 J004011DF |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a> : m( d* r( N! }( C1 { f" M, d& B, T
004011E4 |. FFD0 call eax ; <&msvcrt.__set_app_type>
2 D: @7 W; v3 y+ M! J9 ~004011E6 |. E8 95FFFFFF call 00401180
1 u# M+ [! w* V2 }& n& N004011EB |. 31C0 xor eax, eax 9 m* e2 N4 u" A! k
004011ED |. C9 leave
' m6 T# s. k/ w) r8 [004011EE \\. C3 retn # G8 Q* }( }! Z% M
004011EF 90 nop
% B+ ~( d1 m3 ?0 ~004011F0 /. 55 push ebp
; z. V, ^/ D- `5 R004011F1 |. 89E5 mov ebp, esp 9 y' _: {6 i) Q$ L3 n; j( y
004011F3 |. 83EC 08 sub esp, 8 + }8 P' W. ?* k* K& N
004011F6 |. 83C4 F4 add esp, -0C 2 i& g4 e$ W# W: F& c9 E
004011F9 |. 6A 02 push 2
" W- w7 ?* y9 S* S004011FB |. A1 DC304000 mov eax, dword ptr [<&msvcrt.__set_a>
5 H. G, b: p; j6 y' Q) B4 B00401200 |. FFD0 call eax ; <&msvcrt.__set_app_type>
6 X" M; X2 M0 A! g8 h& X00401202 |. E8 79FFFFFF call 00401180 ( D0 X% a' l! N8 X
00401207 |. C9 leave
0 r7 n/ k9 }4 n- w# i% V9 G00401208 \\. C3 retn ( s$ _$ T6 V3 \4 V$ \ ~
00401209 00 db 00
/ u( T5 E8 Y7 R. {- P- n/ x0040120A 00 db 00 $ Z7 X+ H( j4 m3 U1 X
0040120B 00 db 00 0 l( f2 K/ |+ Z( k
0040120C 00 db 00 6 p8 B+ W2 c2 B9 j1 l0 e
0040120D 00 db 00
( ?; t# m {! M3 V0040120E 00 db 00
4 P: i9 o1 j) _: V3 @8 t0040120F 00 db 00 : z( q0 V ~ G9 Z; e4 j: J0 @
00401210 72 db 72 ; CHAR 'r' # ^! @# i# L2 D5 G5 R& L
00401211 00 db 00 4 r c8 f0 N8 G# s
00401212 . 69 6E 70 75 7>ascii "input.txt",0 4 J2 b7 n* @0 q" k" |8 I
0040121C . 43 61 6E 27 7>ascii "Can't Find input"
. C& \+ K! _8 m: m" `0040122C . 2E 74 78 74 2>ascii ".txt!",0 % O3 ~% D/ n e5 ?+ a
00401232 77 db 77 ; CHAR 'w'
3 c, i' p1 y: P00401233 00 db 00 2 u7 L% L& t- Q9 o0 C* s: a
00401234 . 6F 75 74 70 7>ascii "output.txt",0
4 Z3 e( F" P7 \/ ~$ P0040123F . 43 61 6E 27 7>ascii "Can't Create out" 3 `# l( c8 b+ z+ O$ Y+ F
0040124F . 70 75 74 2E 7>ascii "put.txt!",0
# Y" s8 ?. h1 F& U4 t* t00401258 . 6F 6E 65 20 6>ascii "one char outpute" - M) z; ]$ ~& E% q, C" R
00401268 . 64 0A 00 ascii "d
1 }0 v. ~) D) O {% u7 z",0 1 e, g$ Y$ _+ U2 H- y
0040126B 90 nop ! G, a4 ]' o+ K2 D0 i) E2 m
0040126C /$ 55 push ebp * E) b3 o5 T0 M6 U! i
0040126D |. 89E5 mov ebp, esp
8 a w" q2 L3 m. e( T0040126F |. 83EC 18 sub esp, 18
0 H6 z- X. ]& R! y" |00401272 |. E8 39010000 call 004013B0
1 m' k- m$ @' u( T/ L7 f00401277 |. 83C4 F8 add esp, -8
5 W$ f2 M' L1 X& _3 T6 _4 S0 b0040127A |. 68 10124000 push 00401210 ; /mode = "r"
, P" h- d8 \% o8 z# q0 p0040127F |. 68 12124000 push 00401212 ; |path = "input.txt" # {) B0 v* W& I4 {# p, \$ k3 T$ ~* K% f
00401284 |. E8 AF010000 call <jmp.&msvcrt.fopen> ; \\fopen 2 c; c+ c) d( O; W3 F
00401289 |. 83C4 10 add esp, 10 + W/ E5 M$ a0 G" I% l
0040128C |. 89C0 mov eax, eax
! F6 H, h9 c: o0 W' s1 @0040128E |. 8945 FC mov dword ptr [ebp-4], eax
1 [( C$ [- q3 {% {5 _00401291 |. 837D FC 00 cmp dword ptr [ebp-4], 0
1 y+ u) F; v# m; f0 U8 w _00401295 |. 75 10 jnz short 004012A7
1 |$ u5 L% M: {7 w0 O00401297 |. 83C4 F4 add esp, -0C
* F! {2 _( P/ a0 p0040129A |. 68 1C124000 push 0040121C ; /format = "Can't Find input.txt!"
3 z) D5 i$ r- B/ J6 L0040129F |. E8 8C010000 call <jmp.&msvcrt.printf> ; \\printf : h8 Y" y+ a" k& l/ K0 L. Z* O8 j
004012A4 |. 83C4 10 add esp, 10 ! Z7 J/ E- J6 g+ U/ ^1 f* A
004012A7 |> 83C4 F8 add esp, -8 ; w7 c) [3 |! G
004012AA |. 68 32124000 push 00401232 ; /mode = "w"
+ g0 g5 N* B' g5 @! n# M1 p004012AF |. 68 34124000 push 00401234 ; |path = "output.txt" ! u+ Q4 m" @& F e5 O- w
004012B4 |. E8 7F010000 call <jmp.&msvcrt.fopen> ; \\fopen
5 l) Y* k0 r5 B: N6 `/ \+ H004012B9 |. 83C4 10 add esp, 10 " Q! S! \$ L. Y1 {0 \7 r
004012BC |. 89C0 mov eax, eax
$ ^) ]( v k$ g. K4 \! u0 k004012BE |. 8945 F8 mov dword ptr [ebp-8], eax
. j y, O) U. R% [" A9 J004012C1 |. 837D F8 00 cmp dword ptr [ebp-8], 0 9 Z6 x1 Q2 L/ J! U- v7 v: ^0 j
004012C5 |. 75 10 jnz short 004012D7 & r# |: x4 h( f3 R; e6 L4 {
004012C7 |. 83C4 F4 add esp, -0C
6 E1 [8 F5 l% _, C004012CA |. 68 3F124000 push 0040123F ; /format = "Can't Create output.txt!" ; v1 `3 W* B* y4 @ O8 @4 M
004012CF |. E8 5C010000 call <jmp.&msvcrt.printf> ; \\printf
. A& N, v" w4 l4 F# l004012D4 |. 83C4 10 add esp, 10
- c5 t2 A' j: W- U9 {5 d% ^004012D7 |> 83C4 F4 /add esp, -0C
' n% c2 S' I2 ]8 w- m004012DA |. 8B45 FC |mov eax, dword ptr [ebp-4]
1 Z& Y4 k$ X2 g1 s; E004012DD |. 50 |push eax ; /stream ! T: \6 S3 @- `5 X1 ^9 t
004012DE |. E8 45010000 |call <jmp.&msvcrt.fgetc> ; \\fgetc 5 y5 b1 t- A3 E1 ]/ f2 |
004012E3 |. 83C4 10 |add esp, 10 % ?/ C& b- T4 a0 O) X# D) X3 i) N6 ~
004012E6 |. 89C0 |mov eax, eax
8 B; r1 N9 _/ N* H004012E8 |. 8945 F4 |mov dword ptr [ebp-C], eax . I0 C5 o. C" U1 i" u+ l1 t
004012EB |. 817D F4 80000>|cmp dword ptr [ebp-C], 80
% H" q* |: y2 [( x% a/ ~: ~* j2 r004012F2 |. 7F 23 |jg short 00401317 8 J- p2 D. J0 N
004012F4 |. 83C4 F8 |add esp, -8 4 J: k* D' x! a( M
004012F7 |. 8B45 F8 |mov eax, dword ptr [ebp-8]
$ v; j: A! x/ }004012FA |. 50 |push eax ; /stream
% w1 o: @1 [" k- I/ Z& X* S1 c004012FB |. 8B45 F4 |mov eax, dword ptr [ebp-C] ; | ; I' i" T4 W1 F. C
004012FE |. 50 |push eax ; |c 0 e _+ ?9 u2 X5 \. `# |1 K* [ V
004012FF |. E8 1C010000 |call <jmp.&msvcrt.fputc> ; \\fputc
4 p, _ w- z9 G3 M00401304 |. 83C4 10 |add esp, 10
0 e1 g7 ]3 L# R' f T7 t00401307 |. 83C4 F4 |add esp, -0C
- P& I5 Y( R: u! m0 u. T( `0040130A |. 68 58124000 |push 00401258 ; /format = "one char outputed",LF,"" ) _1 \# H- Q& d) ?$ v
0040130F |. E8 1C010000 |call <jmp.&msvcrt.printf> ; \\printf 8 v# y; h- n$ F: B- B7 K- y
00401314 |. 83C4 10 |add esp, 10
- G% h; N! W7 o& k00401317 |> 837D F4 FF |cmp dword ptr [ebp-C], -1
2 J& y4 k0 W* h/ J7 `0040131B |. 75 03 |jnz short 00401320 : W/ @: n: i7 Z6 r* u9 ^) d
0040131D |. EB 03 |jmp short 00401322
( J4 f& P* ?- B4 F2 j0040131F | 90 |nop
+ }7 I0 H% i' S! q/ m00401320 |>^ EB B5 \\jmp short 004012D7
; d% Z J2 _( C: i00401322 |> C9 leave ' F: Y& a& w/ a8 S
00401323 \\. C3 retn
0 @' W+ f ] F# `5 D00401324 00 db 00 6 e; D( t' n1 S! {/ E
00401325 00 db 00
6 e+ Q, P# I3 o9 X6 g- Z& P N00401326 00 db 00 $ }: ? \" D3 V8 k5 ~& @/ m% Y
00401327 00 db 00 , t& ^, o1 T/ W* K' a D1 e! O
00401328 00 db 00
3 u$ `# K# o; {# L4 J ]00401329 00 db 00
8 k4 \7 ~0 x" @6 G% u4 ]0040132A 00 db 00 , b# s8 d2 u, a' U: X( f/ M
0040132B 00 db 00 + s& d) M7 b2 i) B S- V# H6 F4 \
0040132C 00 db 00 ; f) G7 O4 A: R* Q/ b1 u
0040132D 00 db 00
1 _9 i- x8 K/ d) c' e2 }/ e0040132E 00 db 00
4 c: D" y) R1 `, m0040132F 00 db 00 ' E1 Y K( J5 W/ J3 n# \
00401330 /. 55 push ebp 9 \0 K; a% p1 F( T' y. |! ^
00401331 |. 89E5 mov ebp, esp
% U5 O8 w* o" J5 ^00401333 |. 83EC 08 sub esp, 8
' F2 B q: B- Y- I: S! g1 ]; c00401336 |. A1 10204000 mov eax, dword ptr [402010] 7 z) E. i8 h: X. T: F2 c- z: k
0040133B |. 8338 00 cmp dword ptr [eax], 0
% _1 \0 Z3 y- e b9 L3 h- C# R( u4 v9 p0040133E |. 74 1D je short 0040135D - S4 j- a2 n* A9 Q4 Z6 H
00401340 |> A1 10204000 /mov eax, dword ptr [402010]
: M3 y) j& K' v z* `00401345 |. 8B00 |mov eax, dword ptr [eax]
/ S f' P3 k0 E5 p" f00401347 |. FFD0 |call eax
' i4 J: K6 W" j* L& U. N00401349 |. A1 10204000 |mov eax, dword ptr [402010] " {2 w* Q* v* Y; b, q
0040134E |. 8D50 04 |lea edx, dword ptr [eax+4]
0 O( V" W- G& d+ M) k00401351 |. 8915 10204000 |mov dword ptr [402010], edx
. D: D3 x, e' ?! c% C& ^) ~00401357 |. 8378 04 00 |cmp dword ptr [eax+4], 0
+ p4 g8 s. u# G$ z0040135B |.^ 75 E3 \\jnz short 00401340 . |" I$ d* W5 ^2 [- G8 c/ ~
0040135D |> C9 leave
0 d* I4 j1 J3 p0 N- h9 H0040135E \\. C3 retn
9 o# f7 B" S4 K8 A+ P2 A+ T! K0040135F 90 nop 2 V ?% P4 h. R* H
00401360 /$ 55 push ebp
# j2 N* h, E3 W4 E0 Z- l00401361 |. 89E5 mov ebp, esp 9 q+ F5 |8 q& z: P
00401363 |. 83EC 14 sub esp, 14 8 m0 m. x3 P6 a+ S
00401366 |. 53 push ebx 0 [$ H, v* I# d! f* R( X4 y
00401367 |. A1 58144000 mov eax, dword ptr [401458] - _7 L$ U: l8 s" Z
0040136C |. 83F8 FF cmp eax, -1 0 J4 u2 m& [. G8 c- _2 \4 s! @
0040136F |. 75 19 jnz short 0040138A
" G! c4 P# ?6 `5 a' W }/ Q00401371 |. 31C0 xor eax, eax . V4 W6 H: Q t/ l+ e0 Z
00401373 |. 833D 5C144000>cmp dword ptr [40145C], 0 8 u7 J( J( G& s. b- n! U
0040137A |. 74 0E je short 0040138A
3 } J7 q( z& c o7 Y0040137C |. BA 5C144000 mov edx, 0040145C
5 B* [# O( F- k7 ^- b0 L3 a00401381 |> 83C2 04 /add edx, 4
, J8 f8 T _5 @ Q r00401384 |. 40 |inc eax - B( {/ B- Q, j: q
00401385 |. 833A 00 |cmp dword ptr [edx], 0 . r1 _; D0 X# F. b
00401388 |.^ 75 F7 \\jnz short 00401381
8 A1 u+ a' n9 f, T/ g! p0 e% \6 j0 I0040138A |> 89C3 mov ebx, eax / E1 p7 L0 {( J- s' S9 d, P
0040138C |. 85DB test ebx, ebx ' H6 h# `6 H* ^0 f% ?1 C
0040138E |. 74 0C je short 0040139C
$ ]7 }( {/ r1 G( g( k9 v1 O U00401390 |> 8B049D 581440>/mov eax, dword ptr [ebx*4+401458] + W2 p) [/ ` T& z, F4 d
00401397 |. FFD0 |call eax
7 N+ J, ?/ I/ R00401399 |. 4B |dec ebx ; W) I! a% F1 b) u# s, P
0040139A |.^ 75 F4 \\jnz short 00401390
; _0 ~: D6 L* ?: T( d+ A* @- x0040139C |> 83C4 F4 add esp, -0C
$ P4 u+ K4 k5 `0040139F |. 68 30134000 push 00401330 ; /func = engoutpu.00401330
& J/ z+ t+ d4 t! `8 o" L, v004013A4 |. E8 97000000 call <jmp.&msvcrt.atexit> ; \\atexit
* r. q$ _- W2 l004013A9 |. 8B5D E8 mov ebx, dword ptr [ebp-18] ( ~; D+ T7 O6 G) |7 W
004013AC |. C9 leave
/ a' t: H" b2 n# M4 ]004013AD \\. C3 retn + q/ g5 Z+ l- w# ~0 _1 V1 G* g0 L
004013AE 89F6 mov esi, esi
" D/ W( n& f$ k- K! O004013B0 /$ 55 push ebp + R8 ]% D) W( ^4 H
004013B1 |. 89E5 mov ebp, esp # S; B2 {4 ?" R
004013B3 |. 83EC 08 sub esp, 8
) @8 o: Q" M- q004013B6 |. 833D 14204000>cmp dword ptr [402014], 0 ' H2 e; J7 c" P
004013BD |. 75 0F jnz short 004013CE & r+ D8 o6 ^! [0 p
004013BF |. C705 14204000>mov dword ptr [402014], 1 a+ ]0 T3 w; x# ]8 J* ~7 |1 V
004013C9 |. E8 92FFFFFF call 00401360
. M _) k# K* c+ Z& u004013CE |> C9 leave 6 X! c1 ]- ]6 O. S. p; M& d) [/ t
004013CF \\. C3 retn
" ]; E/ v4 }# T! i9 Y004013D0 .- FF25 AC304000 jmp dword ptr [<&msvcrt._fmode>] ; msvcrt._fmode & A3 |0 W4 a2 q& y
004013D6 90 nop 1 Y9 i4 A+ b, O& c2 S
004013D7 90 nop 7 v P, L; Z, p; k o
004013D8 .- FF25 B4304000 jmp dword ptr [<&msvcrt._iob>] ; msvcrt._iob
7 x0 |% f! t8 Y! `004013DE 90 nop
Q' P" k6 A, n9 c X R* M9 D* g004013DF 90 nop
1 ?! X( ~3 i2 O1 p$ i& X004013E0 .- FF25 DC304000 jmp dword ptr [<&msvcrt.__set_app_ty>; msvcrt.__set_app_type # B6 F2 D" _6 C* b' ^) x
004013E6 90 nop 8 l1 @$ L( l& M, M0 v S
004013E7 90 nop
- x7 ~/ r# K5 t* x004013E8 $- FF25 A4304000 jmp dword ptr [<&msvcrt._cexit>] ; msvcrt._cexit 7 F: I( S( b P/ ]
004013EE 90 nop 4 V2 B8 _# e) p/ y
004013EF 90 nop # x: ], c+ @6 o. W r5 ~' O# x
004013F0 $- FF25 D0304000 jmp dword ptr [<&msvcrt.__p__environ>; msvcrt.__p__environ
3 `2 z# @8 R- u Y- i$ M, e! w8 j004013F6 90 nop
* I+ N* U2 ]0 ~' s' q004013F7 90 nop ' L e3 K6 q& m8 `& G b
004013F8 $- FF25 B0304000 jmp dword ptr [<&msvcrt._fpreset>] ; msvcrt._fpreset
, R5 M+ t V4 O5 C004013FE 90 nop 8 g1 U8 `( s+ n8 [( }+ x
004013FF 90 nop , w7 ?0 r. o, L1 I7 B9 H
00401400 $- FF25 D8304000 jmp dword ptr [<&msvcrt.signal>] ; msvcrt.signal * H, O' Q2 q" Y1 q$ S5 t; \
00401406 90 nop # q' r b6 G# V0 |5 N8 l( D5 }6 O
00401407 90 nop 9 u8 p3 v( E) x: o
00401408 $- FF25 A8304000 jmp dword ptr [<&msvcrt._fileno>] ; msvcrt._fileno
% `' D- l! l, e% b0040140E 90 nop 3 \3 H* C' _. a3 a
0040140F 90 nop % I6 s, `7 I, D1 q# D$ Z
00401410 $- FF25 B8304000 jmp dword ptr [<&msvcrt._setmode>] ; msvcrt._setmode
' m! g+ Z% G: R. j, _$ C j1 w9 N00401416 90 nop
+ D# `. i s( P/ S00401417 90 nop
5 T9 d _+ f& @; @; _00401418 $- FF25 BC304000 jmp dword ptr [<&msvcrt.__getmainarg>; msvcrt.__getmainargs 9 {. x. ]1 b. {$ b# _2 H
0040141E 90 nop 2 M F' I8 O" J% H
0040141F 90 nop
1 M9 R7 [1 V5 U0 l- R00401420 $- FF25 CC304000 jmp dword ptr [<&msvcrt.fputc>] ; msvcrt.putc
T% e8 Q: J9 g8 {- o$ ~' @00401426 90 nop ) s# P1 U o$ P) \% |" Z
00401427 90 nop
- x7 c# S4 t% E3 r00401428 $- FF25 C4304000 jmp dword ptr [<&msvcrt.fgetc>] ; msvcrt.getc
# ^7 T! a+ d4 y- z1 [; r( R0040142E 90 nop
) _ n6 P! f" q7 `+ C0040142F 90 nop
$ h5 |' [) }/ F# N7 ]8 T00401430 $- FF25 D4304000 jmp dword ptr [<&msvcrt.printf>] ; msvcrt.printf & Q2 \5 V( m7 \' b6 r
00401436 90 nop ; J- k2 Y; g# M! I! Z) I6 B8 [8 g
00401437 90 nop + I3 \3 Q, `+ R# N5 @: P) z
00401438 $- FF25 C8304000 jmp dword ptr [<&msvcrt.fopen>] ; msvcrt.fopen " ^- g& N7 f5 A- N
0040143E 90 nop
8 K. B3 b7 |) C4 M; q0040143F 90 nop
( N. w1 [3 S" U' g) a6 x3 @00401440 $- FF25 C0304000 jmp dword ptr [<&msvcrt.atexit>] ; msvcrt.atexit
2 N( [; V+ ]& h2 k; L- a00401446 90 nop
' @# T6 {6 u9 _- l8 r8 u: O00401447 90 nop
+ F% C. q+ F4 B6 E( E5 Q00401448 $- FF25 98304000 jmp dword ptr [<&KERNEL32.SetUnhandl>; kernel32.SetUnhandledExceptionFilter
4 g. N8 t' X& N7 ^) L9 R' U0040144E 90 nop
# P: u7 i4 A3 v. [1 t0 C+ N0040144F 90 nop
" B0 V' k1 ]2 h9 U/ z% |00401450 .- FF25 94304000 jmp dword ptr [<&KERNEL32.ExitProces>; kernel32.ExitProcess + E, w1 ^" N5 D) o+ @7 S
00401456 90 nop 9 p/ H6 @6 E% |8 i; e
00401457 90 nop ; O! R# N( ]: `& C( }
00401458 . FFFFFFFF dd FFFFFFFF " o* i, m8 P$ _+ S4 s/ G
0040145C . 00000000 dd 00000000 + {# [3 m: J- v8 u' m
00401460 FF db FF
# _- A& p! M7 Y! B7 W: a00401461 FF db FF / K# ]* m" j/ M6 M# V4 U# Y
00401462 FF db FF |& [" F$ [- o% `0 d
00401463 FF db FF 5 O3 X2 h. d$ j' t5 E
00401464 00 db 00
1 Z3 {3 K* N* v( H! {0 r) q00401465 00 db 00 3 G, H/ m+ h4 `" b/ X& O Y. w
00401466 00 db 00
4 m A1 U- T/ d. S) ]- {- Z5 i00401467 00 db 00 |