正文
关于od调试vb.net的信息
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
请教OD调试问题。如何能知到这一行代码就是OEP.
不同编程语言写的,OEP都不同,但是同一种编程语言编写的软件OEP基本相同,你可以记住常见的几个,
delphi:2 H7 ` M; m q. L5 l* L
55 PUSH EBP. l( f, o8 q+ `9 ?; A
8BEC MOV EBP,ESP% R5 |" F5 C% k$ m5 m
83C4 F0 ADD ESP,-10/ `6 b! {' i1 h9 f3 ?" ^4 l; U
B8 A86F4B00 MOV EAX,PE.004B6FA8
vc++" X5 Q- ? K' E- |$ S# e
55 PUSH EBP
8BEC MOV EBP,ESP; K) r [- b0 J6 l0 g$ D
83EC 44 SUB ESP,44
56 PUSH ESI
vc6.0
55 push ebp$ `2 {# E+ Q; p6 \) t$ V* y
8BEC mov ebp,esp
6A FF push -1( w' I9 e* s) A! ^
vc7.0
6A 70 push 70
68 50110001 push hh.01001150
E8 1D020000 call hh.010017B04 i9 G T% ~2 f0 [
33DB xor ebx,ebx: d" U G% c0 b* m- D# J" [
vb:
' Y+ F; r9 x# T( _! b" O
00401166 - FF25 6C104000 JMP DWORD PTR DS:[] ; MSVBVM60.ThunRTMain5 F4 h: l8 `0 r; k# n) l Z% T
0040116C 68 147C4000 PUSH PACKME.00407C144 S4 D0 P7 i# P. W# k4 c
00401171 E8 F0FFFFFF CALL : Z2 Z- [* S1 L" N
00401176 0000 ADD BYTE PTR DS:[EAX],AL
00401178 0000 ADD BYTE PTR DS:[EAX],AL
0040117A 0000 ADD BYTE PTR DS:[EAX],AL
0040117C 3000 XOR BYTE PTR DS:[EAX],AL3 ?! a) m% D( r
bc++8 _2 b+ m- J7 Q% k% M1 w
0040163C $ /EB 10 JMP SHORT BCLOCK.0040164E: w/ e" \% ^7 N. i
0040163E |66 DB 66 ; CHAR 'f'
0040163F |62 DB 62 ; CHAR 'b'- U; @1 p# W: V6 ?1 ^ @
00401640 |3A DB 3A ; CHAR ':'$ l: R1 C/ D$ B9 B9 A: L
00401641 |43 DB 43 ; CHAR 'C' X) n: I' M' C0 m- [0 ]
00401642 |2B DB 2B ; CHAR '+'
00401643 |2B DB 2B ; CHAR '+'
00401644 |48 DB 48 ; CHAR 'H'8 ]; W/ X$ B( t
00401645 |4F DB 4F ; CHAR 'O' b6 x# O( u z0 N
00401646 |4F DB 4F ; CHAR 'O' H/ V" _6 h# r6 L0 l8 U
00401647 |4B DB 4B ; CHAR 'K'
00401648 |90 NOP O5 ?; d8 g0 f4 b8 I) \
00401649 |E9 DB E9- y# g; w: q% }$ M, x, F
0040164A . |98E04E00 DD OFFSET BCLOCK.___CPPdebugHook1 d; W4 T# V9 o* {9 D/ ^
0040164E \A1 8BE04E00 MOV EAX,DWORD PTR DS:[4EE08B], s2 s" Y7 w' Q0 U @6 J
00401653 . C1E0 02 SHL EAX,2) Y" g' {/ i- V1 y- H6 L1 i @7 L
00401656 . A3 8FE04E00 MOV DWORD PTR DS:[4EE08F],EAX
0040165B . 52 PUSH EDX6 y, T3 x8 D; ~/ D% b5 e
0040165C . 6A 00 PUSH 0 ; /pModule = NULL
0040165E . E8 DFBC0E00 CALL ; \GetModuleHandleA
00401663 . 8BD0 MOV EDX,EAX( j9 n4 s6 ~3 S' c
dasm:; m! i: G% {% F
00401000 /$ 6A 00 PUSH 0 ; /pModule = NULL
00401002 |. E8 C50A0000 CALL ; \GetModuleHandleA
00401007 |. A3 0C354000 MOV DWORD PTR DS:[40350C],EAX
0040100C |. E8 B50A0000 CALL ; [GetCommandLineA. z6 K/ E1 z2 p) C$ U
00401011 |. A3 10354000 MOV DWORD PTR DS:[403510],EAX
00401016 |. 6A 0A PUSH 0A ; /Arg4 = 0000000A! c6 q. j6 U' R$ V3 ~
00401018 |. FF35 10354000 PUSH DWORD PTR DS:[403510] ; |Arg3 = 000000001 L9 n% H# M4 W3 R2 U1 C4 d
0040101E |. 6A 00 PUSH 0 ; |Arg2 = 000000003 O" c9 s7 V9 L) \0 e
00401020 |. FF35 0C354000 PUSH DWORD PTR DS:[40350C] ; |Arg1 = 000000008
vb.net select数据库中的信息使其显示在gridview上
dim od as OleDbDataReader
Dim oC As OleDbCommand
oC = New OleDbCommand(sql1, Me.mvardbConnection)
oC.CommandType = CommandType.Text
od = oC.ExecuteReader()
oC = Nothing
if od.hasrows()
DGV.Columns(1).HeaderText = "列1" '列名1
.....
DGV.Columns(10).HeaderText = "列10" '列名2
do while od.read()
‘从第一行开始取出字段a的值赋值给表格的第i行第j列
datagridview.Rows(行号i).Cells(列号j).Value = oRd.Item("字段A").ToString
loop
endif
VB程序如何在OD下面的 COMMAND框中下断
vb程序 最难办od调试vb.net的第一点就是断点难下啊。因为它是解释执行od调试vb.net, 调用的多是MSVBVM60( od调试vb.net我是说vb6.0 vb.net可以直接反汇编出来自己可以慢慢研究)中的函数od调试vb.net,常用的有__vbavartstne,__vbaR8Str,__vbastrcmp,
rtcGetPresentDate, rtcMsgBox等。
如果是明码比较的,一般可以用__vbaStrCmp可以断下。 以vb6来说基本上是这样的
bp MSVBVM60!__vbaVarTstEq
前面要指明模块。。另外比较笨的方法是在在对“注册按钮”下消息断点 。还有一些手段就是直接推程序二进制偏移码。 我有一次,死活去不掉那个注册窗口,最后直接修改INT,把rtcMsgBox,给换成了一个无所谓的同字符数的函数。。 反正VB程序不太好搞。。主要还是解释执行的问题。
od怎么加载net错误
od加载net错误是:应用程序的最终用户引发的动作或运行代码的环境发生错误。可以下断在创建进程的函数CreateProcess,在中断在该函数处,设置eip指针到函数的retn,使堆栈平衡。eax返回值,可以设置为一个非0值,表示创建进程成功。此时可以用另一个od打开新的进程即可。
关于od调试vb.net和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。