Microsoft MVP성태의 닷넷 이야기
기타: 27. D820 - A09 바이오스 업데이트 프로그램 패치 [링크 복사], [링크+제목 복사],
조회: 26133
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

D820 - A09 바이오스 업데이트 프로그램 패치


... 를 공개한다는 것은 아니고요. ^^; 왜냐하면, 그런 "변조된" 프로그램을 무단으로 배포하는 것에 대해서 법적인 문제가 발생할 수도 있고, 어찌되었건 그 방식이 Dell의 공식적인 권장 사항이 아니기 때문에 패치된 파일을 공개하는 것은 좀 무리가 있는 듯합니다.

일단, 실행 시에 해당 프로세스를 디버깅하는 것으로 해결하는 방법은 아래의 글에서 예전에 공개해 드렸지요.

D820 - 배터리 없이 바이오스 업데이트 방법
; https://www.sysnet.pe.kr/2/0/632

오늘 처음으로 위의 글과 관련해서 패치 파일을 요청하신 분이 계셔서.
그런 분들을 위해 직접 패치 파일을 만드는 방법을 알려드리려는 것이 이번 글의 목적입니다. (또는, 자신이 안 되면 주변 분들에게라도 부탁하시거나. ^^)

사실, 바이너리 편집기로 특정 기계어 코드만 편집하면 되기 때문에 그다지 어려운 것은 아닙니다.

일단, D820_A09.exe 파일을 Visual Studio에서 열기 메뉴로 아래와 같이 "Open With"의 "Binary Editor"를 선택해서 읽어냅니다.

[그림 1: Open With Binary Editor]
how_to_do_d820_a09_bios_patch_1.PNG

그런 후, "E8 4F 07 00 00 85 C0"을 검색합니다. 이 바이트 코드들은 "00420D67" 번지와 "00420D6C" 번지의 기계어 코드 값들입니다.

00420D67 E8 4F 07 00 00   call        004214BB 
00420D6C 85 C0            test        eax,eax 
00420D6E 89 44 24 10      mov         dword ptr [esp+10h],eax 

[그림 2: "E8 4F 07 00 00 85 C0" 기계어 코드]
how_to_do_d820_a09_bios_patch_2.PNG

자... 이제 선택을 해야 하는데요. "test eax, eax"에 대한 기계어 코드가 "85 C0"인데, 이렇게 2byte를 유지하면서 위의 기능을 은근슬쩍 넘어갈 만한 코드가 어떤게 있을까요?

제 생각으로는,,, 그나마 "cmp eax, eax" - "33 C0"의 조합이 괜찮은 것 같은데요. ^^ 그래서, 85 값을 33으로 바꿔준 후 저장합니다.

이제 실행하면 끝!



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 1/25/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2013-05-03 07시42분
[Lyn] 이럴땐 근야 nop 연타가 (...)
[guest]
2013-05-03 08시21분
그러면 문제가 발생하지 않을까요? ^^ nop으로 해버리면 ZF가 셋팅되지 않을 거라서 JE 점프문이 동작 안하기 때문에, CMP eax, eax로 해준 것입니다.
정성태

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
13134정성태10/4/202215068오류 유형: 820. There is a problem with AMD Radeon RX 5600 XT device. For more information, search for 'graphics device driver error code 31'
13133정성태10/4/202217454Windows: 211. Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법 [1]
13132정성태10/3/202217232스크립트: 42. 파이썬 - latexify-py 패키지 소개 - 함수를 mathjax 식으로 표현
13131정성태10/3/202221229.NET Framework: 2052. C# - Windows Forms의 데이터 바인딩 지원(DataBinding, DataSource) [2]파일 다운로드1
13130정성태9/28/202217753.NET Framework: 2051. .NET Core/5+ - 에러 로깅을 위한 Middleware가 동작하지 않는 경우파일 다운로드1
13129정성태9/27/202218456.NET Framework: 2050. .NET Core를 IIS에서 호스팅하는 경우 .NET Framework CLR이 함께 로드되는 환경
13128정성태9/23/202221382C/C++: 158. Visual C++ - IDL 구문 중 "unsigned long"을 인식하지 못하는 #import [1]파일 다운로드1
13127정성태9/22/202219434Windows: 210. WSL에 systemd 도입
13126정성태9/15/202219532.NET Framework: 2049. C# 11 - 정적 메서드에 대한 delegate 처리 시 cache 적용
13125정성태9/14/202219778.NET Framework: 2048. C# 11 - 구조체 필드의 자동 초기화(auto-default structs)
13124정성태9/13/202220370.NET Framework: 2047. Golang, Python, C#에서의 CRC32 사용
13123정성태9/8/202220323.NET Framework: 2046. C# 11 - 멤버(속성/필드)에 지정할 수 있는 required 예약어 추가
13122정성태8/26/202221186.NET Framework: 2045. C# 11 - 메서드 매개 변수에 대한 nameof 지원
13121정성태8/23/202215096C/C++: 157. Golang - 구조체의 slice 필드를 Reflection을 이용해 변경하는 방법
13120정성태8/19/202220741Windows: 209. Windows NT Service에서 UI를 다루는 방법 [3]
13119정성태8/18/202220327.NET Framework: 2044. .NET Core/5+ 프로젝트에서 참조 DLL이 보관된 공통 디렉터리를 지정하는 방법
13118정성태8/18/202215886.NET Framework: 2043. WPF Color의 기본 색 영역은 (sRGB가 아닌) scRGB [2]
13117정성태8/17/202220998.NET Framework: 2042. C# 11 - 파일 범위 내에서 유효한 타입 정의 (File-local types)파일 다운로드1
13116정성태8/4/202221404.NET Framework: 2041. C# - Socket.Close 시 Socket.Receive 메서드에서 예외가 발생하는 문제파일 다운로드1
13115정성태8/3/202222320.NET Framework: 2040. C# - ValueTask와 Task의 성능 비교 [1]파일 다운로드1
13114정성태8/2/202222087.NET Framework: 2039. C# - Task와 비교해 본 ValueTask 사용법파일 다운로드1
13113정성태7/31/202221804.NET Framework: 2038. C# 11 - Span 타입에 대한 패턴 매칭 (Pattern matching on ReadOnlySpan<char>)
13112정성태7/30/202223132.NET Framework: 2037. C# 11 - 목록 패턴(List patterns) [1]파일 다운로드1
13111정성태7/29/202222469.NET Framework: 2036. C# 11 - IntPtr/UIntPtr과 nint/nuint의 통합파일 다운로드1
13110정성태7/27/202220518.NET Framework: 2035. C# 11 - 새로운 연산자 ">>>" (Unsigned Right Shift)파일 다운로드1
13109정성태7/27/202223075VS.NET IDE: 177. 비주얼 스튜디오 2022를 이용한 (소스 코드가 없는) 닷넷 모듈 디버깅 - "외부 원본(External Sources)" [1]
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...